sig
  type item_class = {
    item_style : string;
    func_text_get : Evas.obj -> string -> string;
    func_content_get : Evas.obj -> string -> Evas.obj option;
    func_state_get : Evas.obj -> string -> bool;
    func_del : Evas.obj -> unit;
    func_reusable_content_get :
      Evas.obj -> string -> Evas.obj -> Evas.obj option;
  }
  val item_class_create :
    item_style:string ->
    ?func_text_get:(Evas.obj -> string -> string) ->
    ?func_content_get:(Evas.obj -> string -> Evas.obj option) ->
    ?func_state_get:(Evas.obj -> string -> bool) ->
    ?func_del:(Evas.obj -> unit) ->
    ?func_reusable_content_get:(Evas.obj ->
                                string -> Evas.obj -> Evas.obj option) ->
    unit -> Elm_gen.item_class
end