class Elm_Dayselector (Elm_Layout)
{
   eo_prefix: elm_obj_dayselector;
   properties {
      week_start {
         set {
            /*@
            Set the starting day of Dayselector.

            @see Elm_Dayselector_Day
            @see elm_dayselector_week_start_get()

            @ingroup Dayselector */
         }
         get {
            /*@
            Get the starting day of Dayselector.

            @return Day from where Dayselector displays all the weekdays in order.

            @see Elm_Dayselector_Day
            @see elm_dayselector_week_start_set()

            @ingroup Dayselector */
         }
         values {
            Elm_Dayselector_Day day; /*@ Dayselector_Day the first day that the user wants to display. */
         }
      }
      weekend_length {
         set {
            /*@
            Set the weekend length of Dayselector.

            @see elm_dayselector_weekend_length_get()

            @ingroup Dayselector */
         }
         get {
            /*@
            Get the weekend length of Dayselector.

            @return Number of days marked as a weekend.

            @see Elm_Dayselector_Day
            @see elm_dayselector_weekend_length_set()

            @ingroup Dayselector */
         }
         values {
            uint length; /*@ Weekend length, number of days as an integer. */
         }
      }
      weekend_start {
         set {
            /*@
            Set the weekend starting day of Dayselector.

            @see Elm_Dayselector_Day
            @see elm_dayselector_weekend_start_get()

            @ingroup Dayselector */
         }
         get {
            /*@
            Get the weekend starting day of Dayselector.

            @return Elm_Dayselector_Day Day from where weekend starts.

            @see Elm_Dayselector_Day
            @see elm_dayselector_weekend_start_set()

            @ingroup Dayselector */
         }
         values {
            Elm_Dayselector_Day day; /*@ Dayselector_Day the first day from where weekend starts. */
         }
      }
   }
   methods {
      weekdays_names_set {
         /*@
         Set weekdays names to be displayed by the Dayselector.

         By default or if @a weekdays is @c NULL, weekdays abbreviations get from system are displayed:
         E.g. for an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat"

         The first string should be related to Sunday, the second to Monday...

         The usage should be like this:
         @code
         const char *weekdays[] =
         {
         "Sunday", "Monday", "Tuesday", "Wednesday",
         "Thursday", "Friday", "Saturday"
         };
         elm_dayselector_wekdays_names_set(calendar, weekdays);
         @endcode

         @see elm_dayselector_weekdays_name_get()
         @see elm_dayselector_weekend_start_set()

         @since 1.8

         @ingroup Dayselector */

         params {
            @in const(char)* *weekdays; /*@ Array of seven strings to be used as weekday names.
            @warning It must have 7 elements, or it will access invalid memory.
            @warning The strings must be NULL terminated ('@\0'). */
         }
      }
      weekdays_names_get @const {
         /*@
         Get weekdays names displayed by the calendar.

         @return A list of seven strings to be used as weekday names.

         By default, weekdays abbreviations get from system are displayed:
         E.g. for an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
         The first string is related to Sunday, the second to Monday...

         @see elm_dayselector_weekdays_name_set()

         @since 1.8

         @ingroup Dayselector */
         return: list *;
      }
      day_selected_set {
         /*@
         Set the state of given Dayselector_Day.

         @see Elm_Dayselector_Day
         @see elm_dayselector_day_selected_get()

         @ingroup Dayselector */

         params {
            @in Elm_Dayselector_Day day; /*@ Dayselector_Day that the user want to set state. */
            @in bool selected; /*@ state of the day. @c EINA_TRUE is selected. */
         }
      }
      day_selected_get @const {
         /*@
         Get the state of given Dayselector_Day.

         @return @c EINA_TRUE, if the Day is selected

         @see Elm_Dayselector_Day
         @see elm_dayselector_day_selected_set()

         @ingroup Dayselector */
         return: bool;
         params {
            @in Elm_Dayselector_Day day; /*@ Dayselector_Day that the user want to know state. */
         }
      }
   }
   implements {
      class.constructor;
      Eo.Base.constructor;
      Evas.Object_Smart.add;
      Evas.Object_Smart.del;
      Elm_Widget.theme_apply;
      Elm_Widget.focus_direction_manager_is;
      Elm_Widget.translate;
      Elm_Container.content_unset;
      Elm_Container.content_set;
      Elm_Layout.sizing_eval;
   }
   events {
      dayselector,changed;
      language,changed;
      access,changed;
   }

}
