efl/src/lib/elementary/efl_ui_calendar_private.h

43 lines
1.4 KiB
C
Raw Normal View History

#ifndef EFL_UI_CALENDAR_PRIVATE_H
#define EFL_UI_CALENDAR_PRIVATE_H
#include "Elementary.h"
/* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR
* CODE. THIS IS ELEMENTARY'S INTERNAL WIDGET API (for now) AND IS NOT
* FINAL. CALL elm_widget_api_check(ELM_INTERNAL_API_VERSION) TO CHECK
* IT AT RUNTIME.
*/
/**
* Base layout smart data extended with calendar instance data.
*/
typedef struct _Efl_Ui_Calendar_Data Efl_Ui_Calendar_Data;
struct _Efl_Ui_Calendar_Data
{
Evas_Object *obj; // the object itself
double interval, first_interval;
int spin_speed;
int today_it, selected_it, focused_it;
Efl.Ui.Calendar, elm_calendar: Code fixed to support auto repeat feature. Summary: 1. Why there is a edje signal callback in elm_calendar? and do we need to maintain? We used edje part like a button before (3 years ago?), So there is a callbacks to get edje signal. Im pretty sure it is not use anymore. but we need to maintain backward compatibility. 2. elm_calendar using using repeat feature in efl_ui_button for it. why did i change it to manual timer? We opend elm_calendar_interval_set() APIs. Support this API the manual timer is proper then using button's feature. 3. why scroll freeze? and why only elm_calendar does it? When the user long press calendar button area and then move the scroll will be activated. it can prevent that weird action. efl_ui_calendar using button's feature. i not sure scroll freeze is deserve to attached in button side as a feature or not. So i will consider more for this case. 4. Why efl_ui_calendar doesn't have year buttons (double spinner case) After interface work, we don't accept style change in the runtime. so that featrue will be supported as API. The year_button_set/get() property should be added. but i dont know is it really needed... If the app developer want use year inc/dec button for efl_ui_calendar. they can inherit the class and make it easily. Test Plan: View, Action, API test in the elementary-test sample App. Ps. The issue of the calendar2 crash when it closed. It's not relative with this commit. its focus. i will look around. Reviewers: Hermet, zmike, ManMower, segfaultxavi, devilhorns Reviewed By: Hermet Subscribers: cedric, #committers, zmike Tags: #efl Differential Revision: https://phab.enlightenment.org/D6626
2018-07-22 23:49:10 -07:00
Ecore_Timer *update_timer;
const char *weekdays[ELM_DAY_LAST];
struct tm current_date, shown_date, date, date_min, date_max;
Evas_Object *inc_btn_month;
Evas_Object *dec_btn_month;
Evas_Object *month_access;
Eo *items[42];
Efl_Ui_Calendar_Weekday first_week_day;
unsigned char first_day_it;
Eina_Bool selected : 1;
Eina_Bool filling : 1;
Eina_Bool weekdays_set : 1;
};
#define EFL_UI_CALENDAR_DATA_GET(o, sd) \
Efl_Ui_Calendar_Data * sd = efl_data_scope_get(o, EFL_UI_CALENDAR_CLASS)
#endif