gdk4::prelude

Trait SurfaceExtManual

Source
pub trait SurfaceExtManual:
    Sealed
    + IsA<Surface>
    + 'static {
    // Provided methods
    fn create_similar_surface(
        &self,
        content: Content,
        width: i32,
        height: i32,
    ) -> Surface { ... }
    fn translate_coordinates(&self, to: &Surface, x: f64, y: f64) -> bool { ... }
}
Expand description

Trait containing manually implemented methods of Surface.

Provided Methods§

Source

fn create_similar_surface( &self, content: Content, width: i32, height: i32, ) -> Surface

Create a new Cairo surface that is as compatible as possible with the given @self.

For example the new surface will have the same fallback resolution and font options as @self. Generally, the new surface will also use the same backend as @self, unless that is not possible for some reason. The type of the returned surface may be examined with cairo_surface_get_type().

Initially the surface contents are all 0 (transparent if contents have transparency, black otherwise.)

This function always returns a valid pointer, but it will return a pointer to a “nil” surface if @other is already in an error state or any other error occurs.

§Deprecated since 4.12

Create a suitable cairo image surface yourself

§content

the content for the new surface

§width

width of the new surface

§height

height of the new surface

§Returns

a pointer to the newly allocated surface. The caller owns the surface and should call cairo_surface_destroy() when done with it.

Source

fn translate_coordinates(&self, to: &Surface, x: f64, y: f64) -> bool

Translates coordinates between two surfaces.

Note that this only works if @to and @self are popups or transient-for to the same toplevel (directly or indirectly).

§to

the target surface

§x

coordinates to translate

§y

coordinates to translate

§Returns

true if the coordinates were successfully translated

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§