diff options
Diffstat (limited to 'inc')
-rw-r--r-- | inc/clock_fwk_icu_label.h | 39 | ||||
-rw-r--r-- | inc/ug_worldclock_efl.h | 30 | ||||
-rw-r--r-- | inc/worldclock.h | 116 | ||||
-rw-r--r-- | inc/worldclock_add_view.h | 54 | ||||
-rw-r--r-- | inc/worldclock_const.h | 53 | ||||
-rw-r--r-- | inc/worldclock_data.h | 36 | ||||
-rw-r--r-- | inc/worldclock_dlog.h | 92 | ||||
-rw-r--r-- | inc/worldclock_fwk_icu.h | 37 | ||||
-rw-r--r-- | inc/worldclock_timezone.h | 1258 | ||||
-rw-r--r-- | inc/worldclock_types.h | 88 | ||||
-rw-r--r-- | inc/worldclock_util.h | 90 |
11 files changed, 1893 insertions, 0 deletions
diff --git a/inc/clock_fwk_icu_label.h b/inc/clock_fwk_icu_label.h new file mode 100644 index 0000000..8e1c718 --- /dev/null +++ b/inc/clock_fwk_icu_label.h @@ -0,0 +1,39 @@ +/* + * Copyright 2016 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CLOCK_FWK_ICU_LABEL_H__ +#define __CLOCK_FWK_ICU_LABEL_H__ + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> + +#ifdef __cplusplus +extern "C" { +#endif + + void init_alphabetic_index(char *lang); + + void uninit_alphabetic_index(); + + int32_t get_alphabetic_index(char *cityname); + + char *get_alphabetic_index_name(int32_t index); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/inc/ug_worldclock_efl.h b/inc/ug_worldclock_efl.h new file mode 100644 index 0000000..20a0bf1 --- /dev/null +++ b/inc/ug_worldclock_efl.h @@ -0,0 +1,30 @@ +/* + * Copyright 2016 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __helloUG_efl_H__ +#define __helloUG_efl_H__ + +#include <Elementary.h> + +#define IS_STR_EQUAL(a, b) (!strcmp(a, b)) +#define IS_STR_NOT_EQUAL(a, b) (strcmp(a, b)) + +//******************define:free ************************************* +#define FREEIF(p) ({ if (p) { free(p); p = NULL; } }) +#define EVAS_OBJECT_DELIF(p) ({ if (p) {evas_object_del(p); p = NULL; } }) +#define ECORE_TIMER_DELIF(p) ({ if (p) {ecore_timer_del(p); p = NULL; } }) + +#endif /* __helloUG_efl_H__ */ diff --git a/inc/worldclock.h b/inc/worldclock.h new file mode 100644 index 0000000..be1a4ff --- /dev/null +++ b/inc/worldclock.h @@ -0,0 +1,116 @@ +/* + * Copyright 2016 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __DEF_WORLDCLOCK_H__ +#define __DEF_WORLDCLOCK_H__ + +#include <Elementary.h> +#include <Ecore_IMF.h> +#include <app.h> + +#include "worldclock_const.h" +#include "worldclock_types.h" + +struct appdata { + int root_w; + int root_h; + int root_x; + int root_y; + + //the caller + Wcl_Caller caller; + //the selection flag + Wcl_Selection_Flag selectionFlag; + + //flag for if or not enter the loop update + bool flag_first; //as the flag for the first time to enter __ugview_index_update + bool flag_special_character; //as the flag for if or not have special character in index + + //For store the default country list + Eina_List *default_list; + //flag for if or not hide the index + bool flag_index; + //if false shutdown app after reply to app_control + bool stay_alive; + + app_control_h app_caller; + + /* Add city List */ + //For save current search content + char search_text[BUF_SIZE]; + char current_mcc[MCC_BUF_SIZE]; + + Elm_Object_Item *item_selected; //for store the selected city item + int city_index; //for store the selected city index + + Ecore_IMF_Context *imf_context; + + /* public used widget */ + Evas_Object *win; + Evas_Object *conform; + Evas_Object *bg; + + // samsung window layout + Evas_Object *ly_main; + Evas_Object *more_btn; + Evas_Object *back_btn; + + /* add layout */ + Evas_Object *add_ly; + Evas_Object *add_layout; + Evas_Object *add_search_bar; + Evas_Object *add_fs_layout; + Evas_Object *add_genlist; + Evas_Object *add_index; + Evas_Object *nocontent; + + Evas_Object *searchbar_rect; + Evas_Object *searchbar_entry; + Evas_Object *searchbar_button; + + /* timer */ + Ecore_Timer *add_view_quit_timer; + Ecore_Timer *add_view_update_timer; + Ecore_Timer *search_timer; + + /* Home City */ + Wcl_CitySet *home_cs; + + Evas_Object *navi_bar; + + // return a Wcl_CitySet, used in ug + Wcl_CitySet *return_data; + +#ifdef FEATURE_SORT_ORDER + //mark sort by name or gmt + Wcl_Addlist_Sort_Type sort; + Evas_Object *more_popup; + + //sort popup box + Evas_Object *sort_popup; //sort popup + Evas_Object *sort_popup_genlist; //sort popup genlist + Evas_Object *sort_radio; //sort radio + Wcl_Addlist_Sort_Type sort_text; //sort text + Wcl_Addlist_Sort_Type ex_sort_text; //sort text +#endif + + Eina_Bool is_Empty; + int searched_num; + int searched_text_length; +}; + +#endif /* __DEF_WORLDCLOCK_H_ */ + diff --git a/inc/worldclock_add_view.h b/inc/worldclock_add_view.h new file mode 100644 index 0000000..7f61c20 --- /dev/null +++ b/inc/worldclock_add_view.h @@ -0,0 +1,54 @@ +/* + * Copyright 2016 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __DEF_WORLDCLOCK_ADDVIEW_H_ +#define __DEF_WORLDCLOCK_ADDVIEW_H_ + +#include <Elementary.h> +#include "worldclock.h" + +/** + * Create add view for append new city into the selection list of worldclock + * + * @param[in] parent Evas_Object which is the parent of add view + * @param[in] data data which used in this function + * @param[in] func Callback function which used for invoking when exit from add view + * + * @return FAILED if create add view failed. + * SUCCESS if create add view successfully. + */ +int worldclock_ugview_add(Evas_Object * parent, void *data, Wcl_Return_Cb func); + +/** + * Update worldclock view + * + * @param[in] data data used for this function + * + * @return FAILED if update add view failed. + * SUCCESS if update add view successfully. + */ +int worldclock_ugview_update(void *data); + +/** + * Release all resources which used in add view when exit from add view + * + * @param[in] data data which used in this function + * + * @return + */ +void worldclock_ugview_free(void *data); + +#endif /* __DEF_WORLDCLOCK_ADDVIEW_H_ */ diff --git a/inc/worldclock_const.h b/inc/worldclock_const.h new file mode 100644 index 0000000..8d6e120 --- /dev/null +++ b/inc/worldclock_const.h @@ -0,0 +1,53 @@ +/* + * Copyright 2016 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __DEF_WORLDCLOCK_CONST_H_ +#define __DEF_WORLDCLOCK_CONST_H_ + +#include <limits.h> + +#ifndef _ +#define _(s) (dgettext(PACKAGE, s)) +#endif +#ifndef _EDJ +#define _EDJ(o) (elm_layout_edje_get(o)) +#endif + +#define BUF_SIZE 256 +#define BUF_MIN_SIZE 32 +#define BUF_LARGE_SIZE 512 +#define BUF_PATH PATH_MAX + +#define CITY_BUF_SIZE 128 +#define COUNTRY_BUF_SIZE 128 +#define TIMEZONE_BUF_SIZE 32 +#define TZPATH_BUF_SIZE 128 +#define FLAG_BUF_SIZE 128 +#define MCC_BUF_SIZE 20 + +#define PACKAGE "worldclock-efl" + +/* group name */ +#define GRP_ADD "ug_add_layout" + +#ifndef SUCCESS +#define SUCCESS 0 +#endif +#ifndef FAILED +#define FAILED -1 +#endif + +#endif /* __DEF_WORLDCLOCK_CONST_H_ */ diff --git a/inc/worldclock_data.h b/inc/worldclock_data.h new file mode 100644 index 0000000..b254123 --- /dev/null +++ b/inc/worldclock_data.h @@ -0,0 +1,36 @@ +/* + * Copyright 2016 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __DEF_WORLDCLOCK_DATA_H_ +#define __DEF_WORLDCLOCK_DATA_H_ + +#include <Elementary.h> +#include "worldclock_types.h" + +Eina_List *worldclock_ug_data_get_default_city_list(Wcl_Selection_Flag selectFlag); +Eina_Bool worldclock_ug_data_get_city_status_from_db(Wcl_CitySet * p_record); +Eina_Bool worldclock_ug_data_open_database(); +Eina_Bool worldclock_ug_data_close_database(); +void worldclock_ug_data_cityset_copy(Wcl_CitySet * dst_city, const Wcl_CitySet * src_city); + +/*TODO Functions below are not used in current realization. Probably it will be used for Clock application*/ +Wcl_CitySet *worldclock_ug_data_get_local_city(); +Eina_List *worldclock_ug_data_get_all_added_city(); +Eina_List *worldclock_ug_data_get_search_city_list(const char *search_txt, + Wcl_Search_Type search_type, Wcl_Selection_Flag selectFlag); +Eina_Bool worldclock_ug_data_update_db_record(Wcl_CitySet * p_record); + +#endif /* __DEF_WORLDCLOCK_DATA_H_ */ diff --git a/inc/worldclock_dlog.h b/inc/worldclock_dlog.h new file mode 100644 index 0000000..aa87a9e --- /dev/null +++ b/inc/worldclock_dlog.h @@ -0,0 +1,92 @@ +/* + * Copyright 2016 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __DEF_WORLDCLOCK_DLOG_H__ +#define __DEF_WORLDCLOCK_DLOG_H__ + +#include <dlog.h> +#include "ug_worldclock_efl.h" + +//tag +#ifdef LOG_TAG +#undef LOG_TAG +#endif +#define LOG_TAG "WORLDCLOCK_UG" + +#define FUNCTION_LOG ENABLE +#ifdef FUNCTION_LOG +#define CLK_FUN_BEG() CLK_INFO("====>>>>fun=%s, BEGIN====>>>>", __FUNCTION__); +#define CLK_FUN_END() CLK_INFO("====>>>>fun=%s, END====>>>>", __FUNCTION__); +#else +#define CLK_FUN_BEG() +#define CLK_FUN_END() +#endif +#define CLK_INFO(fmt, arg...) (dlog_print(DLOG_INFO, LOG_TAG, "[%s:%d] "fmt, __FILE__, __LINE__, ##arg)) +#define CLK_ERR(fmt, arg...) (dlog_print(DLOG_ERROR, LOG_TAG, FONT_COLOR_RED"[%s:%d] "fmt FONT_COLOR_RESET, __FILE__, __LINE__, ##arg)) + +#define CLK_FUN_DEBUG_BEG() //CLK_INFO("====>>>>fun=%s, BEGIN====>>>>",__FUNCTION__); +#define CLK_FUN_DEBUG_END() //CLK_INFO("====>>>>fun=%s, END====>>>>", __FUNCTION__); +#define CLK_DEBUG_INFO(fmt, arg...) //CLK_INFO(fmt, ##arg) +#define CLK_DEBUG_INFO(fmt, arg...) //CLK_ERR(fmt,##arg) + +/* anci c color type */ +#define FONT_COLOR_RESET "\033[0m" +#define FONT_COLOR_RED "\033[31m" +#define FONT_COLOR_GREEN "\033[32m" +#define FONT_COLOR_YELLOW "\033[33m" +#define FONT_COLOR_CYAN "\033[36m" + +#define CLK_INFO_RED(fmt, arg...) (CLK_INFO(FONT_COLOR_RED fmt FONT_COLOR_RESET, ##arg)) +#define CLK_INFO_GREEN(fmt, arg...) (CLK_INFO(FONT_COLOR_GREEN fmt FONT_COLOR_RESET, ##arg)) +#define CLK_INFO_YELLOW(fmt, arg...) (CLK_INFO(FONT_COLOR_YELLOW fmt FONT_COLOR_RESET, ##arg)) +#define CLK_INFO_CYAN(fmt, arg...) (CLK_INFO(FONT_COLOR_CYAN fmt FONT_COLOR_RESET, ##arg)) + +#define ret_if(expr) ({do { \ + if (expr) { \ + CLK_ERR("(%s) -> %s() return", #expr, __FUNCTION__); \ + return; \ + } \ + } while (0); }) +#define retv_if(expr, val) ({do { \ + if (expr) { \ + CLK_ERR("(%s) -> %s() return", #expr, __FUNCTION__); \ + return (val); \ + } \ + } while (0); }) +#define retm_if(expr, fmt, arg...) ({do { \ + if (expr) { \ + CLK_ERR(fmt, ##arg); \ + CLK_ERR("(%s) -> %s() return", #expr, __FUNCTION__); \ + return; \ + } \ + } while (0); }) +#define retvm_if(expr, val, fmt, arg...) ({do { \ + if (expr) { \ + CLK_ERR(fmt, ##arg); \ + CLK_ERR("(%s) -> %s() return", #expr, __FUNCTION__); \ + return (val); \ + } \ + } while (0); }) + +#define GOTO_ERROR_IF(expr) \ + ({do { \ + if ((expr)) { \ + CLK_ERR("(%s) goto error", #expr); \ + goto error; \ + } \ + } while (0); }) + +#endif // __DEF_WORLDCLOCK_DLOG_H__ diff --git a/inc/worldclock_fwk_icu.h b/inc/worldclock_fwk_icu.h new file mode 100644 index 0000000..ea6a494 --- /dev/null +++ b/inc/worldclock_fwk_icu.h @@ -0,0 +1,37 @@ +/* + * Copyright 2016 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __WCL_FWK_ICU_H__ +#define __WCL_FWK_ICU_H__ +#include <stdbool.h> + +/*BEG: Gong Xingsheng<x536.gong@samsung.com> add in Mon Nov 21 01:04:37 PST 2011 + * this struct is saved hour, min, sec and current time format + * which is used in genlist item date + */ + +typedef struct _worldclock_time_s worldclock_time_s; +struct _worldclock_time_s { + int hour; + int min; + int sec; + bool bAm; +}; +/*END: Gong Xingsheng<x536.gong@samsung.com> add in Mon Nov 21 01:04:37 PST 2011 */ + +int worldclock_icu_dst_get(const char *tz_path); + +#endif //__WCL_FWK_ICU_H__ diff --git a/inc/worldclock_timezone.h b/inc/worldclock_timezone.h new file mode 100644 index 0000000..2f05956 --- /dev/null +++ b/inc/worldclock_timezone.h @@ -0,0 +1,1258 @@ +/* + * Copyright 2016 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +{ + "Abidjan", "Ivory Coast", "GMT+0", "Africa/Abidjan" +} + +, { + "Abu Dhabi", "United Arab Emirates", "GMT+4", "Asia/Dubai" +} + +, { + "Accra", "Ghana", "GMT-10", "Africa/Accra" +} + +, { + "Addis Ababa", "Ethiopia", "GMT+3", "Africa/Addis_Ababa" +} + +, { + "Adelaide", "Australia", "GMT+9:30", "Australia/Adelaide" +} + +, { + "Alaska", "United States of America", "GMT-9", "America/Nome" +} + +, { + "Algiers", "Algeria", "GMT+1", "Africa/Algiers" +} + +, { + "Almaty", "Kazakhstan", "GMT+6", "Asia/Almaty" +} + +, { + "Ambon", "Indonesia", "GMT+1", "Asia/Jayapura" +} + +, { + "Amman", "Jordan", "GMT+2", "Asia/Amman" +} + +, { + "Amsterdam", "Netherlands", "GMT+1", "Europe/Amsterdam" +} + +, { + "Anadyr", "Russia", "GMT+12", "Asia/Anadyr" +} + +, { + "Anchorage", "United States of America", "GMT-9", "America/Anchorage" +} + +, { + "Ankara", "Turkey", "GMT+2", "Asia/Istanbul" +} + +, { + "Antananarivo", "Madagascar", "GMT+3", "Indian/Antananarivo" +} + +, { + "Ashgabat", "Turkmenistan", "GMT+5", "Asia/Ashgabat" +} + +, { + "Asmera", "Eritrea", "GMT+3", "Africa/Asmara" /* not in zone.tab */ +} + +, { + "Astana", "Kazakhstan", "GMT+6", "Asia/Almaty" /* not in zone.tab */ +} + +, { + "Asuncion", "Paraguay", "GMT-4", "America/Asuncion" +} + +, { + "Athens", "Greece", "GMT+2", "Europe/Athens" +} + +, { + "Auckland", "New Zealand", "GMT+12", "Pacific/Auckland" +} + +, { + "Austin", "United States of America", "GMT-6", "CST6CDT" +} + +, { + "Azores", "Portugal", "GMT-1", "Atlantic/Azores" +} + +, { + "Baghdad", "Iraq", "GMT+3", "Asia/Baghdad" +} + +, { + "Baku", "Azerbaijan", "GMT+4", "Asia/Baku" +} + +, { + "Baltimore", "United States of America", "GMT-5", "EST5EDT" +} + +, { + "Bamako", "Mali", "GMT+0", "Africa/Bamako" +} + +, { + "Bangkok", "Thailand", "GMT+7", "Asia/Bangkok" +} + +, { + "Bangui", "Central African Republic", "GMT+1", "Africa/Bangui" +} + +, { + "Barcelona", "Spain", "GMT+2", "Europe/Madrid" +} + +, { + "Bari", "Italy", "GMT+1", "Europe/Rome" +} + +, { + "Basse-Terre", "Guadeloupe", "GMT-4", "America/Guadeloupe" +} + +, { + "Beijing", "China", "GMT+8", "Asia/Shanghai" +} + +, { + "Beirut", "Lebanon", "GMT+2", "Asia/Beirut" +} + +, { + "Belgrade", "Serbia", "GMT+1", "Europe/Belgrade" +} + +, { + "Belize City", "Belize", "GMT-6", "America/Belize" +} + +, { + "Berlin", "Germany", "GMT+1", "Europe/Berlin" +} + +, { + "Bern", "Switzerland", "GMT+1", "Europe/Zurich" +} + +, { + "Bishkek", "Kyrgyzstan", "GMT+6", "Asia/Bishkek" +} + +, { + "Bissau", "Guinea Bissau", "GMT+0", "Africa/Bissau" +} + +, { + "Bogota", "Colombia", "GMT-5", "America/Bogota" +} + +, { + "Bologna", "Italy", "GMT+1", "Europe/Rome" +} + +, { + "Boston", "United States of America", "GMT-5", "EST5EDT" +} + +, { + "Brasilia", "Brazil", "GMT-3", "America/Sao_Paulo" +} + +, { + "Bratislava", "Slovakia", "GMT+2", "Europe/Bratislava" +} + +, { + "Bridgetown", "Barbados", "GMT-4", "America/Barbados" +} + +, { + "Brisbane", "Australia", "GMT+10", "Australia/Brisbane" +} + +, { + "Brussels", "Belgium", "GMT+1", "Europe/Brussels" +} + +, { + "Bucharest", "Romania", "GMT+3", "Europe/Bucharest" +} + +, { + "Budapest", "Hungary", "GMT+1", "Europe/Budapest" +} + +, { + "Buenos Aires", "Argentina", "GMT-3", "America/Argentina/Buenos_Aires" +} + +, { + "Cairo", "Egypt", "GMT+2", "Africa/Cairo" +} + +, { + "Calgary", "Canada", "GMT-7", "MST7MDT" +} + +, { + "Canary Islands", "Spain", "GMT+0", "Atlantic/Canary" +} + +, { + "Canberra", "Australia", "GMT+10", "Australia/Canberra" +} + +, { + "Canton", "China", "GMT+8", "Asia/Shanghai" +} + +, { + "Cape Town", "Republic of South Africa", "GMT+2", "Africa/Johannesburg" +} + +, { + "Caracas", "Venezuela", "GMT-4:30", "America/Caracas" +} + +, { + "Cardiff", "Wales", "GMT+0", "Europe/London" +} + +, { + "Casablanca", "Morocco", "GMT+0", "Africa/Casablanca" +} + +, { + "Catanzaro", "Italy", "GMT+1", "Europe/Rome" +} + +, { + "Cayenne", "French Guiana", "GMT-3", "America/Cayenne" +} + +, { + "Charlotte", "United States of America", "GMT-5", "EST5EDT" +} + +, { + "Charlotte Amalie", "United States Virgin Islands ", "GMT-5:30", + "America/St_Thomas" +} +, { + "Chelyabinsk", "Russia", "GMT+6", "Asia/Yekaterinburg" +} + +, { + "Chennai", "India", "GMT+5:30", "Asia/Kolkata" +} + +, { + "Chicago", "United States of America", "GMT-6", "America/Chicago" +} + +, { + "Chisinau", "Moldova", "GMT+2", "Europe/Chisinau" +} + +, { + "Chita", "Russia", "GMT+10", "Asia/Yakutsk" +} + +, { + "Cleveland", "United States of America", "GMT-5", "EST5EDT" +} + +, { + "Colombo", "Sri Lanka", "GMT+5:30", "Asia/Colombo" +} + +, { + "Columbus", "United States of America", "GMT-5", "EST5EDT" +} + +, { + "Conakry", "Guinea", "GMT+1", "Africa/Conakry" +} + +, { + "Copenhagen", "Denmark", "GMT+1", "Europe/Copenhagen" +} + +, { + "Cork", "Ireland", "GMT+0", "Europe/Dublin" +} + +, { + "Crotone", "Italy", "GMT+1", "Europe/Rome" +} + +, { + "Dakar", "Senegal", "GMT+0", "Africa/Dakar" +} + +, { + "Dallas", "United States of America", "GMT-6", "CST6CDT" +} + +, { + "Damascus", "Syria", "GMT+2", "Asia/Damascus" +} + +, { + "Dar es Salaam", "Tanzania", "GMT+3", "Africa/Dar_es_Salaam" +} + +, { + "Darwin", "Australia", "GMT+9:30", "Australia/Darwin" +} + +, { + "Delhi", "India", "GMT+5:30", "Asia/Kolkata" +} + +, { + "Denpasar", "Indonesia", "GMT+8", "Asia/Makassar" +} + +, { + "Denver", "United States of America", "GMT-7", "America/Denver" +} + +, { + "Detroit", "United States of America", "GMT-5", "America/Detroit" +} + +, { + "Dhaka", "Bangladesh", "GMT+6", "Asia/Dhaka" +} + +, { + "Diego Garcia", "United Kingdom", "GMT+5", "Indian/Chagos" /* not in zone.tab */ +} + +, { + "Djibouti", "Djibouti", "GMT+3", "Africa/Djibouti" +} + +, { + "Doha", "Qatar", "GMT+3", "Asia/Qatar" +} + +, { + "Douala", "Cameroon", "GMT+1", "Africa/Douala" +} + +, { + "Dubai", "United Arab Emirates", "GMT+4", "Asia/Dubai" +} + +, { + "Dublin", "Ireland", "GMT+0", "Europe/Dublin" +} + +, { + "Dushanbe", "Tajikistan", "GMT+5", "Asia/Dushanbe" +} + +, { + "Easter Island", "Chile", "GMT-6", "Pacific/Easter" +} + +, { + "Edinburgh", "Scotland", "GMT+0", "Europe/London" +} + +, { + "El Paso", "United States of America", "GMT-7", "MST7MDT" +} + +, { + "Florence", "Italy", "GMT+1", "Europe/Rome" +} + +, { + "Fort-de-France", "Martinique", "GMT-4", "America/Martinique" +} + +, { + "Freetown", "Sierra Leone", "GMT+0", "Africa/Freetown" +} + +, { + "Gaborone", "Botswana", "GMT+2", "Africa/Gaborone" +} + +, { + "Galapagos Islands", "Ecuador", "GMT-7", "Pacific/Galapagos" +} + +, { + "Geneva", "Switzerland", "GMT+1", "Europe/Paris" +} + +, { + "Genoa", "Italy", "GMT+1", "Europe/Rome" +} + +, { + "Georgetown", "Guyana", "GMT-4", "America/Guyana" +} + +, { + "Grytviken", "South Georgia", "GMT-2", "Atlantic/South_Georgia" +} + +, { + "Guam", "United States of America", "GMT+10", "Pacific/Guam" +} + +, { + "Guatemala City", "Guatemala", "GMT-6", "America/Guatemala" +} + +, { + "Gustavia", "Saint Barthelemy", "GMT-4", "America/Antigua" +} + +, { + "Halifax", "Canada", "GMT-4", "America/Halifax" +} + +, { + "Hamburg", "Germany", "GMT+1", "Europe/Berlin" +} + +, { + "Hanoi", "Vietnam", "GMT+7", "Asia/Ho_Chi_Minh" +} + +, { + "Harare", "Zimbabwe", "GMT+2", "Africa/Harare" +} + +, { + "Havana", "Cuba", "GMT-5", "America/Havana" +} + +, { + "Hawaii", "United States of America", "GMT-10", "Pacific/Honolulu" +} + +, { + "Helsinki", "Finland", "GMT+2", "Europe/Helsinki" +} + +, { + "Hobart", "Australia", "GMT+10", "Australia/Hobart" +} + +, { + "Hong Kong", "China", "GMT+8", "Asia/Hong_Kong" +} + +, { + "Honolulu", "United States of America", "GMT-10", "Pacific/Honolulu" +} + +, { + "Houston", "United States of America", "GMT-6", "CST6CDT" +} + +, { + "Hovd", "Mongolia", "GMT+8", "Asia/Hovd" +} + +, { + "Indianapolis", "United States of America", "GMT-5", + "America/Indiana/Indianapolis" +} +, { + "Irkutsk", "Russia", "GMT+9", "Asia/Irkutsk" +} + +, { + "Islamabad", "Pakistan", "GMT+5", "Asia/Karachi" +} + +, { + "Istanbul", "Turkey", "GMT+2", "Europe/Istanbul" +} + +, { + "Izhevsk", "Russia", "GMT+4", "Europe/Moscow" +} + +, { + "Jakarta", "Indonesia", "GMT+7", "Asia/Jakarta" +} + +, { + "Jeddah", "Saudi Arabia", "GMT+3", "Asia/Riyadh" +} + +, { + "Jerusalem", "Israel", "GMT+2", "Asia/Jerusalem" +} + +, { + "Johannesburg", "South Africa", "GMT+2", "Africa/Johannesburg" +} + +, { + "Kabul", "Afghanistan", "GMT+4:30", "Asia/Kabul" +} + +, { + "Kaliningrad", "Russia", "GMT+3", "Europe/Kaliningrad" +} + +, { + "Kamchatka", "Russia", "GMT+12", "Asia/Kamchatka" +} + +, { + "Kampala", "Uganda", "GMT+3", "Africa/Kampala" +} + +, { + "Karachi", "Pakistan", "GMT+5", "Asia/Karachi" +} + +, { + "Kathmandu", "Nepal", "GMT+5:45", "Asia/Kathmandu" +} + +, { + "Khabarovsk", "Russia", "GMT+11", "Asia/Vladivostok" +} + +, { + "Kharkiv", "Ukraine", "GMT+2", "Europe/Kiev" +} + +, { + "Khartoum", "Sudan", "GMT+3", "Africa/Khartoum" +} + +, { + "Kiev", "Ukraine", "GMT+2", "Europe/Kiev" +} + +, { + "Kingston", "Canada", "GMT-5", "America/Toronto" +} + +, /* not in zone.tab */ +{ + "Kingston", "Jamaica", "GMT-5", "America/Jamaica" +} + +, { + "Kinshasa", "Democratic Republic of the Congo", "GMT+1", "Africa/Kinshasa" +} + +, { + "Kolkata", "India", "GMT+5:30", "Asia/Kolkata" +} + +, { + "Krasnoyarsk", "Russia", "GMT+8", "Asia/Krasnoyarsk" +} + +, { + "Kuala Lumpur", "Malaysia", "GMT+8", "Asia/Kuala_Lumpur" +} + +, { + "Kuwait", "Kuwait", "GMT+3", "Asia/Kuwait" +} + +, { + "Kyiv", "Ukraine", "GMT+2", "Europe/Kiev" /* not in zone.tab */ +} + +, { + "Los Angeles", "United States of America", "GMT-7", "America/Los_Angeles" +} + +, { + "La Paz", "Bolivia", "GMT-4", "America/La_Paz" +} + +, { + "Lagos", "Nigeria", "GMT+1", "Africa/Lagos" +} + +, { + "Las Vegas", "United States of America", "GMT-8", "PST8PDT" +} + +, { + "Lima", "Peru", "GMT-5", "America/Lima" +} + +, { + "Lisbon", "Portugal", "GMT+0", "Europe/Lisbon" +} + +, { + "Ljubljana", "Slovakia", "GMT+1", "Europe/Ljubljana" +} + +, { + "London", "United Kingdom", "GMT+0", "Europe/London" +} + +, { + "Atlanta", "United States of America", "GMT-5", "America/Georgia/Atlanta" +} + +, { + "Louisville", "United States of America", "GMT-5", "America/Kentucky/Louisville" +} + +, { + "Luanda", "Angola", "GMT+1", "Africa/Luanda" +} + +, { + "Lubumbashi", "Democratic Republic of the Congo", "GMT+2", "Africa/Lubumbashi" +} + +, { + "Lusaka", "Zambia", "GMT+2", "Africa/Lusaka" +} + +, { + "Luxembourg", "Luxembourg", "GMT+1", "Europe/Luxembourg" +} + +, { + "Lviv", "Ukraine", "GMT+2", "Europe/Kiev" +} + +, { + "Macau", "China", "GMT+8", "Asia/Macau" +} + +, { + "Madrid", "Spain", "GMT+2", "Europe/Madrid" +} + +, { + "Magadan", "Russia", "GMT+12", "Asia/Magadan" +} + +, { + "Malabo", "Equaorial Guinea", "GMT+1", "Africa/Malabo" +} + +, { + "Male", "Maldives", "GMT+5", "Indian/Maldives" +} + +, { + "Managua", "Nicaragua", "GMT-6", "America/Managua" +} + +, { + "Manama", "Bahrain", "GMT+3", "Asia/Bahrain" +} + +, { + "Manila", "Philippines", "GMT+8", "Asia/Manila" +} + +, { + "Maputo", "Mozambique", "GMT+2", "Africa/Maputo" +} + +, { + "Marigot", "Saint Martin", "GMT-4", "America/Marigot" +} + +, { + "Mazatlan", "Mexico", "GMT-7", "America/Mazatlan" +} + +, { + "Mecca", "Saudi Arabia", "GMT+3", "Asia/Riyadh" +} + +, { + "Melbourne", "Australia", "GMT+10", "Australia/Melbourne" +} + +, { + "Memphis", "United States of America", "GMT-6", "CST6CDT" +} + +, { + "Messina", "Italy", "GMT+1", "Europe/Rome" +} + +, { + "Mexico City", "Mexico", "GMT-6", "America/Mexico_City" +} + +, { + "Miami", "United States of America", "GMT-5", "EST5EDT" +} + +, { + "Mid-Atlantic", "United States of America", "GMT-2", "America/New_York" /* not in zone.tab */ +} + +, { + "Midway Atoll", "United States of America", "GMT-11", "Pacific/Midway" +} + +, { + "Milan", "Italy", "GMT+1", "Europe/Rome" +} + +, { + "Milwaukee", "United States of America", "GMT-6", "CST6CDT" +} + +, { + "Minsk", "Belarus", "GMT+2", "Europe/Minsk" +} + +, { + "Mogadishu", "Somalia", "GMT+2", "Africa/Mogadishu" +} + +, { + "Monrovia", "Liberia", "GMT+0", "Africa/Monrovia" +} + +, { + "Montevideo", "Uruguay", "GMT-3", "America/Montevideo" +} + +, { + "Montreal", "Canada", "GMT-5", "America/Montreal" +} + +, { + "Moscow", "Russia", "GMT+4", "Europe/Moscow" +} + +, { + "Mumbai", "India", "GMT+5:30", "Asia/Kolkata" +} + +, { + "Munich", "Germany", "GMT+1", "Europe/Berlin" +} + +, { + "Muscat", "Oman", "GMT+4", "Asia/Muscat" +} + +, { + "Nairobi", "Kenya", "GMT+3", "Africa/Nairobi" +} + +, { + "Naples", "Italy", "GMT+1", "Europe/Rome" +} + +, { + "Naters", "Switzerland", "GMT+1", "Europe/Zurich" +} + +, { + "Ndjamena", "Chad", "GMT+1", "Africa/Ndjamena" +} + +, { + "New Delhi", "India", "GMT+5:30", "Asia/Kolkata" /* not in zone.tab */ +} + +, { + "New York", "United States of America", "GMT-4", "America/New_York" +} + +, { + "Newfoundland", "Canada", "GMT-3:30", "America/St_Johns" +} + +, { + "Niamey", "Niger", "GMT+1", "Africa/Niamey" +} + +, { + "Nouakchott", "Mauritania", "GMT+1", "Africa/Nouakchott" +} + +, { + "Noumea", "New Caledonia", "GMT+11", "Pacific/Noumea" +} + +, { + "Novokuznetsk", "Russia", "GMT+7", "Asia/Novokuznetsk" +} + +, /* not clear */ +{ + "Novosibirsk", "Russia", "GMT+7", "Asia/Novosibirsk" +} + +, { + "Nuku'alofa", "Tonga", "GMT+13", "Pacific/Tongatapu" +} + +, { + "Nuuk", "Greenland", "GMT-3", "America/Godthab" +} + +, { + "Omsk", "Russia", "GMT+7", "Asia/Omsk" +} + +, { + "Osaka", "Japan", "GMT+9", "Asia/Tokyo" +} + +, { + "Ottawa", "Canada", "GMT-5", "EST5EDT" +} + +, { + "Ouagadougou", "Burkina Faso", "GMT+0", "Africa/Ouagadougou" +} + +, { + "Pago Pago", "Independent State of Samoa", "GMT-11", "Pacific/Pago_Pago" +} + +, { + "Palermo", "Italy", "GMT+1", "Europe/Rome" +} + +, { + "Panama City", "Panama", "GMT-6", "America/Panama" +} + +, { + "Paramaribo", "Surinam", "GMT-3", "America/Paramaribo" +} + +, { + "Paris", "France", "GMT+1", "Europe/Paris" +} + +, { + "Perm", "Russia", "GMT+6", "Asia/Yekaterinburg" +} + +, { + "Perth", "Australia", "GMT+8", "Australia/Perth" +} + +, { + "Petropavlovsk-Kamchatskiy", "Russia", "GMT+12", "Asia/Kamchatka" +} + +, { + "Philadelphia", "United States of America", "GMT-5", "EST5EDT" +} + +, { + "Phnom Penh ", "Cambodia", "GMT-5", "Asia/Phnom_Penh" +} + +, { + "Phoenix", "United States of America", "GMT-7", "America/Phoenix" +} + +, { + "Podgorica", "Montenegro", "GMT+1", "Europe/Podgorica" +} + +, { + "Ponta Delgada", "Portugal", "GMT-1", "Atlantic/Azores" +} + +, { + "Port Louis", "Mauritius", "GMT+4", "Indian/Mauritius" +} + +, { + "Port-au-Prince", "Haiti", "GMT-5", "America/Port-au-Prince" +} + +, { + "Portland", "United States of America", "GMT-8", "PST8PDT" +} + +, { + "Prague", "Czech Republic", "GMT+1", "Europe/Prague" +} + +, { + "Pyongyang", "North Korea", "GMT+9", "Asia/Pyongyang" +} + +, { + "Quito", "Ecuador", "GMT-5", "America/Guayaquil" +} + +, { + "Rabat", "Morocco", "GMT+0", "Africa/Casablanca" +} + +, { + "Rangoon", "Burma", "GMT+6:30", "Asia/Rangoon" +} + +, { + "Recife", "Brazil", "GMT-3", "America/Recife" +} + +, { + "Regina", "Canada", "GMT-6", "America/Regina" +} + +, { + "Reykjavik", "Iceland", "GMT+0", "Atlantic/Reykjavik" +} + +, { + "Riga", "Latvia", "GMT+2", "Europe/Riga" +} + +, { + "Rio de Janeiro", "Brazil", "GMT-2", "America/Sao_Paulo" +} + +, { + "Riyadh", "Saudi Arabia", "GMT+3", "Asia/Riyadh" +} + +, { + "Rome", "Italy", "GMT+1", "Europe/Rome" +} + +, { + "Saint-Denis", "Reunion Island", "GMT+4", "Indian/Reunion" +} + +, { + "Samara", "Russia", "GMT+4", "Europe/Samara" +} + +, /* not clear */ +{ + "San Antonio", "United States of America", "GMT-6", "CST6CDT" +} + +, { + "San Diego", "United States of America", "GMT-8", "PST8PDT" +} + +, { + "San Francisco", "United States of America", "GMT-8", "America/Los_Angeles" +} + +, { + "San Jose", "United States of America", "GMT-8", "PST8PDT" +} + +, { + "San Jose", "Costa Rica", "GMT-6", "America/Costa_Rica" +} + +, { + "San Juan", "Puerto Rico", "GMT-4", "America/Puerto_Rico" +} + +, { + "San Marino", "Italy", "GMT+1", "Europe/San_Marino" +} + +, { + "San Salvador", "El Salvador", "GMT-6", "America/El_Salvador" +} + +, { + "Sanaa", "Yemen", "GMT+3", "Asia/Aden" /* not in zone.tab */ +} + +, { + "Santiago", "Chile", "GMT-4", "America/Santiago" +} + +, { + "Santo Domingo", "Dominican Republic", "GMT-4", "America/Santo_Domingo" +} + +, { + "Sao Paulo", "Brazil", "GMT-2", "America/Sao_Paulo" +} + +, { + "Seattle", "United States of America", "GMT-8", "PST8PDT" +} + +, { + "Seoul", "Republic of Korea", "GMT+9", "Asia/Seoul" +} + +, { + "Shanghai", "China", "GMT+8", "Asia/Shanghai" +} + +, { + "Shenzhen", "China", "GMT+8", "Asia/Shanghai" +} + +, { + "Singapore", "Republic of Singapore", "GMT+8", "Asia/Singapore" +} + +, { + "Skopje", "Macedonia", "GMT+1", "Europe/Skopje" +} + +, { + "Sofia ", "Bulgaria", "GMT+3", "Europe/Sofia" +} + +, { + "St. John's", "Antigua and Barbuda", "GMT-4", "America/Antigua" +} + +, { + "St. John's", "Canada", "GMT-3:30", "America/St_Johns" +} + +, { + "St. Petersburg", "Russia", "GMT+4", "Europe/Moscow" +} + +, { + "Stockholm", "Sweden", "GMT+2", "Europe/Stockholm" +} + +, { + "Suva", "Fiji", "GMT+12", "Pacific/Fiji" +} + +, { + "Sydney", "Australia", "GMT+11", "Australia/Sydney" +} + +, { + "Tahiti", "French Polynesia", "GMT-10", "Pacific/Tahiti" +} + +, { + "Taipei", "Taiwan", "GMT+8", "Asia/Taipei" +} + +, { + "Tallinn", "Estonia", "GMT+2", "Europe/Tallinn" +} + +, { + "Tarawa", "Kiribati", "GMT+12", "Pacific/Tarawa" +} + +, { + "Tashkent", "Uzbekistan", "GMT+5", "Asia/Tashkent" +} + +, { + "Tbilisi", "Georgia", "GMT+4", "Asia/Tbilisi" +} + +, { + "Tegucigalpa", "Honduras", "GMT-6", "America/Tegucigalpa" +} + +, { + "Tehran", "Iran", "GMT+3:30", "Asia/Tehran" +} + +, { + "Thanh Pho Ho Chi Minh", "Vietnam", "GMT+7", "Asia/Ho_Chi_Minh" +} + +, { + "The Settlement", "British Virgin Islands ", "GMT-4", "America/Tortola" +} + +, { + "Tientsin", "China", "GMT+8", "Asia/Shanghai" /* not in zone.tab */ +} + +, { + "Tijuana", "Mexico", "GMT-5", "America/Tijuana" +} + +, { + "Tokyo", "Japan", "GMT+9", "Asia/Tokyo" +} + +, { + "Toronto", "Canada", "GMT-4", "America/Toronto" +} + +, { + "Trehet", "France", "GMT+1", "Europe/Paris" /* not in zone.tab */ +} + +, { + "Tripoli", "Libya", "GMT+2", "Africa/Tripoli" +} + +, { + "Tunis", "Tunisia", "GMT+2", "Africa/Tunis" +} + +, { + "Turin", "Italy", "GMT+1", "Europe/Rome" +} + +, { + "Ufa", "Bashkiriya", "GMT+5", "Asia/Yekaterinburg" +} + +, { + "Ulan Bator", "Mongolia", "GMT+8", "Asia/Ulan_Bator" +} + +, { + "Vaduz", "Liechtenstein", "GMT+1", "Europe/Vaduz" +} + +, { + "Valletta", "Malta", "GMT+1", "Europe/Malta" +} + +, { + "Vancouver", "Canada", "GMT-8", "America/Vancouver" +} + +, { + "Verona", "Italy", "GMT+1", "Europe/Rome" +} + +, { + "Victoria", "Seychelles", "GMT+4", "Australia/Melbourne" +} + +, { + "Vienna", "Austria", "GMT+1", "Europe/Vienna" +} + +, { + "Vilnius", "Lithuania", "GMT+3", "Europe/Vilnius" +} + +, { + "Vladivostok", "Russia", "GMT+11", "Asia/Vladivostok" +} + +, { + "Volgograd", "Russia", "GMT+4", "Europe/Volgograd" +} + +, /* not clear */ +{ + "Warsaw", "Poland", "GMT+2", "Europe/Warsaw" +} + +, { + "Washington, D.C.", "United States of America", "GMT-5", "EST5EDT" +} + +, { + "Wellington", "New Zealand", "GMT+12", "Pacific/Auckland" +} + +, { + "Winnipeg", "Canada", "GMT-5", "America/Winnipeg" +} + +, { + "Yakutsk", "Russia", "GMT+10", "Asia/Yakutsk" +} + +, { + "Yamoussoukro", "Ivory Coast", "GMT+0", "Africa/Abidjan" +} + +, { + "Yaounde", "Cameroon", "GMT+1", "Africa/Douala" /* not in zone.tab */ +} + +, { + "Yekaterinburg", "Russia", "GMT+6", "Asia/Yekaterinburg" +} + +, { + "Yerevan", "Armenia", "GMT+5", "Asia/Yerevan" +} + +, { + "Yuzhno-Sakhalinsk", "Russia", "GMT+11", "Asia/Sakhalin" +} + +, { + "Zagreb", "Croatia", "GMT+1", "Europe/Zagreb" +} + +, { + "Zurich", "Switzerland", "GMT+1", "Europe/Zurich" +} + +, { + "Hyderabad", "India", "GMT+5:30", "Asia/Andhra/Hyderabad" +} + +, { + "Bangalore", "India", "GMT+5:30", "Asia/Karnataka/Bangalore" +} + +, { + NULL, NULL, NULL, NULL +} + +, diff --git a/inc/worldclock_types.h b/inc/worldclock_types.h new file mode 100644 index 0000000..92fd916 --- /dev/null +++ b/inc/worldclock_types.h @@ -0,0 +1,88 @@ +/* + * Copyright 2016 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __DEF_WORLDCLOCK_TYPES_H__ +#define __DEF_WORLDCLOCK_TYPES_H__ + +#include <Elementary.h> +#include "worldclock_const.h" + +typedef void (*Wcl_Return_Cb) (void *, Eina_Bool); + +typedef enum { + WCL_CALLER_IS_APP_IT_SELF = 0, + WCL_CALLER_IS_SHARED_LIBRARY, + WCL_CALLER_IS_UI_GADGET, + WCL_CALLER_IS_LIVEBOX, + WCL_CALLER_IS_UNKNOW, +} Wcl_Caller; + +#ifdef FEATURE_SORT_ORDER +typedef enum { + WCL_SORT_BY_NAME = 1, + WCL_SORT_BY_TIMEZONE, + + WCL_UNKNOW_SORT_TYPE, +} Wcl_Addlist_Sort_Type; +#endif + +typedef enum { + WCL_SELECT_IN_UNSELECTED = 0, + WCL_SELECT_IN_ALL, + WCL_SELECT_IF_HAS_TZPATH, + + WCL_SELECTION_UNKNOW_FLAG, +} Wcl_Selection_Flag; + +typedef enum { + WCL_SEARCH_BY_ALL_KEYWORDS = 0, + WCL_SEARCH_BY_CITY_NAME, + WCL_SEARCH_BY_COUNTRY_NAME, + WCL_SEARCH_BY_TIMEZONE, + + WCL_UNKNOWN_SEARCH_TYPE, +} Wcl_Search_Type; + +typedef enum { + WCL_DST_OFF = -1, + WCL_DST_AUTO = 0, + WCL_DST_1_HOUR, + WCL_DST_2_HOURS, + + WCL_DST_TYPES_COUNT, + + WCL_DST_UNKNOWN_TYPE, +} Wcl_DST_Type; + +typedef struct _cs { /* city set */ + int index; /* record index in db */ + char city[CITY_BUF_SIZE]; /* city name */ + char country[COUNTRY_BUF_SIZE]; /* country name */ + char timezone[TIMEZONE_BUF_SIZE]; /* timezone */ + int dst_type; /* dst type */ + int dst_enabled; /* dst disable flag */ + int selected; /* selected or not */ + int sequence; /* sequence number in mainlist */ + char tz_path[TZPATH_BUF_SIZE]; /* TZ path of city */ + + int dst; /* dst value */ + volatile time_t now_time; /* the current time of city */ + + char flag[COUNTRY_BUF_SIZE]; /* flag image name */ + char mcc[MCC_BUF_SIZE]; +} Wcl_CitySet; + +#endif // __DEF_WORLDCLOCK_TYPES_H__ diff --git a/inc/worldclock_util.h b/inc/worldclock_util.h new file mode 100644 index 0000000..40f3dac --- /dev/null +++ b/inc/worldclock_util.h @@ -0,0 +1,90 @@ +/* + * Copyright 2016 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __DEF_WORLDCLOCK_UTIL_H_ +#define __DEF_WORLDCLOCK_UTIL_H_ + +#include <Elementary.h> +#include <unicode/umachine.h> +#include "worldclock.h" + +/** + * Compare the city name of two cities + * + * @param[in] data1 record data of city1 + * @param[in] data2 record data of city2 + * + * @return -1 if city name of city2 is bigger than city1's + * 1 if city name of city1 is bigger than city2's + * 0 if city name of city2 is equal to city1, or meet error + */ +int worldclock_city_compare_cb(const void *data1, const void *data2); + +/** + * Compare timezone of two cities + * + * @param[in] data1 recorder of city1 + * @param[in] data2 recorder of city2 + * + * @return -1 if timezone of city2 is bigger than city1's + * 1 if timezone of city1 is bigger than city2's + * 0 if timezone of city2 is equal to city1, or meet error + */ +int worldclock_time_compare_cb(const void *data1, const void *data2); + +/** + * Remove all items in eina_list + * + * @param[in] glist given eina list + * @param[in] is_free_element flag to define if free data in every item is needed + * + * @return EINA_TRUE if remove successfully + */ +Eina_Bool worldclock_util_glist_remove_all(Eina_List * glist, Eina_Bool is_free_element); +#if 0 +/** + * Creat new popup window, and show it + * + * @param[in] parent Parent for such popup + * @param[in] data Data used in this function + * @param[in] info String displayed on popup + * + * @return + */ +void worldclock_show_popup(Evas_Object * parent, Evas_Object ** p_popup, char *info); +#endif + +/** + * Create layout by load edj according group name from edj file + * + * @param[in] parent Parent of new layout + * @param[in] file EDJE file + * @param[in] group name of group + * + * @return NULL if meet error + * Pointer to new layout + */ +Evas_Object *worldclock_load_edj(Evas_Object * parent, const char *file, + const char *group); + +int worldclock_dst_get(const Wcl_CitySet * cs); + +const char *worldclock_get_egje_path(); +const char *worldclock_get_locale_path(); + +void worldclock_path_util_free(); + +#endif /* __DEF_WORLDCLOCK_UTIL_H_ */ |