gtkmm 4.23.0
gskmm Enums and Flags

Classes

class  Gsk::Corner_Wrapper
 Wrapper for enum Corner. More...

Typedefs

using Gsk::Corner = Corner_Wrapper::Corner
 Corner enumerators are scoped by the wrapper class and can be implicitly converted to int.

Enumerations

enum class  Gsk::BlendMode {
  Gsk::BlendMode::DEFAULT ,
  Gsk::BlendMode::MULTIPLY ,
  Gsk::BlendMode::SCREEN ,
  Gsk::BlendMode::OVERLAY ,
  Gsk::BlendMode::DARKEN ,
  Gsk::BlendMode::LIGHTEN ,
  Gsk::BlendMode::COLOR_DODGE ,
  Gsk::BlendMode::COLOR_BURN ,
  Gsk::BlendMode::HARD_LIGHT ,
  Gsk::BlendMode::SOFT_LIGHT ,
  Gsk::BlendMode::DIFFERENCE ,
  Gsk::BlendMode::EXCLUSION ,
  Gsk::BlendMode::COLOR ,
  Gsk::BlendMode::HUE ,
  Gsk::BlendMode::SATURATION ,
  Gsk::BlendMode::LUMINOSITY
}
 The blend modes available for render nodes. More...
enum class  Gsk::PorterDuff {
  Gsk::PorterDuff::SOURCE ,
  Gsk::PorterDuff::DEST ,
  Gsk::PorterDuff::SOURCE_OVER_DEST ,
  Gsk::PorterDuff::DEST_OVER_SOURCE ,
  Gsk::PorterDuff::SOURCE_IN_DEST ,
  Gsk::PorterDuff::DEST_IN_SOURCE ,
  Gsk::PorterDuff::SOURCE_OUT_DEST ,
  Gsk::PorterDuff::DEST_OUT_SOURCE ,
  Gsk::PorterDuff::SOURCE_ATOP_DEST ,
  Gsk::PorterDuff::DEST_ATOP_SOURCE ,
  Gsk::PorterDuff::XOR ,
  Gsk::PorterDuff::CLEAR
}
enum  Gsk::Corner_Wrapper::Corner {
  Gsk::Corner_Wrapper::TOP_LEFT ,
  Gsk::Corner_Wrapper::TOP_RIGHT ,
  Gsk::Corner_Wrapper::BOTTOM_RIGHT ,
  Gsk::Corner_Wrapper::BOTTOM_LEFT
}
 The corner indices used by Gsk::RoundedRect. More...
enum class  Gsk::FillRule {
  Gsk::FillRule::WINDING ,
  Gsk::FillRule::EVEN_ODD
}
 Specifies how paths are filled. More...
enum class  Gsk::Isolation {
  Gsk::Isolation::NONE = 0x0 ,
  Gsk::Isolation::BACKGROUND = 1 << 0 ,
  Gsk::Isolation::COPY_PASTE = 1 << 1 ,
  Gsk::Isolation::ALL = -0x1
}
 These flags describe the types of isolations possible with a Gsk::IsolationNode. More...
enum class  Gsk::LineCap {
  Gsk::LineCap::BUTT ,
  Gsk::LineCap::ROUND ,
  Gsk::LineCap::SQUARE
}
 Specifies how to render the start and end points of contours or dashes when stroking. More...
enum class  Gsk::LineJoin {
  Gsk::LineJoin::MITER ,
  Gsk::LineJoin::ROUND ,
  Gsk::LineJoin::BEVEL
}
 Specifies how to render the junction of two lines when stroking. More...
enum class  Gsk::PathDirection {
  Gsk::PathDirection::FROM_START ,
  Gsk::PathDirection::TO_START ,
  Gsk::PathDirection::TO_END ,
  Gsk::PathDirection::FROM_END
}
 Used to pick one of the four tangents at a given point on the path. More...
enum class  Gsk::MaskMode {
  Gsk::MaskMode::ALPHA ,
  Gsk::MaskMode::INVERTED_ALPHA ,
  Gsk::MaskMode::LUMINANCE ,
  Gsk::MaskMode::INVERTED_LUMINANCE
}
 The mask modes available for mask nodes. More...
enum class  Gsk::ScalingFilter {
  Gsk::ScalingFilter::LINEAR ,
  Gsk::ScalingFilter::NEAREST ,
  Gsk::ScalingFilter::TRILINEAR
}
 The filters used when scaling texture data. More...
enum class  Gsk::Path::ForeachFlags {
  Gsk::Path::ForeachFlags::ONLY_LINES = 0x0 ,
  Gsk::Path::ForeachFlags::QUAD = 1 << 0 ,
  Gsk::Path::ForeachFlags::CUBIC = 1 << 1 ,
  Gsk::Path::ForeachFlags::CONIC = 1 << 2
}
 Flags that can be passed to Gsk::Path::foreach() to influence what kinds of operations the path is decomposed into. More...
enum class  Gsk::Path::Intersection {
  Gsk::Path::Intersection::NONE ,
  Gsk::Path::Intersection::NORMAL ,
  Gsk::Path::Intersection::START ,
  Gsk::Path::Intersection::END
}
 The values of this enumeration classify intersections between paths. More...
enum class  Gsk::Path::Operation {
  Gsk::Path::Operation::MOVE ,
  Gsk::Path::Operation::CLOSE ,
  Gsk::Path::Operation::LINE ,
  Gsk::Path::Operation::QUAD ,
  Gsk::Path::Operation::CUBIC ,
  Gsk::Path::Operation::CONIC
}
 Describes the segments of a Gsk::Path. More...
enum class  Gsk::Transform::Category {
  Gsk::Transform::Category::UNKNOWN ,
  Gsk::Transform::Category::ANY ,
  Gsk::Transform::Category::CAT_3D ,
  Gsk::Transform::Category::CAT_2D ,
  Gsk::Transform::Category::CAT_2D_AFFINE ,
  Gsk::Transform::Category::CAT_2D_TRANSLATE ,
  Gsk::Transform::Category::IDENTITY
}
 The categories of matrices relevant for GSK and GTK. More...

Functions

constexpr Isolation Gsk::operator| (Isolation lhs, Isolation rhs)
constexpr Isolation Gsk::operator& (Isolation lhs, Isolation rhs)
constexpr Isolation Gsk::operator^ (Isolation lhs, Isolation rhs)
constexpr Isolation Gsk::operator~ (Isolation flags)
IsolationGsk::operator|= (Isolation & lhs, Isolation rhs)
IsolationGsk::operator&= (Isolation & lhs, Isolation rhs)
IsolationGsk::operator^= (Isolation & lhs, Isolation rhs)
constexpr Path::ForeachFlags Gsk::operator| (Path::ForeachFlags lhs, Path::ForeachFlags rhs)
constexpr Path::ForeachFlags Gsk::operator& (Path::ForeachFlags lhs, Path::ForeachFlags rhs)
constexpr Path::ForeachFlags Gsk::operator^ (Path::ForeachFlags lhs, Path::ForeachFlags rhs)
constexpr Path::ForeachFlags Gsk::operator~ (Path::ForeachFlags flags)
Path::ForeachFlagsGsk::operator|= (Path::ForeachFlags & lhs, Path::ForeachFlags rhs)
Path::ForeachFlagsGsk::operator&= (Path::ForeachFlags & lhs, Path::ForeachFlags rhs)
Path::ForeachFlagsGsk::operator^= (Path::ForeachFlags & lhs, Path::ForeachFlags rhs)

Detailed Description

Typedef Documentation

◆ Corner

Corner enumerators are scoped by the wrapper class and can be implicitly converted to int.

Enumeration Type Documentation

◆ BlendMode

enum class Gsk::BlendMode
strong

The blend modes available for render nodes.

The implementation of each blend mode is deferred to the rendering pipeline.

See https://www.w3.org/TR/compositing-1/#blending for more information on blending and blend modes.

Since gtkmm 4.20
Enumerator
DEFAULT 

The default blend mode, which specifies no blending.

MULTIPLY 

The source color is multiplied by the destination and replaces the destination.

SCREEN 

Multiplies the complements of the destination and source color values, then complements the result.

OVERLAY 

Multiplies or screens the colors, depending on the destination color value.

This is the inverse of hard-list.

DARKEN 

Selects the darker of the destination and source colors.

LIGHTEN 

Selects the lighter of the destination and source colors.

COLOR_DODGE 

Brightens the destination color to reflect the source color.

COLOR_BURN 

Darkens the destination color to reflect the source color.

HARD_LIGHT 

Multiplies or screens the colors, depending on the source color value.

SOFT_LIGHT 

Darkens or lightens the colors, depending on the source color value.

DIFFERENCE 

Subtracts the darker of the two constituent colors from the lighter color.

EXCLUSION 

Produces an effect similar to that of the difference mode but lower in contrast.

COLOR 

Creates a color with the hue and saturation of the source color and the luminosity of the destination color.

HUE 

Creates a color with the hue of the source color and the saturation and luminosity of the destination color.

SATURATION 

Creates a color with the saturation of the source color and the hue and luminosity of the destination color.

LUMINOSITY 

Creates a color with the luminosity of the source color and the hue and saturation of the destination color.

◆ Category

enum class Gsk::Transform::Category
strong

The categories of matrices relevant for GSK and GTK.

Note that any category includes matrices of all later categories. So if you want to for example check if a matrix is a 2D matrix, category >= GSK_TRANSFORM_CATEGORY_2D is the way to do this.

Also keep in mind that rounding errors may cause matrices to not conform to their categories. Otherwise, matrix operations done via multiplication will not worsen categories. So for the matrix multiplication C = A * B, category(C) = MIN (category(A), category(B)).

Since gtkmm 4.20
Enumerator
UNKNOWN 

The category of the matrix has not been determined.

ANY 

Analyzing the matrix concluded that it does not fit in any other category.

CAT_3D 

The matrix is a 3D matrix.

This means that the w column (the last column) has the values (0, 0, 0, 1).

CAT_2D 

The matrix is a 2D matrix.

This is equivalent to graphene_matrix_is_2d() returning true. In particular, this means that Cairo can deal with the matrix.

CAT_2D_AFFINE 

The matrix is a combination of 2D scale and 2D translation operations.

In particular, this means that any rectangle can be transformed exactly using this matrix.

CAT_2D_TRANSLATE 

The matrix is a 2D translation.

IDENTITY 

The matrix is the identity matrix.

◆ Corner

The corner indices used by Gsk::RoundedRect.

Since gtkmm 4.20
Enumerator
TOP_LEFT 

The top left corner.

TOP_RIGHT 

The top right corner.

BOTTOM_RIGHT 

The bottom right corner.

BOTTOM_LEFT 

The bottom left corner.

◆ FillRule

enum class Gsk::FillRule
strong

Specifies how paths are filled.

Whether or not a point is included in the fill is determined by taking a ray from that point to infinity and looking at intersections with the path. The ray can be in any direction, as long as it doesn't pass through the end point of a segment or have a tricky intersection such as intersecting tangent to the path.

(Note that filling is not actually implemented in this way. This is just a description of the rule that is applied.)

New entries may be added in future versions.

Since gtkmm 4.20
Enumerator
WINDING 

If the path crosses the ray from left-to-right, counts +1.

If the path crosses the ray from right to left, counts -1. (Left and right are determined from the perspective of looking along the ray from the starting point.) If the total count is non-zero, the point will be filled.

EVEN_ODD 

Counts the total number of intersections, without regard to the orientation of the contour.

If the total number of intersections is odd, the point will be filled.

◆ ForeachFlags

enum class Gsk::Path::ForeachFlags
strong

Flags that can be passed to Gsk::Path::foreach() to influence what kinds of operations the path is decomposed into.

By default, Gsk::Path::foreach() will only emit a path with all operations flattened to straight lines to allow for maximum compatibility. The only operations emitted will be Gdk::Path::Operation::MOVE, Gdk::Path::Operation::LINE and Gdk::Path::Operation::CLOSE.

Since gtkmm 4.24
Bitwise operators:
Path::ForeachFlags operator|(Path::ForeachFlags, Path::ForeachFlags)
Path::ForeachFlags operator&(Path::ForeachFlags, Path::ForeachFlags)
Path::ForeachFlags operator^(Path::ForeachFlags, Path::ForeachFlags)
Path::ForeachFlags operator~(Path::ForeachFlags)
Path::ForeachFlags& operator|=(Path::ForeachFlags&, Path::ForeachFlags)
Path::ForeachFlags& operator&=(Path::ForeachFlags&, Path::ForeachFlags)
Path::ForeachFlags& operator^=(Path::ForeachFlags&, Path::ForeachFlags)
Enumerator
ONLY_LINES 

The default behavior, only allow lines.

QUAD 

Allow emission of Gdk::Path::Operation::QUAD operations.

CUBIC 

Allow emission of Gdk::Path::Operation::CUBIC operations.

CONIC 

Allow emission of Gdk::Path::Operation::CONIC operations.

◆ Intersection

enum class Gsk::Path::Intersection
strong

The values of this enumeration classify intersections between paths.

Since gtkmm 4.24
Enumerator
NONE 

No intersection.

NORMAL 

A normal intersection, where the two paths cross each other.

START 

The start of a segment where the two paths coincide.

END 

The end of a segment where the two paths coincide.

◆ Isolation

enum class Gsk::Isolation
strong

These flags describe the types of isolations possible with a Gsk::IsolationNode.

More isolation options may be added in the future.

Since gtkmm 4.22
Bitwise operators:
Isolation operator|(Isolation, Isolation)
Isolation operator&(Isolation, Isolation)
Isolation operator^(Isolation, Isolation)
Isolation operator~(Isolation)
Isolation& operator|=(Isolation&, Isolation)
Isolation& operator&=(Isolation&, Isolation)
Isolation& operator^=(Isolation&, Isolation)
Enumerator
NONE 

No isolation is defined.

BACKGROUND 

If the background should be made available.

If the background is not available, future operations will be rendered to a transparent background and added to the existing background later.

COPY_PASTE 

If copies should be available to paste nodes.

If copies are not available, paste nodes can only paste from copies that are made inside the isolated contents.

ALL 

Isolate everything.

This will include features that are added in the future.

◆ LineCap

enum class Gsk::LineCap
strong

Specifies how to render the start and end points of contours or dashes when stroking.

The default line cap style is Gsk::LineCap::BUTT.

New entries may be added in future versions.

<figure> <picture> <source srcset="caps-dark.png" media="(prefers-color-scheme: dark)"> Line Cap Styles </picture> <figcaption>GSK_LINE_CAP_BUTT, GSK_LINE_CAP_ROUND, GSK_LINE_CAP_SQUARE</figcaption> </figure>

Since gtkmm 4.24
Enumerator
BUTT 

Start and stop the line exactly at the start and end point.

ROUND 

Use a round ending, the center of the circle is the start or end point.

SQUARE 

Use squared ending, the center of the square is the start or end point.

◆ LineJoin

enum class Gsk::LineJoin
strong

Specifies how to render the junction of two lines when stroking.

The default line join style is Gsk::LineJoin::MITER.

New entries may be added in future versions.

<figure> <picture> <source srcset="join-dark.png" media="(prefers-color-scheme: dark)"> Line Join Styles </picture> <figcaption>GSK_LINE_JOINT_MITER, GSK_LINE_JOINT_ROUND, GSK_LINE_JOIN_BEVEL</figcaption> </figure>

Since gtkmm 4.24
Enumerator
MITER 

Use a sharp angled corner.

ROUND 

Use a round join, the center of the circle is the join point.

BEVEL 

Use a cut-off join, the join is cut off at half the line width from the joint point.

◆ MaskMode

enum class Gsk::MaskMode
strong

The mask modes available for mask nodes.

Since gtkmm 4.20
Enumerator
ALPHA 

Use the alpha channel of the mask.

INVERTED_ALPHA 

Use the inverted alpha channel of the mask.

LUMINANCE 

Use the luminance of the mask, multiplied by mask alpha.

INVERTED_LUMINANCE 

Use the inverted luminance of the mask, multiplied by mask alpha.

◆ Operation

enum class Gsk::Path::Operation
strong

Describes the segments of a Gsk::Path.

More values may be added in the future.

Since gtkmm 4.24
Enumerator
MOVE 

A move-to operation, with 1 point describing the target point.

CLOSE 

A close operation ending the current contour with a line back to the starting point.

Two points describe the start and end of the line.

LINE 

A line-to operation, with 2 points describing the start and end point of a straight line.

QUAD 

A curve-to operation describing a quadratic Bézier curve with 3 points describing the start point, the control point and the end point of the curve.

CUBIC 

A curve-to operation describing a cubic Bézier curve with 4 points describing the start point, the two control points and the end point of the curve.

CONIC 

A rational quadratic Bézier curve with 3 points describing the start point, control point and end point of the curve.

A weight for the curve will be passed, too.

◆ PathDirection

enum class Gsk::PathDirection
strong

Used to pick one of the four tangents at a given point on the path.

Note that the directions for GSK_PATH_FROM_START/ GSK_PATH_TO_END and GSK_PATH_TO_START/ GSK_PATH_FROM_END will coincide for smooth points. Only sharp turns will exhibit four different directions.

<picture> <source srcset="directions-dark.png" media="(prefers-color-scheme: dark)"> Path Tangents </picture>

Since gtkmm 4.24
Enumerator
FROM_START 

The tangent in path direction of the incoming side of the path.

TO_START 

The tangent against path direction of the incoming side of the path.

TO_END 

The tangent in path direction of the outgoing side of the path.

FROM_END 

The tangent against path direction of the outgoing side of the path.

◆ PorterDuff

enum class Gsk::PorterDuff
strong
Enumerator
SOURCE 
DEST 
SOURCE_OVER_DEST 
DEST_OVER_SOURCE 
SOURCE_IN_DEST 
DEST_IN_SOURCE 
SOURCE_OUT_DEST 
DEST_OUT_SOURCE 
SOURCE_ATOP_DEST 
DEST_ATOP_SOURCE 
XOR 
CLEAR 

◆ ScalingFilter

enum class Gsk::ScalingFilter
strong

The filters used when scaling texture data.

The actual implementation of each filter is deferred to the rendering pipeline.

Since gtkmm 4.20
Enumerator
LINEAR 

Linear interpolation filter.

NEAREST 

Nearest neighbor interpolation filter.

TRILINEAR 

Linear interpolation along each axis, plus mipmap generation, with linear interpolation along the mipmap levels.

Function Documentation

◆ operator&() [1/2]

Isolation Gsk::operator& ( Isolation lhs,
Isolation rhs )
inlineconstexpr

◆ operator&() [2/2]

Path::ForeachFlags Gsk::operator& ( Path::ForeachFlags lhs,
Path::ForeachFlags rhs )
inlineconstexpr

◆ operator&=() [1/2]

Isolation & Gsk::operator&= ( Isolation & lhs,
Isolation rhs )
inline

◆ operator&=() [2/2]

Path::ForeachFlags & Gsk::operator&= ( Path::ForeachFlags & lhs,
Path::ForeachFlags rhs )
inline

◆ operator^() [1/2]

Isolation Gsk::operator^ ( Isolation lhs,
Isolation rhs )
inlineconstexpr

◆ operator^() [2/2]

Path::ForeachFlags Gsk::operator^ ( Path::ForeachFlags lhs,
Path::ForeachFlags rhs )
inlineconstexpr

◆ operator^=() [1/2]

Isolation & Gsk::operator^= ( Isolation & lhs,
Isolation rhs )
inline

◆ operator^=() [2/2]

Path::ForeachFlags & Gsk::operator^= ( Path::ForeachFlags & lhs,
Path::ForeachFlags rhs )
inline

◆ operator|() [1/2]

Isolation Gsk::operator| ( Isolation lhs,
Isolation rhs )
inlineconstexpr

◆ operator|() [2/2]

Path::ForeachFlags Gsk::operator| ( Path::ForeachFlags lhs,
Path::ForeachFlags rhs )
inlineconstexpr

◆ operator|=() [1/2]

Isolation & Gsk::operator|= ( Isolation & lhs,
Isolation rhs )
inline

◆ operator|=() [2/2]

Path::ForeachFlags & Gsk::operator|= ( Path::ForeachFlags & lhs,
Path::ForeachFlags rhs )
inline

◆ operator~() [1/2]

Isolation Gsk::operator~ ( Isolation flags)
inlineconstexpr

◆ operator~() [2/2]

Path::ForeachFlags Gsk::operator~ ( Path::ForeachFlags flags)
inlineconstexpr