3 * Copyright 2012 Samsung Electronics Co., Ltd
5 * Licensed under the Flora License, Version 1.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://floralicense.org/license/
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
19 #include "lang-manager.h"
22 cal_lang_manager_callback callback;
24 } __cal_lang_manager_callback_data;
26 static Eina_List *__cal_lang_manager_callback_list;
28 void cal_lang_manager_apply()
32 if (!__cal_lang_manager_callback_list || !eina_list_count(__cal_lang_manager_callback_list))
35 Eina_List *cursor = NULL;
36 __cal_lang_manager_callback_data *data = NULL;
38 EINA_LIST_FOREACH(__cal_lang_manager_callback_list, cursor, data) {
39 if (data && data->callback)
40 data->callback(data->callback_data);
44 void cal_lang_manager_remove_all_callback()
48 if (!__cal_lang_manager_callback_list || !eina_list_count(__cal_lang_manager_callback_list))
51 Eina_List *cursor = NULL;
52 __cal_lang_manager_callback_data *data = NULL;
54 EINA_LIST_FOREACH(__cal_lang_manager_callback_list, cursor, data) {
56 __cal_lang_manager_callback_list = eina_list_remove(__cal_lang_manager_callback_list, data);
64 void cal_lang_manager_add_callback(cal_lang_manager_callback callback, void *callback_data)
70 __cal_lang_manager_callback_data *data = NULL;
72 data = calloc(1, sizeof(__cal_lang_manager_callback_data));
74 data->callback = callback;
75 data->callback_data = callback_data;
77 __cal_lang_manager_callback_list = eina_list_append(__cal_lang_manager_callback_list, data);
78 c_warn_if(!__cal_lang_manager_callback_list, "eina_list_append() is failed.");
81 void cal_lang_manager_remove_callback(cal_lang_manager_callback callback, void *callback_data)
85 if (!__cal_lang_manager_callback_list || !eina_list_count(__cal_lang_manager_callback_list))
88 Eina_List *cursor = NULL;
89 __cal_lang_manager_callback_data *data = NULL;
91 EINA_LIST_FOREACH(__cal_lang_manager_callback_list, cursor, data) {
92 if (data && data->callback == callback && data->callback_data == callback_data) {
94 __cal_lang_manager_callback_list = eina_list_remove(__cal_lang_manager_callback_list, data);