class Elm_App_Client (Eo.Base)
{
   legacy_prefix: null;
   eo_prefix: elm_app_client;
   properties {
      views {
         get {
            /*@ Return a iterator with all views of application. */
         }
         values {
            iterator *ret; /*@ The iterator with all views, must be freed after use */
         }
      }
      package {
         get {
            /*@ Return the application package. */
         }
         values {
            const(char)* ret; /*@ application package */
         }
      }
   }
   methods {
      constructor {
         /*@ Class constructor of elm_app_client. */
         legacy: null;
         params {
            @in const(char)* package; /*@ Package of application */
         }
      }
      view_all_close {
         /*@ Close all views of application. */
      }
      terminate {
         /*@ Terminate application. */
      }
      view_open {
         /*@ Open an application view. */
         params {
            @in Eina_Value *args; /*@ an array of */
            @in Elm_App_Client_Open_View_Cb view_open_cb; /*@ callback to be called when view open */
            @in const(void)* data; /*@ calback user data */
         }
         return: Elm_App_Client_Pending *; /* handler to cancel the view opening if it takes to long */
      }
      view_open_cancel {
         /*@ Cancel a pending elm_app_client_view_open(). */
         params {
            @in Elm_App_Client_Pending *pending; /*@ the view open handler */
         }
      }
   }
   implements {
      Eo.Base.destructor;
   }
   constructors {
      .constructor;
   }
   events {
      view,created; /*@ Called when a view of this application is created. */
      view,deleted; /*@ Called when a view of this application is deleted. */
      view_list,loaded; /*@ Called when list of view is loaded. */
      application,terminated; /*@ Called when application is terminated. */
   }

}
