Blame cairomm/enums.h

Packit Service e3b512
/* Copyright (C) 2005 The cairomm Development Team
Packit Service e3b512
 *
Packit Service e3b512
 * This library is free software; you can redistribute it and/or
Packit Service e3b512
 * modify it under the terms of the GNU Library General Public
Packit Service e3b512
 * License as published by the Free Software Foundation; either
Packit Service e3b512
 * version 2 of the License, or (at your option) any later version.
Packit Service e3b512
 *
Packit Service e3b512
 * This library is distributed in the hope that it will be useful,
Packit Service e3b512
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service e3b512
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service e3b512
 * Library General Public License for more details.
Packit Service e3b512
 *
Packit Service e3b512
 * You should have received a copy of the GNU Library General Public
Packit Service e3b512
 * License along with this library; if not, write to the Free Software
Packit Service e3b512
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
Packit Service e3b512
 * 02110-1301, USA.
Packit Service e3b512
 */
Packit Service e3b512
Packit Service e3b512
#ifndef __CAIROMM_ENUMS_H
Packit Service e3b512
#define __CAIROMM_ENUMS_H
Packit Service e3b512
Packit Service e3b512
#include <cairo.h>
Packit Service e3b512
#include <cairo-ft.h>
Packit Service e3b512
Packit Service e3b512
namespace Cairo
Packit Service e3b512
{
Packit Service e3b512
Packit Service e3b512
#ifndef DOXYGEN_IGNORE_THIS
Packit Service e3b512
//This is only used internally, but it must be in a public header because we inline some methods.
Packit Service e3b512
//Actually, it is used now by the UserFontFace set_*_func() slots, which are public. murrayc.
Packit Service e3b512
typedef cairo_status_t ErrorStatus;
Packit Service e3b512
#endif //DOXYGEN_IGNORE_THIS
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * Cairo::Operator is used to set the compositing operator for all cairo
Packit Service e3b512
 * drawing operations.
Packit Service e3b512
 *
Packit Service e3b512
 * The default operator is Cairo::OPERATOR_OVER.
Packit Service e3b512
 *
Packit Service e3b512
 * The operators marked as @a unbounded modify their destination even outside
Packit Service e3b512
 * of the mask layer (that is, their effect is not bound by the mask layer).
Packit Service e3b512
 * However, their effect can still be limited by way of clipping.
Packit Service e3b512
 *
Packit Service e3b512
 * To keep things simple, the operator descriptions here document the behavior
Packit Service e3b512
 * for when both source and destination are either fully transparent or fully
Packit Service e3b512
 * opaque. The actual implementation works for translucent layers too. For a
Packit Service e3b512
 * more detailed explanation of the effects of each operator, including the
Packit Service e3b512
 * mathematical definitions, see
Packit Service e3b512
 * this
Packit Service e3b512
 *
Packit Service e3b512
 **/
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * Clear destination layer (bounded)
Packit Service e3b512
     */
Packit Service e3b512
    OPERATOR_CLEAR = CAIRO_OPERATOR_CLEAR,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Replace destination layer (bounded)
Packit Service e3b512
     */
Packit Service e3b512
    OPERATOR_SOURCE = CAIRO_OPERATOR_SOURCE,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Draw source layer on top of destination layer (bounded)
Packit Service e3b512
     */
Packit Service e3b512
    OPERATOR_OVER = CAIRO_OPERATOR_OVER,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Draw source where there was destination content (unbounded)
Packit Service e3b512
     */
Packit Service e3b512
    OPERATOR_IN = CAIRO_OPERATOR_IN,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Draw source where there was no destination content (unbounded)
Packit Service e3b512
     */
Packit Service e3b512
    OPERATOR_OUT = CAIRO_OPERATOR_OUT,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Draw source on top of destination content and only there
Packit Service e3b512
     */
Packit Service e3b512
    OPERATOR_ATOP = CAIRO_OPERATOR_ATOP,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Ignore the source
Packit Service e3b512
     */
Packit Service e3b512
    OPERATOR_DEST = CAIRO_OPERATOR_DEST,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Draw destination on top of source
Packit Service e3b512
     */
Packit Service e3b512
    OPERATOR_DEST_OVER = CAIRO_OPERATOR_DEST_OVER,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Leave destination only where there was source content (unbounded)
Packit Service e3b512
     */
Packit Service e3b512
    OPERATOR_DEST_IN = CAIRO_OPERATOR_DEST_IN,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Leave destination only where there was no source content
Packit Service e3b512
     */
Packit Service e3b512
    OPERATOR_DEST_OUT = CAIRO_OPERATOR_DEST_OUT,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Leave destination on top of source content and only there (unbounded)
Packit Service e3b512
     */
Packit Service e3b512
    OPERATOR_DEST_ATOP = CAIRO_OPERATOR_DEST_ATOP,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Source and destination are shown where there is only one of them
Packit Service e3b512
     */
Packit Service e3b512
    OPERATOR_XOR = CAIRO_OPERATOR_XOR,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Source and destination layers are accumulated
Packit Service e3b512
     */
Packit Service e3b512
    OPERATOR_ADD = CAIRO_OPERATOR_ADD,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Like over, but assuming source and dest are disjoint geometries
Packit Service e3b512
     */
Packit Service e3b512
    OPERATOR_SATURATE = CAIRO_OPERATOR_SATURATE
Packit Service e3b512
} Operator;
Packit Service e3b512
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * Specifies the type of antialiasing to do when rendering text or shapes.
Packit Service e3b512
 *
Packit Service e3b512
 * The interpretation of Cairo::ANTIALIAS_DEFAULT is left entirely up to
Packit Service e3b512
 * the backend.
Packit Service e3b512
 */
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * Use the default antialiasing for the subsystem and target device
Packit Service e3b512
     */
Packit Service e3b512
    ANTIALIAS_DEFAULT = CAIRO_ANTIALIAS_DEFAULT,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Use bilevel alpha mask
Packit Service e3b512
     */
Packit Service e3b512
    ANTIALIAS_NONE = CAIRO_ANTIALIAS_NONE,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Perform single-color antialiasing (using shades of gray for black text on
Packit Service e3b512
     * white background, for example).
Packit Service e3b512
     */
Packit Service e3b512
    ANTIALIAS_GRAY = CAIRO_ANTIALIAS_GRAY,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Perform antialiasing by taing advantage of the order of subpixel elements
Packit Service e3b512
     * on devices such as LCD panels
Packit Service e3b512
     */
Packit Service e3b512
    ANTIALIAS_SUBPIXEL = CAIRO_ANTIALIAS_SUBPIXEL
Packit Service e3b512
} Antialias;
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * Cairo::FillRule is used to select how paths are filled. For both fill rules,
Packit Service e3b512
 * whether or not a point is included in the fill is determined by taking a ray
Packit Service e3b512
 * from that point to infinity and looking at intersections with the path. The
Packit Service e3b512
 * ray can be in any direction, as long as it doesn't pass through the end
Packit Service e3b512
 * point of a segment or have a tricky intersection such as intersecting
Packit Service e3b512
 * tangent to the path. (Note that filling is not actually implemented in this
Packit Service e3b512
 * way. This is just a description of the rule that is applied.)
Packit Service e3b512
 *
Packit Service e3b512
 * The default fill rule is Cairo::FILL_RULE_WINDING.
Packit Service e3b512
 *
Packit Service e3b512
 * New entries may be added in future versions.
Packit Service e3b512
 **/
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * If the path crosses the ray from left-to-right, counts +1. If the path
Packit Service e3b512
     * crosses the ray from right to left, counts -1. (Left and right are
Packit Service e3b512
     * determined from the perspective of looking along the ray from the
Packit Service e3b512
     * starting point.) If the total count is non-zero, the point will be
Packit Service e3b512
     * filled.
Packit Service e3b512
     */
Packit Service e3b512
    FILL_RULE_WINDING = CAIRO_FILL_RULE_WINDING,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Counts the total number of intersections, without regard to the
Packit Service e3b512
     * orientation of the contour. If the total number of intersections is odd,
Packit Service e3b512
     * the point will be filled.
Packit Service e3b512
     */
Packit Service e3b512
    FILL_RULE_EVEN_ODD = CAIRO_FILL_RULE_EVEN_ODD
Packit Service e3b512
} FillRule;
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * Specifies how to render the endpoints of the path when stroking.
Packit Service e3b512
 *
Packit Service e3b512
 * The default line cap style is Cairo::LINE_CAP_BUTT.
Packit Service e3b512
 **/
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * Start(stop) the line exactly at the start(end) point
Packit Service e3b512
     */
Packit Service e3b512
    LINE_CAP_BUTT = CAIRO_LINE_CAP_BUTT,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Use a round ending, the center of teh circle is teh end point
Packit Service e3b512
     */
Packit Service e3b512
    LINE_CAP_ROUND = CAIRO_LINE_CAP_ROUND,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Use squared ending, the center of teh square is the end point
Packit Service e3b512
     */
Packit Service e3b512
    LINE_CAP_SQUARE = CAIRO_LINE_CAP_SQUARE
Packit Service e3b512
} LineCap;
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * Specifies how to render the junction of two lines when stroking.
Packit Service e3b512
 *
Packit Service e3b512
 * The default line join style is Cairo::LINE_JOIN_MITER.
Packit Service e3b512
 */
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * Use a sharp (angled) corner, see Context::set_miter_limit()
Packit Service e3b512
     */
Packit Service e3b512
    LINE_JOIN_MITER = CAIRO_LINE_JOIN_MITER,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Use a rounded join, the center of teh circle is the joint point
Packit Service e3b512
     */
Packit Service e3b512
    LINE_JOIN_ROUND = CAIRO_LINE_JOIN_ROUND,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Use cut-off join, the join is cut off at half the line width from the
Packit Service e3b512
     * join point
Packit Service e3b512
     */
Packit Service e3b512
    LINE_JOIN_BEVEL = CAIRO_LINE_JOIN_BEVEL
Packit Service e3b512
} LineJoin;
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * Specifies variants of a font face based on their slant.
Packit Service e3b512
 */
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * Upright font style
Packit Service e3b512
     */
Packit Service e3b512
    FONT_SLANT_NORMAL = CAIRO_FONT_SLANT_NORMAL,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Italic font style
Packit Service e3b512
     */
Packit Service e3b512
    FONT_SLANT_ITALIC = CAIRO_FONT_SLANT_ITALIC,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Oblique font style
Packit Service e3b512
     */
Packit Service e3b512
    FONT_SLANT_OBLIQUE = CAIRO_FONT_SLANT_OBLIQUE
Packit Service e3b512
} FontSlant;
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * Specifies variants of a font face based on their weight.
Packit Service e3b512
 */
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * Normal font weight
Packit Service e3b512
     */
Packit Service e3b512
    FONT_WEIGHT_NORMAL = CAIRO_FONT_WEIGHT_NORMAL,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Bold font weight
Packit Service e3b512
     */
Packit Service e3b512
    FONT_WEIGHT_BOLD = CAIRO_FONT_WEIGHT_BOLD
Packit Service e3b512
} FontWeight;
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * Cairo::Content is used to describe the content that a surface will contain,
Packit Service e3b512
 * whether color information, alpha information (translucence vs. opacity), or
Packit Service e3b512
 * both.
Packit Service e3b512
 */
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface will hold color content only.
Packit Service e3b512
     */
Packit Service e3b512
    CONTENT_COLOR = CAIRO_CONTENT_COLOR,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface will hold alpha content only.
Packit Service e3b512
     */
Packit Service e3b512
    CONTENT_ALPHA = CAIRO_CONTENT_ALPHA,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface will hold color and alpha content.
Packit Service e3b512
     */
Packit Service e3b512
    CONTENT_COLOR_ALPHA = CAIRO_CONTENT_COLOR_ALPHA
Packit Service e3b512
} Content;
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * @since 1.10
Packit Service e3b512
 */
Packit Service e3b512
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     *
Packit Service e3b512
     */
Packit Service e3b512
    DEVICE_TYPE_DRM = CAIRO_DEVICE_TYPE_DRM,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     *
Packit Service e3b512
     */
Packit Service e3b512
    DEVICE_TYPE_GL = CAIRO_DEVICE_TYPE_GL,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     *
Packit Service e3b512
     */
Packit Service e3b512
    DEVICE_TYPE_SCRIPT = CAIRO_DEVICE_TYPE_SCRIPT,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     *
Packit Service e3b512
     */
Packit Service e3b512
    DEVICE_TYPE_XCB = CAIRO_DEVICE_TYPE_XCB,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     *
Packit Service e3b512
     */
Packit Service e3b512
    DEVICE_TYPE_XLIB = CAIRO_DEVICE_TYPE_XLIB,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     *
Packit Service e3b512
     */
Packit Service e3b512
    DEVICE_TYPE_XML = CAIRO_DEVICE_TYPE_XML
Packit Service e3b512
} DeviceType;
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * Cairo::Format is used to identify the memory format of
Packit Service e3b512
 * image data.
Packit Service e3b512
 *
Packit Service e3b512
 * New entries may be added in future versions.
Packit Service e3b512
 **/
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * Each pixel is a 32-bit quantity, with alpha in the upper 8 bits, then
Packit Service e3b512
     * red, then green, then blue. The 32-bit quantities are stored
Packit Service e3b512
     * native-endian. Pre-multiplied alpha is used. (That is, 50% transparent
Packit Service e3b512
     * red is 0x80800000,
Packit Service e3b512
     */
Packit Service e3b512
    FORMAT_ARGB32 = CAIRO_FORMAT_ARGB32,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Each pixel is a 32-bit quantity, with the upper 8 bits unused. Red,
Packit Service e3b512
     * Green, and Blue are stored in the remaining 24 bits in that order.
Packit Service e3b512
     */
Packit Service e3b512
    FORMAT_RGB24 = CAIRO_FORMAT_RGB24,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Each pixel is a 8-bit quantity holding an alpha value
Packit Service e3b512
     */
Packit Service e3b512
    FORMAT_A8 = CAIRO_FORMAT_A8,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Each pikel is a 1-bit quentity holding an alpha value. Pixels are packed
Packit Service e3b512
     * together into 32-bit quantities. The ordering of the bits matches the
Packit Service e3b512
     * endianess of the platform. On a big-endian machine, the first pixel is in
Packit Service e3b512
     * the uppermost bit, on a little endian machine the first pixel is in the
Packit Service e3b512
     * least-significant bit.
Packit Service e3b512
     */
Packit Service e3b512
    FORMAT_A1 = CAIRO_FORMAT_A1,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Each fixel is a 16-bit quantity with red in the upper 5 bits, then green
Packit Service e3b512
     * in the middle 6 bits, and blue in the lower 5 bits
Packit Service e3b512
     */
Packit Service e3b512
    FORMAT_RGB16_565 = CAIRO_FORMAT_RGB16_565
Packit Service e3b512
} Format;
Packit Service e3b512
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * Cairo::Extend is used to describe how pattern color/alpha will be determined
Packit Service e3b512
 * for areas "outside" the pattern's natural area, (for example, outside the
Packit Service e3b512
 * surface bounds or outside the gradient geometry).
Packit Service e3b512
 *
Packit Service e3b512
 * Mesh patterns are not affected by the extend mode.
Packit Service e3b512
 *
Packit Service e3b512
 * The default extend mode is Cairo::EXTEND_NONE for surface patterns and
Packit Service e3b512
 * Cairo::EXTEND_PAD for gradient patterns.
Packit Service e3b512
 *
Packit Service e3b512
 * New entries may be added in future versions.
Packit Service e3b512
 **/
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * Pixels outside of the source pattern are fully transparent
Packit Service e3b512
     */
Packit Service e3b512
    EXTEND_NONE = CAIRO_EXTEND_NONE,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The pattern is tiled by repeating
Packit Service e3b512
     */
Packit Service e3b512
    EXTEND_REPEAT = CAIRO_EXTEND_REPEAT,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The pattern is tiled by reflecting at the edges (Implemented for surface
Packit Service e3b512
     * patterns since 1.6)
Packit Service e3b512
     */
Packit Service e3b512
    EXTEND_REFLECT = CAIRO_EXTEND_REFLECT,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Pixels outside of the pattern copy the closest pixel from the source
Packit Service e3b512
     * (Since 1.2; but only implemented for surface patterns since 1.6)
Packit Service e3b512
     */
Packit Service e3b512
    EXTEND_PAD = CAIRO_EXTEND_PAD
Packit Service e3b512
} Extend;
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * Cairo::Filter is used to indicate what filtering should be applied when
Packit Service e3b512
 * reading pixel values from patterns. See Cairo::SurfacePattern::set_filter()
Packit Service e3b512
 * for indicating the desired filter to be used with a particular pattern.
Packit Service e3b512
 */
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * A high-performance filter, with quality similar to Cairo::FILTER_NEAREST
Packit Service e3b512
     */
Packit Service e3b512
    FILTER_FAST = CAIRO_FILTER_FAST,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * A reasonable-performance filter, with quality similar to
Packit Service e3b512
     * Cairo::FILTER_BILINEAR
Packit Service e3b512
     */
Packit Service e3b512
    FILTER_GOOD = CAIRO_FILTER_GOOD,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The highest-quality available, performance may not be suitable for
Packit Service e3b512
     * interactive use.
Packit Service e3b512
     */
Packit Service e3b512
    FILTER_BEST = CAIRO_FILTER_BEST,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Nearest-neighbor filtering
Packit Service e3b512
     */
Packit Service e3b512
    FILTER_NEAREST = CAIRO_FILTER_NEAREST,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Linear interpolation in two dimensions
Packit Service e3b512
     */
Packit Service e3b512
    FILTER_BILINEAR = CAIRO_FILTER_BILINEAR,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * This filter value is currently unimplemented, and should not be used in
Packit Service e3b512
     * current code.
Packit Service e3b512
     */
Packit Service e3b512
    FILTER_GAUSSIAN = CAIRO_FILTER_GAUSSIAN
Packit Service e3b512
} Filter;
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * The subpixel order specifies the order of color elements within each pixel on
Packit Service e3b512
 * the display device when rendering with an antialiasing mode of
Packit Service e3b512
 * Cairo::ANTIALIAS_SUBPIXEL.
Packit Service e3b512
 **/
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * Use the default subpixel order for for the target device
Packit Service e3b512
     */
Packit Service e3b512
    SUBPIXEL_ORDER_DEFAULT = CAIRO_SUBPIXEL_ORDER_DEFAULT,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Subpixel elements are arranged horizontally with red at the left
Packit Service e3b512
     */
Packit Service e3b512
    SUBPIXEL_ORDER_RGB = CAIRO_SUBPIXEL_ORDER_RGB,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Subpixel elements are arranged horizontally with blue at the left
Packit Service e3b512
     */
Packit Service e3b512
    SUBPIXEL_ORDER_BGR = CAIRO_SUBPIXEL_ORDER_BGR,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Subpixel elements are arranged vertically with red at the top
Packit Service e3b512
     */
Packit Service e3b512
    SUBPIXEL_ORDER_VRGB = CAIRO_SUBPIXEL_ORDER_VRGB,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Subpixel elements are arranged vertically with blue at the top
Packit Service e3b512
     */
Packit Service e3b512
    SUBPIXEL_ORDER_VBGR = CAIRO_SUBPIXEL_ORDER_VBGR
Packit Service e3b512
} SubpixelOrder;
Packit Service e3b512
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * Specifies the type of hinting to do on font outlines. Hinting is the process
Packit Service e3b512
 * of fitting outlines to the pixel grid in order to improve the appearance of
Packit Service e3b512
 * the result. Since hinting outlines involves distorting them, it also reduces
Packit Service e3b512
 * the faithfulness to the original outline shapes. Not all of the outline
Packit Service e3b512
 * hinting styles are supported by all font backends.
Packit Service e3b512
 *
Packit Service e3b512
 * New entries may be added in future versions.
Packit Service e3b512
 **/
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * Use the default hint style for font backend and target device
Packit Service e3b512
     */
Packit Service e3b512
    HINT_STYLE_DEFAULT = CAIRO_HINT_STYLE_DEFAULT,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Do not hint outlines
Packit Service e3b512
     */
Packit Service e3b512
    HINT_STYLE_NONE = CAIRO_HINT_STYLE_NONE,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Hint outlines slightly to improve contrast while retaining food fidelity
Packit Service e3b512
     * to the original shapes
Packit Service e3b512
     */
Packit Service e3b512
    HINT_STYLE_SLIGHT = CAIRO_HINT_STYLE_SLIGHT,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Hint outlines with medium strength giving a compromise between fidelity
Packit Service e3b512
     * to the original shapes and contrast
Packit Service e3b512
     */
Packit Service e3b512
    HINT_STYLE_MEDIUM = CAIRO_HINT_STYLE_MEDIUM,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Hint outlines to maximize contrast
Packit Service e3b512
     */
Packit Service e3b512
    HINT_STYLE_FULL = CAIRO_HINT_STYLE_FULL
Packit Service e3b512
} HintStyle;
Packit Service e3b512
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * Specifies whether to hint font metrics; hinting font metrics means quantizing
Packit Service e3b512
 * them so that they are integer values in device space. Doing this improves the
Packit Service e3b512
 * consistency of letter and line spacing, however it also means that text will
Packit Service e3b512
 * be laid out differently at different zoom factors.
Packit Service e3b512
 **/
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * Hint metrics in the default manner for the font backend and target device
Packit Service e3b512
     */
Packit Service e3b512
    HINT_METRICS_DEFAULT = CAIRO_HINT_METRICS_DEFAULT,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Do not hint font metrics
Packit Service e3b512
     */
Packit Service e3b512
    HINT_METRICS_OFF = CAIRO_HINT_METRICS_OFF,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Hint font metrics
Packit Service e3b512
     */
Packit Service e3b512
    HINT_METRICS_ON = CAIRO_HINT_METRICS_ON
Packit Service e3b512
} HintMetrics;
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * Cairo::SurfaceType is used to describe the type of a given surface. The
Packit Service e3b512
 * surface types are also known as "backends" or "surface backends" within
Packit Service e3b512
 * cairo.
Packit Service e3b512
 *
Packit Service e3b512
 * The surface type can be queried with Surface::get_type()
Packit Service e3b512
 *
Packit Service e3b512
 * The various Cairo::Surface functions can be used with surfaces of
Packit Service e3b512
 * any type, but some backends also provide type-specific functions
Packit Service e3b512
 * that must only be called with a surface of the appropriate
Packit Service e3b512
 * type.
Packit Service e3b512
 *
Packit Service e3b512
 * New entries may be added in future versions.
Packit Service e3b512
 *
Packit Service e3b512
 * @since 1.2
Packit Service e3b512
 **/
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type image
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_IMAGE = CAIRO_SURFACE_TYPE_IMAGE,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type pdf
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_PDF = CAIRO_SURFACE_TYPE_PDF,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type ps
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_PS = CAIRO_SURFACE_TYPE_PS,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type xlim
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_XLIB = CAIRO_SURFACE_TYPE_XLIB,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type xcb
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_XCB = CAIRO_SURFACE_TYPE_XCB,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type glitz
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_GLITZ = CAIRO_SURFACE_TYPE_GLITZ,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type quartz
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_QUARTZ = CAIRO_SURFACE_TYPE_QUARTZ,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type win32
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_WIN32 = CAIRO_SURFACE_TYPE_WIN32,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type beos
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_BEOS = CAIRO_SURFACE_TYPE_BEOS,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type directfb
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_DIRECTFB = CAIRO_SURFACE_TYPE_DIRECTFB,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type svg
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_SVG = CAIRO_SURFACE_TYPE_SVG,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type os2
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_OS2 = CAIRO_SURFACE_TYPE_OS2,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is a win32 printing surface
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_WIN32_PRINTING = CAIRO_SURFACE_TYPE_WIN32_PRINTING,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type quartz_image
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_QUARTZ_IMAGE = CAIRO_SURFACE_TYPE_QUARTZ_IMAGE,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type script
Packit Service e3b512
     * @since 1.10
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_SCRIPT = CAIRO_SURFACE_TYPE_SCRIPT,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type Qt
Packit Service e3b512
     * @since 1.10
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_QT = CAIRO_SURFACE_TYPE_QT,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type recording
Packit Service e3b512
     * @since 1.10
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_RECORDING = CAIRO_SURFACE_TYPE_RECORDING,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is a OpenVg surface
Packit Service e3b512
     * @since 1.10
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_VG = CAIRO_SURFACE_TYPE_VG,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type OpenGl
Packit Service e3b512
     * @since 1.10
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_GL = CAIRO_SURFACE_TYPE_GL,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type Direct Render Manager
Packit Service e3b512
     * @since 1.10
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_DRM = CAIRO_SURFACE_TYPE_DRM,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type script 'tee' (a multiplexing surface)
Packit Service e3b512
     * @since 1.10
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_TEE = CAIRO_SURFACE_TYPE_TEE,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type XML (for debugging)
Packit Service e3b512
     * @since 1.10
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_XML = CAIRO_SURFACE_TYPE_XML,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type Skia
Packit Service e3b512
     * @since 1.10
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_SKIA = CAIRO_SURFACE_TYPE_SKIA,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The surface is of type The surface is a subsurface created with
Packit Service e3b512
     * Surface::create()
Packit Service e3b512
     * @since 1.10
Packit Service e3b512
     */
Packit Service e3b512
    SURFACE_TYPE_SUBSURFACE = CAIRO_SURFACE_TYPE_SUBSURFACE
Packit Service e3b512
Packit Service e3b512
} SurfaceType;
Packit Service e3b512
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * Cairo::PatternType is used to describe the type of a given pattern.
Packit Service e3b512
 *
Packit Service e3b512
 * The pattern type can be queried with Pattern::get_type().
Packit Service e3b512
 *
Packit Service e3b512
 * New entries may be added in future versions.
Packit Service e3b512
 *
Packit Service e3b512
 * @since 1.2
Packit Service e3b512
 **/
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * The pattern is a solid (uniform) color. It may be opaque or translucent.
Packit Service e3b512
     */
Packit Service e3b512
    PATTERN_TYPE_SOLID = CAIRO_PATTERN_TYPE_SOLID,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The pattern is a based on a surface (an image)
Packit Service e3b512
     */
Packit Service e3b512
    PATTERN_TYPE_SURFACE = CAIRO_PATTERN_TYPE_SURFACE,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The pattern is a linear gradient.
Packit Service e3b512
     */
Packit Service e3b512
    PATTERN_TYPE_LINEAR = CAIRO_PATTERN_TYPE_LINEAR,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The pattern is a radial gradient.
Packit Service e3b512
     */
Packit Service e3b512
    PATTERN_TYPE_RADIAL = CAIRO_PATTERN_TYPE_RADIAL
Packit Service e3b512
} PatternType;
Packit Service e3b512
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * Cairo::FontType is used to describe the type of a given font face or scaled
Packit Service e3b512
 * font. The font types are also known as "font backends" within cairo.
Packit Service e3b512
 *
Packit Service e3b512
 * New entries may be added in future versions.
Packit Service e3b512
 *
Packit Service e3b512
 * @since 1.2
Packit Service e3b512
 **/
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * The font was created using cairo's toy font api
Packit Service e3b512
     */
Packit Service e3b512
    FONT_TYPE_TOY = CAIRO_FONT_TYPE_TOY,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The font is of type FreeType
Packit Service e3b512
     */
Packit Service e3b512
    FONT_TYPE_FT = CAIRO_FONT_TYPE_FT,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The font is of type Win32
Packit Service e3b512
     */
Packit Service e3b512
    FONT_TYPE_WIN32 = CAIRO_FONT_TYPE_WIN32,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * @deprecated Use FONT_TYPE_QUARTZ instead.
Packit Service e3b512
     */
Packit Service e3b512
    FONT_TYPE_ATSUI = CAIRO_FONT_TYPE_QUARTZ,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The font is of type Quartz
Packit Service e3b512
     * @since 1.6
Packit Service e3b512
     */
Packit Service e3b512
    FONT_TYPE_QUARTZ = CAIRO_FONT_TYPE_QUARTZ,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * The font was created using cairo's user font api
Packit Service e3b512
     * @since 1.8
Packit Service e3b512
     */
Packit Service e3b512
    FONT_TYPE_USER = CAIRO_FONT_TYPE_USER
Packit Service e3b512
} FontType;
Packit Service e3b512
Packit Service e3b512
/** Specifies properties of a text cluster mapping.
Packit Service e3b512
 *
Packit Service e3b512
 * @since 1.8
Packit Service e3b512
 **/
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * The clusters in the cluster array map to glyphs in the glyph array from
Packit Service e3b512
     * end to start.
Packit Service e3b512
     */
Packit Service e3b512
    TEXT_CLUSTER_FLAG_BACKWARD = CAIRO_TEXT_CLUSTER_FLAG_BACKWARD
Packit Service e3b512
} TextClusterFlags;
Packit Service e3b512
Packit Service e3b512
//TODO: Documentation
Packit Service e3b512
typedef enum
Packit Service e3b512
{
Packit Service e3b512
    /**
Packit Service e3b512
     * Completely inside region
Packit Service e3b512
     */
Packit Service e3b512
    REGION_OVERLAP_IN = CAIRO_REGION_OVERLAP_IN,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Completely outside region
Packit Service e3b512
     */
Packit Service e3b512
    REGION_OVERLAP_OUT = CAIRO_REGION_OVERLAP_OUT,
Packit Service e3b512
Packit Service e3b512
    /**
Packit Service e3b512
     * Partly inside region
Packit Service e3b512
     */
Packit Service e3b512
    REGION_OVERLAP_PART = CAIRO_REGION_OVERLAP_PART
Packit Service e3b512
} RegionOverlap;
Packit Service e3b512
Packit Service e3b512
/**
Packit Service e3b512
 * A set of synthesis options to control how FreeType renders the glyphs for a
Packit Service e3b512
 * particular font face.
Packit Service e3b512
 *
Packit Service e3b512
 * FreeType provides the ability to synthesize different glyphs from a base
Packit Service e3b512
 * font, which is useful if you lack those glyphs from a true bold or oblique
Packit Service e3b512
 * font.
Packit Service e3b512
 *
Packit Service e3b512
 * Individual synthesis features of a @c FtFontFace can be set using
Packit Service e3b512
 * @c FtFontFace::set_synthesize(), or disabled using
Packit Service e3b512
 * @c FtFontFace::unset_synthesize(). The currently enabled set of synthesis
Packit Service e3b512
 * options can be queried with @c FtFontFace::get_synthesize().
Packit Service e3b512
 *
Packit Service e3b512
 * Note: that when synthesizing glyphs, the font metrics returned will only be
Packit Service e3b512
 * estimates.
Packit Service e3b512
 *
Packit Service e3b512
 * @since 1.12
Packit Service e3b512
 */
Packit Service e3b512
enum FtSynthesize {
Packit Service e3b512
Packit Service e3b512
    /// Embolden the glyphs (redraw with a pixel offset)
Packit Service e3b512
    FT_SYNTHESIZE_BOLT = CAIRO_FT_SYNTHESIZE_BOLD,
Packit Service e3b512
Packit Service e3b512
    /// Slant the glyph outline by 12 degrees to the right.
Packit Service e3b512
    FT_SYNTHESIZE_OBLIQUE = CAIRO_FT_SYNTHESIZE_OBLIQUE
Packit Service e3b512
};
Packit Service e3b512
Packit Service e3b512
inline FtSynthesize operator|(FtSynthesize a, FtSynthesize b)
Packit Service e3b512
{
Packit Service e3b512
  return static_cast<FtSynthesize>(static_cast<int>(a) | static_cast<int>(b));
Packit Service e3b512
}
Packit Service e3b512
Packit Service e3b512
inline FtSynthesize operator&(FtSynthesize a, FtSynthesize b)
Packit Service e3b512
{
Packit Service e3b512
    return static_cast<FtSynthesize>(static_cast<int>(a) & static_cast<int>(b));
Packit Service e3b512
}
Packit Service e3b512
Packit Service e3b512
} // namespace Cairo
Packit Service e3b512
Packit Service e3b512
#endif //__CAIROMM_ENUMS_H
Packit Service e3b512
Packit Service e3b512
// vim: ts=2 sw=2 et