class Elm.Grid (Elm.Widget)
{
   eo_prefix: elm_obj_grid;
   data: null;
   methods {
      @property size {
         set {
            [[Set the virtual size of the grid

              \@if MOBILE \@since_tizen 2.3
              \@elseif WEARABLE \@since_tizen 2.3.1
              \@endif
            ]]
         }
         get {
            [[Get the virtual size of the grid

              \@if MOBILE \@since_tizen 2.3
              \@elseif WEARABLE \@since_tizen 2.3.1
              \@endif
            ]]
         }
         values {
            w: Evas.Coord; [[The virtual width of the grid]]
            h: Evas.Coord; [[The virtual height of the grid]]
         }
      }
      @property children {
         get {
            [[Get the list of the children for the grid.

              Note: This is a duplicate of the list kept by the grid internally.
              It's up to the user to destroy it when it no longer needs it.
              It's possible to remove objects from the grid when walking this
              list, but these removals won't be reflected on it.

              \@if MOBILE \@since_tizen 2.3
              \@elseif WEARABLE \@since_tizen 2.3.1
              \@endif
            ]]
            return: free(own(list<Evas.Object *> *), eina_list_free) @warn_unused;
         }
      }
      clear {
         [[Faster way to remove all child objects from a grid object.

           \@if MOBILE \@since_tizen 2.3
           \@elseif WEARABLE \@since_tizen 2.3.1
           \@endif
         ]]
         params {
            @in clear: bool; [[If true, it will delete just removed children]]
         }
      }
      unpack {
         [[Unpack a child from a grid object

           \@if MOBILE \@since_tizen 2.3
           \@elseif WEARABLE \@since_tizen 2.3.1
           \@endif
         ]]
         params {
            @in subobj: Evas.Object *; [[The child to unpack]]
         }
      }
      pack {
         [[Pack child at given position and size

           \@if MOBILE \@since_tizen 2.3
           \@elseif WEARABLE \@since_tizen 2.3.1
           \@endif
         ]]
         params {
            @in subobj: Evas.Object *; [[The child to pack.]]
            @in x: Evas.Coord; [[The virtual x coord at which to pack it.]]
            @in y: Evas.Coord; [[The virtual y coord at which to pack it.]]
            @in w: Evas.Coord; [[The virtual width at which to pack it.]]
            @in h: Evas.Coord; [[The virtual height at which to pack it.]]
         }
      }
   }
   implements {
      class.constructor;
      Eo.Base.constructor;
      Evas.Object_Smart.add;
      Evas.Object_Smart.del;
      Elm.Widget.focus_direction;
      Elm.Widget.focus_next_manager_is;
      Elm.Widget.focus_next;
      Elm.Widget.focus_direction_manager_is;
      Elm.Widget.theme_apply;
   }

}
