class Elm.Systray (Eo.Base)
{
   eo_prefix: elm_obj_systray;
   data: null;
   methods {
      @property id {
         set @internal {
            [[Set the id of the Status Notifier Item.]]
         }
         get @internal {
            [[Get the id of the Status Notifier Item.]]
         }
         values {
            id: const(char)* @nullable;
         }
      }
      @property category {
         set @internal {
            [[Set the category of the Status Notifier Item.]]
         }
         get @internal {
            [[Get the category of the Status Notifier Item.]]
         }
         values {
            cat: Elm_Systray_Category; [[Category]]
         }
      }
      @property icon_theme_path {
         set @internal {
            [[Set the path to the theme where the icons can be found. Set this value to "" to use the default path.]]
         }
         get @internal {
            [[Get the path to the icon's theme currently in use.]]
         }
         values {
            icon_theme_path: const(char)* @nullable;
         }
      }
      @property menu {
         set @internal {
            [[Set the object path of the D-Bus Menu that is to be show when the Status Notifier Item is activated by the user.]]
         }
         get @internal {
            [[Get the object path of the D-Bus Menu currently in use.]]
         }
         values {
            menu: const(Eo)* @nullable;
         }
      }
      @property att_icon_name {
         set @internal {
            [[Set the name of the attention icon to be used by the Status Notifier Item.]]
         }
         get @internal {
            [[Get the name of the attention icon used by the Status Notifier Item.]]
         }
         values {
            att_icon_name: const(char)* @nullable;
         }
      }
      @property status {
         set @internal {
            [[Set the status of the Status Notifier Item.]]
         }
         get @internal {
            [[Get the status of the Status Notifier Item.]]
         }
         values {
            st: Elm_Systray_Status; [[Status]]
         }
      }
      @property icon_name {
         set @internal {
            [[Set the name of the icon to be used by the Status Notifier Item.]]
         }
         get @internal {
            [[Get the name of the icon used by the Status Notifier Item.]]
         }
         values {
            icon_name: const(char)* @nullable;
         }
      }
      @property title {
         set @internal {
            [[Set the title of the Status Notifier Item.]]
         }
         get @internal {
            [[Get the title of the Status Notifier Item.]]
         }
         values {
            title: const(char)* @nullable;
         }
      }
      register @internal {
         [[Register this Status Notifier Item in the System Tray Watcher. This function should only be called after the event #ELM_EVENT_SYSTRAY_READY is emitted.]]
         return: bool;
      }
   }

}
