enum Elm.Panel.Orient
{
   [[Panel orientation mode]]

   top, [[Panel (dis)appears from the top]]
   bottom, [[Panel (dis)appears from the bottom]]
   left, [[Panel (dis)appears from the left]]
   right [[Panel (dis)appears from the right]]
}

class Elm.Panel (Elm.Layout, Elm_Interface_Scrollable,
                 Elm_Interface_Atspi_Widget_Action)
{
   eo_prefix: elm_obj_panel;
   methods {
      @property orient {
         set {
            [[Set the orientation of the panel

              Set from where the panel will (dis)appear.

              \@if MOBILE \@since_tizen 2.3
              \@elseif WEARABLE \@since_tizen 2.3.1
              \@endif
            ]]
         }
         get {
            [[Get the orientation of the panel.

              \@if MOBILE \@since_tizen 2.3
              \@elseif WEARABLE \@since_tizen 2.3.1
              \@endif
            ]]
         }
         values {
            orient: Elm.Panel.Orient(Elm.Panel.Orient.left); [[The panel orientation.]]
         }
      }
      @property hidden {
         set {
            [[Set the state of the panel.

              \@if MOBILE \@since_tizen 2.3
              \@elseif WEARABLE \@since_tizen 2.3.1
              \@endif
            ]]
         }
         get {
            [[Get the state of the panel.

              \@if MOBILE \@since_tizen 2.3
              \@elseif WEARABLE \@since_tizen 2.3.1
              \@endif
            ]]
         }
         values {
            hidden: bool; [[If true, the panel will run the animation to disappear.]]
         }
      }
      @property scrollable {
         set {
            [[Set the scrollability of the panel.

              \@if MOBILE \@since_tizen 2.3
              \@elseif WEARABLE \@since_tizen 2.3.1
              \@endif
            ]]
         }
         get {
            [[Get the state of the scrollability.

              \@if MOBILE \@since_tizen 3.0
              \@elseif WEARABLE \@since_tizen 3.0
              \@endif

              @since 1.12
            ]]
         }
         values {
            scrollable: bool; [[The scrollable state.]]
         }
      }
      @property scrollable_content_size {
         set {
            [[Set the size of the scrollable panel.

              \@if MOBILE \@since_tizen 2.3
              \@elseif WEARABLE \@since_tizen 2.3.1
              \@endif
            ]]
         }
         get {
            [[Get the size of the scrollable panel.

              @since 1.19
            ]]
         }
         values {
            ratio: double;
         }
      }
      toggle {
         [[Toggle the hidden state of the panel from code

           \@if MOBILE \@since_tizen 2.3
           \@elseif WEARABLE \@since_tizen 2.3.1
           \@endif
         ]]
      }
   }
   implements {
      class.constructor;
      Eo.Base.constructor;
      Evas.Object_Smart.add;
      Evas.Object_Smart.member_add;
      Evas.Object_Smart.del;
      Evas.Object_Smart.resize;
      Evas.Object_Smart.move;
      Elm.Widget.theme_apply;
      Elm.Widget.focus_next_manager_is;
      Elm.Widget.focus_next;
      Elm.Widget.disable;
      Elm.Widget.access;
      Elm.Widget.event;
      Elm.Widget.on_focus_region;
      Elm.Container.content_get;
      Elm.Container.content_unset;
      Elm.Container.content_set;
      Elm.Layout.sizing_eval;
      // TIZEN_ONLY(20150128): Panel implementation merge into 2.4
      Elm.Widget.orientation.set;
      ////////////////////////////////////////////////////////////
      Elm_Interface_Atspi_Widget_Action.elm_actions.get;
   }
   events {
      toggled;
   }
}
