pub trait SurfaceExtManual: 'static {
    fn create_similar_surface(
        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.

Required Methods

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.


the content for the new surface


width of the new surface


height of the new surface


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

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).


the target surface


coordinates to translate


coordinates to translate


true if the coordinates were successfully translated