class Elm_App_Server (Eo.Base)
{
   legacy_prefix: null;
   eo_prefix: elm_app_server;
   properties {
      icon {
         set {
         }
         get {
         }
         values {
            Eina_Stringshare *icon; /*@ title of icon */
         }
      }
      views {
         get {
            /*@ Return a iterator with all views of application */
         }
         values {
            iterator *ret; /*@ Iterator with all views of application, you must free iterator after use */
         }
      }
      path {
         get {
         }
         values {
            const(char)* ret;
         }
      }
      package {
         get {
         }
         values {
            Eina_Stringshare *ret;
         }
      }
      pixels {
         get {
            /*@ Get application raw icon. */
         }
         set {
            /*@ Set icon to application, using the raw pixels of image. */
         }
         values {
            uint w;
            uint h;
            bool has_alpha;
            const(ubyte)* pixels;
         }
      }
   }
   methods {
      constructor {
         /*@ Class constructor of elm_app_server */
         legacy: null;
         params {
            @in const(char)* packageid; /*@ package of application */
            @in Elm_App_Server_Create_View_Cb create_view_cb; /*@ callback to be called when user whants to open some application view */
         }
      }
      close_all {
         /*@ Close all views of application */
      }
      view_check {
         /*@ If view id is available and unique, return the full DBus object path of view */
         params {
            @in const(char)* id; /*@ view identifier */
         }
         return: bool; /* @c EINA_TRUE if id is valid or @c EINA_FALSE if not */
      }
      view_add {
         /*@ Add a view to elm_app_server. This should only be used if the application open a view that was not requested by create_view_cb. */
         params {
            @in Elm_App_Server_View *view; /*@ elm_app_server_view */
         }
      }
      title_set {
         /*@ Set a title to application. */
         params {
            @in const(char)* title; /*@ title of application */
         }
      }
      title_get {
         /*@ Get title of application */
         return: Eina_Stringshare *; /* title of application */
      }
      save {
         /*@ Save the state of all views */
      }
   }
   implements {
      Eo.Base.destructor;
   }
   constructors {
      .constructor;
   }
   events {
      terminate; /*@ Called when application must be terminated. */
   }

}
