interface Efl.Gfx.Fill {
   legacy_prefix: null;
   methods {
      @property fill_spread {
         set {
            [[Sets the tiling mode for the given evas image object's fill.
              $EFL_GFX_FILL_RESTRICT, or $EFL_GFX_FILL_PAD.]]
         }
         get {
            [[Retrieves the spread (tiling mode) for the given image object's
              fill.]]
         }
         values {
            spread: Efl_Gfx_Fill_Spread; [[The current spread mode of the image object.
                                           One of $EFL_GFX_FILL_REFLECT, $EFL_GFX_FILL_REPEAT]]
         }
      }
      @property fill {
         set {
            [[Set how to fill an image object's drawing rectangle given the
              (real) image bound to it.

              Note that if $w or $h are smaller than the dimensions of
              $obj, the displayed image will be tiled around the object's
              area. To have only one copy of the bound image drawn, $x and $y
              must be 0 and $w and $h need to be the exact width and height
              of the image object itself, respectively.

              Warning: The default values for the fill parameters are $x = 0,
              $y = 0, $w = 0 and $h = 0. Thus, if you're not using the
              evas_object_image_filled_add() helper and want your image
              displayed, you'll have to set valid values with this function on
              your object.

              Note: evas_object_image_filled_set() is a helper function which
              will override the values set here automatically, for you, in a
              given way.]]
            /* FIXME-doc
             * See the following image to better understand the effects of this
             * call. On this diagram, both image object and original image source
             * have $a x $a dimensions and the image itself is a circle, with
             * empty space around it:

             * @image html image-fill.png
             * @image rtf image-fill.png
             * @image latex image-fill.eps
             */
         }
         get {
            [[Retrieve how an image object is to fill its drawing rectangle,
              given the (real) image bound to it.

              Note: Use $null pointers on the fill components you're not
              interested in: they'll be ignored by the function.

              See @.fill.set() for more details.]]
         }
         values {
            x: int; [[The x coordinate (from the top left corner of the bound
                      image) to start drawing from.]]
            y: int; [[The y coordinate (from the top left corner of the bound
                      image) to start drawing from.]]
            w: int; [[The width the bound image will be displayed at.]]
            h: int; [[The height the bound image will be displayed at.]]
         }
      }
   }
}
