NativeProtocol

public protocol NativeProtocol : WidgetProtocol

GtkNative is the interface implemented by all widgets that have their own GdkSurface.

The obvious example of a GtkNative is GtkWindow.

Every widget that is not itself a GtkNative is contained in one, and you can get it with [methodGtk.Widget.get_native].

To get the surface of a GtkNative, use [methodGtk.Native.get_surface]. It is also possible to find the GtkNative to which a surface belongs, with [funcGtk.Native.get_for_surface].

In addition to a [classGdk.Surface], a GtkNative also provides a [classGsk.Renderer] for rendering on that surface. To get the renderer, use [methodGtk.Native.get_renderer].

The NativeProtocol protocol exposes the methods and properties of an underlying GtkNative instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, see Native. Alternatively, use NativeRef as a lighweight, unowned reference if you already have an instance you just want to use.

  • ptr

    Untyped pointer to the underlying GtkNative instance.

    Declaration

    Swift

    var ptr: UnsafeMutableRawPointer! { get }
  • native_ptr Default implementation

    Typed pointer to the underlying GtkNative instance.

    Default Implementation

    Return the stored, untyped pointer as a typed pointer to the GtkNative instance.

    Declaration

    Swift

    var native_ptr: UnsafeMutablePointer<GtkNative>! { get }
  • Required Initialiser for types conforming to NativeProtocol

    Declaration

    Swift

    init(raw: UnsafeMutableRawPointer)

Native Interface

  • Bind a NativePropertyName source property to a given target object.

    Declaration

    Swift

    @discardableResult
    @inlinable
    func bind<Q, T>(property source_property: NativePropertyName, to target: T, _ target_property: Q, flags f: BindingFlags = .default, transformFrom transform_from: @escaping GLibObject.ValueTransformer = { $0.transform(destValue: $1) }, transformTo transform_to: @escaping GLibObject.ValueTransformer = { $0.transform(destValue: $1) }) -> BindingRef! where Q : PropertyNameProtocol, T : ObjectProtocol

    Parameters

    source_property

    the source property to bind

    target

    the target object to bind to

    target_property

    the target property to bind to

    flags

    the flags to pass to the Binding

    transform_from

    ValueTransformer to use for forward transformation

    transform_to

    ValueTransformer to use for backwards transformation

    Return Value

    binding reference or nil in case of an error

  • get(property:) Extension method

    Get the value of a Native property

    Declaration

    Swift

    @inlinable
    func get(property: NativePropertyName) -> GLibObject.Value

    Parameters

    property

    the property to get the value for

    Return Value

    the value of the named property

  • set(property:value:) Extension method

    Set the value of a Native property. Note that this will only have an effect on properties that are writable and not construct-only!

    Declaration

    Swift

    @inlinable
    func set(property: NativePropertyName, value v: GLibObject.Value)

    Parameters

    property

    the property to get the value for

    Return Value

    the value of the named property

Native Interface: NativeProtocol extension (methods and fields)

  • getRenderer() Extension method

    Returns the renderer that is used for this GtkNative.

    Declaration

    Swift

    @inlinable
    func getRenderer() -> UnsafeMutablePointer<GskRenderer>!
  • getSurface() Extension method

    Returns the surface of this GtkNative.

    Declaration

    Swift

    @inlinable
    func getSurface() -> Gdk.SurfaceRef!
  • getSurfaceTransform(x:y:) Extension method

    Retrieves the surface transform of self.

    This is the translation from self‘s surface coordinates into self’s widget coordinates.

    Declaration

    Swift

    @inlinable
    func getSurfaceTransform(x: UnsafeMutablePointer<CDouble>!, y: UnsafeMutablePointer<CDouble>!)
  • realize() Extension method

    Realizes a GtkNative.

    This should only be used by subclasses.

    Declaration

    Swift

    @inlinable
    func realize()
  • unrealize() Extension method

    Unrealizes a GtkNative.

    This should only be used by subclasses.

    Declaration

    Swift

    @inlinable
    func unrealize()
  • renderer Extension method

    Returns the renderer that is used for this GtkNative.

    Declaration

    Swift

    @inlinable
    var renderer: UnsafeMutablePointer<GskRenderer>! { get }
  • surface Extension method

    Returns the surface of this GtkNative.

    Declaration

    Swift

    @inlinable
    var surface: Gdk.SurfaceRef! { get }