## EDateEdit EDateEdit |

## Synopsis

    GtkWidget *         e_date_edit_new                     (void);
    void                e_date_edit_set_editable            (EDateEdit *dedit,
                                                             gboolean editable);
    gboolean            e_date_edit_date_is_valid           (EDateEdit *dedit);
    gboolean            e_date_edit_time_is_valid           (EDateEdit *dedit);
    time_t              e_date_edit_get_time                (EDateEdit *dedit);
    void                e_date_edit_set_time                (EDateEdit *dedit,
                                                             time_t the_time);
    gboolean            e_date_edit_get_date                (EDateEdit *dedit,
                                                             gint *year,
                                                             gint *month,
                                                             gint *day);
    void                e_date_edit_set_date                (EDateEdit *dedit,
                                                             gint year,
                                                             gint month,
                                                             gint day);
    gboolean            e_date_edit_get_time_of_day         (EDateEdit *dedit,
                                                             gint *hour,
                                                             gint *minute);
    void                e_date_edit_set_time_of_day         (EDateEdit *dedit,
                                                             gint hour,
                                                             gint minute);
    void                e_date_edit_set_date_and_time_of_day
                                                            (EDateEdit *dedit,
                                                             gint year,
                                                             gint month,
                                                             gint day,
                                                             gint hour,
                                                             gint minute);
    gboolean            e_date_edit_get_show_date           (EDateEdit *dedit);
    void                e_date_edit_set_show_date           (EDateEdit *dedit,
                                                             gboolean show_date);
    gboolean            e_date_edit_get_show_time           (EDateEdit *dedit);
    void                e_date_edit_set_show_time           (EDateEdit *dedit,
                                                             gboolean show_time);
    GDateWeekday        e_date_edit_get_week_start_day      (EDateEdit *dedit);
    void                e_date_edit_set_week_start_day      (EDateEdit *dedit,
                                                             GDateWeekday week_start_day);
    gboolean            e_date_edit_get_show_week_numbers   (EDateEdit *dedit);
    void                e_date_edit_set_show_week_numbers   (EDateEdit *dedit,
                                                             gboolean show_week_numbers);
    gboolean            e_date_edit_get_use_24_hour_format  (EDateEdit *dedit);
    void                e_date_edit_set_use_24_hour_format  (EDateEdit *dedit,
                                                             gboolean use_24_hour_format);
    gboolean            e_date_edit_get_allow_no_date_set   (EDateEdit *dedit);
    void                e_date_edit_set_allow_no_date_set   (EDateEdit *dedit,
                                                             gboolean allow_no_date_set);
    void                e_date_edit_get_time_popup_range    (EDateEdit *dedit,
                                                             gint *lower_hour,
                                                             gint *upper_hour);
    void                e_date_edit_set_time_popup_range    (EDateEdit *dedit,
                                                             gint lower_hour,
                                                             gint upper_hour);
    gboolean            e_date_edit_get_make_time_insensitive
                                                            (EDateEdit *dedit);
    void                e_date_edit_set_make_time_insensitive
                                                            (EDateEdit *dedit,
                                                             gboolean make_insensitive);
    gboolean            e_date_edit_get_twodigit_year_can_future
                                                            (EDateEdit *dedit);
    void                e_date_edit_set_twodigit_year_can_future
                                                            (EDateEdit *dedit,
                                                             gboolean value);
    void                e_date_edit_set_get_time_callback   (EDateEdit *dedit,
                                                             EDateEditGetTimeCallback cb,
                                                             gpointer data,
                                                             GDestroyNotify destroy);
    GtkWidget *         e_date_edit_get_entry               (EDateEdit *dedit);

## Description

## Details

### e_date_edit_new ()

    GtkWidget *         e_date_edit_new                     (void);

Creates a new EDateEdit widget which can be used to provide an easy to use way for entering dates and times.

Returns : | a new EDateEdit widget.

### e_date_edit_set_editable ()

    void                e_date_edit_set_editable            (EDateEdit *dedit,
                                                             gboolean editable);

Allows the programmer to disallow editing (and the popping up of the calendar widget), while still allowing the user to select the date from the GtkEntry.

`dedit` : | an EDateEdit
`editable` : | whether or not the widget should accept edits.

### e_date_edit_date_is_valid ()

    gboolean            e_date_edit_date_is_valid           (EDateEdit *dedit);

Returns TRUE if the last date entered was valid.

Note that if this returns FALSE, you can still use `e_date_edit_get_time()` or `e_date_edit_get_date()` to get the last time or date entered which was valid.

`dedit` : | an EDateEdit
Returns : | TRUE if the last date entered was valid.

### e_date_edit_time_is_valid ()

    gboolean            e_date_edit_time_is_valid           (EDateEdit *dedit);

Returns TRUE if the last time entered was valid.

Note that if this returns FALSE, you can still use `e_date_edit_get_time()` or `e_date_edit_get_time_of_day()` to get the last time or time of the day entered which was valid.

`dedit` : | an EDateEdit
Returns : | TRUE if the last time entered was valid.

### e_date_edit_get_time ()

    time_t              e_date_edit_get_time                (EDateEdit *dedit);

Returns the last valid time entered. If empty times are valid, by calling `e_date_edit_set_allow_no_date_set()`, then it may return -1.

Note that the last time entered may actually have been invalid. You can check this with `e_date_edit_time_is_valid()`.

`dedit` : | an EDateEdit
Returns : | the last valid time entered, or -1 if the time is not set.

### e_date_edit_set_time ()

    void                e_date_edit_set_time                (EDateEdit *dedit,
                                                             time_t the_time);

Changes the displayed date and time in the EDateEdit widget to be the one represented by `the_time`. If `the_time` is 0 then current time is used. If it is -1, then the date is set to None.

Note that the time is converted to local time using the Unix timezone, so if you are using your own timezones then you should use `e_date_edit_set_date()` and `e_date_edit_set_time_of_day()` instead.

`dedit` : | an EDateEdit
`the_time` : | The time and date that should be set on the widget

### e_date_edit_get_date ()

    gboolean            e_date_edit_get_date                (EDateEdit *dedit,
                                                             gint *year,
                                                             gint *month,
                                                             gint *day);

Returns the last valid date entered into the date field.

`dedit` : | an EDateEdit
`year` : | returns the year set.
`month` : | returns the month set (1 - 12).
`day` : | returns the day set (1 - 31).
Returns : | TRUE if a time was set, or FALSE if the field is empty or 'None'.

### e_date_edit_set_date ()

    void                e_date_edit_set_date                (EDateEdit *dedit,
                                                             gint year,
                                                             gint month,
                                                             gint day);

Sets the date in the date field.

`dedit` : | an EDateEdit
`year` : | the year to set.
`month` : | the month to set (1 - 12).
`day` : | the day to set (1 - 31).

### e_date_edit_get_time_of_day ()

    gboolean            e_date_edit_get_time_of_day         (EDateEdit *dedit,
                                                             gint *hour,
                                                             gint *minute);

Returns the last valid time entered into the time field.

`dedit` : | an EDateEdit
`hour` : | returns the hour set, or 0 if the time isn't set.
`minute` : | returns the minute set, or 0 if the time isn't set.
Returns : | TRUE if a time was set, or FALSE if the field is empty or 'None'.

### e_date_edit_set_time_of_day ()

    void                e_date_edit_set_time_of_day         (EDateEdit *dedit,
                                                             gint hour,
                                                             gint minute);

Sets the time in the time field.

`dedit` : | an EDateEdit
`hour` : | the hour to set, or -1 to set the time to None (i.e. empty).
`minute` : | the minute to set.

### e_date_edit_set_date_and_time_of_day ()

    void                e_date_edit_set_date_and_time_of_day
                                                            (EDateEdit *dedit,
                                                             gint year,
                                                             gint month,
                                                             gint day,
                                                             gint hour,
                                                             gint minute);

### e_date_edit_get_show_date ()

    gboolean            e_date_edit_get_show_date           (EDateEdit *dedit);

Returns TRUE if the date field is currently shown.

`dedit` : | an EDateEdit
Returns : | Whether the date field is shown.

### e_date_edit_set_show_date ()

    void                e_date_edit_set_show_date           (EDateEdit *dedit,
                                                             gboolean show_date);

Specifies whether the date field should be shown. The date field would be hidden if only a time needed to be entered.

`dedit` : | an EDateEdit
`show_date` : | TRUE if the date field should be shown.

### e_date_edit_get_show_time ()

    gboolean            e_date_edit_get_show_time           (EDateEdit *dedit);

Returns TRUE if the time field is currently shown.

`dedit` : | an EDateEdit
Returns : | Whether the time field is shown.

### e_date_edit_set_show_time ()

    void                e_date_edit_set_show_time           (EDateEdit *dedit,
                                                             gboolean show_time);

Specifies whether the time field should be shown. The time field would be hidden if only a date needed to be entered.

`dedit` : | an EDateEdit
`show_time` : | TRUE if the time field should be shown.

### e_date_edit_get_week_start_day ()

    GDateWeekday        e_date_edit_get_week_start_day      (EDateEdit *dedit);

Returns the week start day currently used in the calendar popup.

`dedit` : | an EDateEdit
Returns : | a GDateWeekday

### e_date_edit_set_week_start_day ()

    void                e_date_edit_set_week_start_day      (EDateEdit *dedit,
                                                             GDateWeekday week_start_day);

Sets the week start day to use in the calendar popup.

`dedit` : | an EDateEdit
`week_start_day` : | a GDateWeekday

### e_date_edit_get_show_week_numbers ()

    gboolean            e_date_edit_get_show_week_numbers   (EDateEdit *dedit);

### e_date_edit_set_show_week_numbers ()

    void                e_date_edit_set_show_week_numbers   (EDateEdit *dedit,
                                                             gboolean show_week_numbers);

### e_date_edit_get_use_24_hour_format ()

    gboolean            e_date_edit_get_use_24_hour_format  (EDateEdit *dedit);

### e_date_edit_set_use_24_hour_format ()

    void                e_date_edit_set_use_24_hour_format  (EDateEdit *dedit,
                                                             gboolean use_24_hour_format);

### e_date_edit_get_allow_no_date_set ()

    gboolean            e_date_edit_get_allow_no_date_set   (EDateEdit *dedit);

### e_date_edit_set_allow_no_date_set ()

    void                e_date_edit_set_allow_no_date_set   (EDateEdit *dedit,
                                                             gboolean allow_no_date_set);

### e_date_edit_get_time_popup_range ()

    void                e_date_edit_get_time_popup_range    (EDateEdit *dedit,
                                                             gint *lower_hour,
                                                             gint *upper_hour);

### e_date_edit_set_time_popup_range ()

    void                e_date_edit_set_time_popup_range    (EDateEdit *dedit,
                                                             gint lower_hour,
                                                             gint upper_hour);

### e_date_edit_get_make_time_insensitive ()

    gboolean            e_date_edit_get_make_time_insensitive
                                                            (EDateEdit *dedit);

Returns TRUE if the time field is made insensitive instead of hiding it.

`dedit` : | an EDateEdit
Returns : | Whether the time field is be made insensitive instead of hiding it.

### e_date_edit_set_make_time_insensitive ()

    void                e_date_edit_set_make_time_insensitive
                                                            (EDateEdit *dedit,
                                                             gboolean make_insensitive);

Specifies whether the time field should be made insensitive rather than hiding it. Note that this doesn't make it insensitive - you need to call `e_date_edit_set_show_time()` with FALSE as show_time to do that.

This is useful if you want to disable the time field, but don't want it to disappear as that may affect the layout of the widgets.

`dedit` : | an EDateEdit
`make_insensitive` : | TRUE if the time field should be made insensitive instead of hiding it.

### e_date_edit_get_twodigit_year_can_future ()

    gboolean            e_date_edit_get_twodigit_year_can_future
                                                            (EDateEdit *dedit);

### e_date_edit_set_twodigit_year_can_future ()

    void                e_date_edit_set_twodigit_year_can_future
                                                            (EDateEdit *dedit,
                                                             gboolean value);

### e_date_edit_set_get_time_callback ()

    void                e_date_edit_set_get_time_callback   (EDateEdit *dedit,
                                                             EDateEditGetTimeCallback cb,
                                                             gpointer data,
                                                             GDestroyNotify destroy);

### e_date_edit_get_entry ()

    GtkWidget *         e_date_edit_get_entry               (EDateEdit *dedit);