summaryrefslogtreecommitdiff
path: root/lib/lvgl/docs/widgets/extra/calendar.md
diff options
context:
space:
mode:
Diffstat (limited to 'lib/lvgl/docs/widgets/extra/calendar.md')
m---------lib/lvgl0
-rw-r--r--lib/lvgl/docs/widgets/extra/calendar.md82
2 files changed, 82 insertions, 0 deletions
diff --git a/lib/lvgl b/lib/lvgl
deleted file mode 160000
-Subproject 0732400e7b564dd0e7dc4a924619d8e19c5b23a
diff --git a/lib/lvgl/docs/widgets/extra/calendar.md b/lib/lvgl/docs/widgets/extra/calendar.md
new file mode 100644
index 00000000..5dd601d1
--- /dev/null
+++ b/lib/lvgl/docs/widgets/extra/calendar.md
@@ -0,0 +1,82 @@
+# Calendar (lv_calendar)
+
+## Overview
+
+The Calendar object is a classic calendar which can:
+- show the days of any month in a 7x7 matrix
+- Show the name of the days
+- highlight the current day (today)
+- highlight any user-defined dates
+
+The Calendar is added to the default group (if it is set). Calendar is an editable object which allow selecting and clicking the dates with encoder navigation too.
+
+To make the Calendar flexible, by default it doesn't show the current year or month. Instead, there are optional "headers" that can be attached to the calendar.
+
+## Parts and Styles
+The calendar object uses the [Button matrix](/widgets/core/btnmatrix) object under the hood to arrange the days into a matrix.
+- `LV_PART_MAIN` The background of the calendar. Uses all the background related style properties.
+- `LV_PART_ITEMS` Refers to the dates and day names. Button matrix control flags are set to differentiate the buttons and a custom drawer event is added modify the properties of the buttons as follows:
+ - day names have no border, no background and drawn with a gray color
+ - days of the previous and next month have `LV_BTNMATRIX_CTRL_DISABLED` flag
+ - today has a thicker border with the theme's primary color
+ - highlighted days have some opacity with the theme's primary color.
+
+## Usage
+
+Some functions use the `lv_calendar_date_t` type which is a structure with `year`, `month` and `day` fields.
+
+### Current date
+To set the current date (today), use the `lv_calendar_set_today_date(calendar, year, month, day)` function. `month` needs to be in 1..12 range and `day` in 1..31 range.
+
+### Shown date
+To set the shown date, use `lv_calendar_set_shown_date(calendar, year, month)`;
+
+### Highlighted days
+
+The list of highlighted dates should be stored in a `lv_calendar_date_t` array loaded by `lv_calendar_set_highlighted_dates(calendar, highlighted_dates, date_num)`.
+Only the array's pointer will be saved so the array should be a static or global variable.
+
+### Name of the days
+The name of the days can be adjusted with `lv_calendar_set_day_names(calendar, day_names)` where `day_names` looks like `const char * day_names[7] = {"Su", "Mo", ...};`
+Only the pointer of the day names is saved so the elements should be static, global or constant variables.
+
+## Events
+- `LV_EVENT_VALUE_CHANGED` Sent if a date is clicked. `lv_calendar_get_pressed_date(calendar, &date)` set `date` to the date currently being pressed. Returns `LV_RES_OK` if there is a valid pressed date, else `LV_RES_INV`.
+
+Learn more about [Events](/overview/event).
+
+## Keys
+- `LV_KEY_RIGHT/UP/LEFT/RIGHT` To navigate among the buttons to dates
+- `LV_KEY_ENTER` To press/release the selected date
+
+Learn more about [Keys](/overview/indev).
+
+## Headers
+
+**From v8.1 the header is added directly into the Calendar widget and the API of the headers has been changed.**
+
+### Arrow buttons
+
+`lv_calendar_header_arrow_create(calendar)` creates a header that contains a left and right arrow on the sides and a text with the current year and month between them.
+
+
+### Drop-down
+`lv_calendar_header_dropdown_create(calendar)` creates a header that contains 2 drop-drown lists: one for the year and another for the month.
+
+
+## Example
+
+```eval_rst
+
+.. include:: ../../../examples/widgets/calendar/index.rst
+
+```
+
+## API
+
+```eval_rst
+
+.. doxygenfile:: lv_calendar.h
+ :project: lvgl
+
+```