/*
* setting
- * Copyright (c) 2012 Samsung Electronics Co., Ltd.
*
- * Licensed under the Flora License, Version 1.1 (the License);
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Contact: MyoungJune Park <mj2004.park@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (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/
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
+ * 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.
+ *
*/
#include <setting-common-draw-widget.h>
#include <glib.h>
#include <utilX.h>
#include <Ecore_X.h>
+#include <efl_assist.h>
+#include <notification.h>
+#include <notification_internal.h>
+
+#define SUPPORT_BACK_KEY_GRAB 1
+static void __ignore_back_key_cb(void *data, Evas_Object *obj, void *event_info);
+
+EXPORT_PUBLIC void popup_handle_hardkey(void *data, Evas_Object *popup)
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(!popup);
+ evas_object_hide(popup);
+ double timeout = elm_popup_timeout_get(popup);
+ if (timeout > 0)
+ {
+ evas_object_smart_callback_call(popup, "timeout", data);
+ }
+ else
+ {
+ char *btn_part_str[3] = {
+ _("button1"), _("button2"), _("button3")
+ };
+ int i = 0;
+ Evas_Object *btn = NULL;
+ Evas_Object *first_btn = NULL;
+ for (; i < 3; i++) {
+ btn = elm_object_part_content_get(popup, btn_part_str[i]);
+ if (btn)
+ {
+ first_btn = btn;
+ break;
+ }
+ }
+
+ if (!first_btn)
+ {
+ evas_object_smart_callback_call(popup, "block,clicked", data);
+ }
+ else
+ {
+ const char *btn_str = elm_object_text_get(first_btn);
+ if(0 == safeStrCmp(btn_str, _("IDS_ST_BUTTON_ONLY_VIBRATE"))
+ || 0 == safeStrCmp(btn_str, _("IDS_COM_SK_OK")))
+ {
+ // 1. special process for "Vibration" button
+ // 2. Assistive light popup has only one button, OK. In this case, do not call smart callback.
+ evas_object_del(popup);
+ }
+ else
+ {
+ evas_object_smart_callback_call(first_btn, "clicked", data);
+ }
+ }
+ }
+}
+
+
+static void __hardkey_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ Evas_Event_Mouse_Up *ev = event_info;
+ if (ev->button == 3) // if mouse right button is up
+ {
+ //evas_object_hide(obj); // you can call evas_object_del(obj); to remove popup if you want
+ popup_handle_hardkey(data, obj);
+ }
+}
+static void __hardkey_keyup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ Evas_Event_Key_Down *ev = event_info;
+ if (!strcmp(ev->keyname, KEY_BACK))
+ {
+ //evas_object_hide(obj); // you can call evas_object_del(obj); to remove popup if you want
+ popup_handle_hardkey(data, obj);
+ }
+}
+
+EXPORT_PUBLIC void ea_popup_back_cb_2(void *data, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ popup_handle_hardkey(data, obj);
+ return;
+}
+
+
+static void __popup_del_cb2(void *data, Evas *e, Evas_Object *obj, void *event_info)
+
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(!obj);
+#if SUPPORT_BACK_KEY_GRAB
+ //ungrab the "back key"
+ Ecore_X_Display *disp = ecore_x_display_get();
+ Ecore_X_Window xwin = elm_win_xwindow_get(obj);
+ int ret = utilx_ungrab_key(disp, xwin, KEY_BACK);
+ if (ret) {
+ SETTING_TRACE_ERROR("KEY_BACK ungrab error ret[%d]", ret);
+ }
+#endif
+ evas_object_event_callback_del(obj, EVAS_CALLBACK_KEY_UP, __hardkey_keyup_cb);
+ evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_UP, __hardkey_mouseup_cb);
+}
+
+EXPORT_PUBLIC void setting_popup_lang_update(Evas_Object *popup)
+{
+ SETTING_TRACE_BEGIN;
+ setting_retm_if(NULL == popup, "data is NULL");
+ char *title = evas_object_data_get(popup, "title");
+ char *text1 = evas_object_data_get(popup, "text");
+ char *text0 = evas_object_data_get(popup, "text0");
+ //SETTING_TRACE("title:%s", title);
+ //SETTING_TRACE("text1:%s", text1);
+ //SETTING_TRACE("text0:%s", text0);
+
+ char text[MAX_COMMON_BUFFER_LEN + 1]={0,};
+ if (text0)
+ {
+ snprintf(text, MAX_COMMON_BUFFER_LEN, "%s<br>%s", _(text0), _(text1));
+ }
+ else
+ {
+ snprintf(text, MAX_COMMON_BUFFER_LEN, "%s", text1);
+ }
+ //char *eo_view_t = evas_object_type_get(popup);
+ if (title)
+ elm_object_part_text_set(popup, "title,text", _(title));
+
+ Evas_Object *layout = elm_object_content_get(popup);
+ if (layout)
+ {
+ Evas_Object *eo_view = elm_object_part_content_get(layout, "elm.swallow.content");
+ if (eo_view)
+ {
+ const char *eo_view_t = evas_object_type_get(eo_view);
+ //SETTING_TRACE("eo_view_t:%s", eo_view_t);
+ if (!safeStrCmp("elm_gengrid", eo_view_t))
+ elm_gengrid_realized_items_update(eo_view);
+ else if(!safeStrCmp("elm_genlist", eo_view_t))
+ elm_genlist_realized_items_update(eo_view);
+ else if(!safeStrCmp("elm_label", eo_view_t))
+ if (!isEmptyStr(text)) elm_object_text_set(eo_view, _(text));
+
+ }
+
+ eo_view = elm_object_part_content_get(layout, "elm.swallow.end");
+ if (eo_view)
+ {
+ const char *eo_view_t = evas_object_type_get(eo_view);
+ //SETTING_TRACE("eo_view_t:%s", eo_view_t);
+ if(!safeStrCmp("elm_check", eo_view_t))
+ {
+
+ char *check_str = evas_object_data_get(popup, "check_str");
+ //SETTING_TRACE("check_str:%s", check_str);
+ if (check_str) elm_object_text_set(eo_view, _(check_str));
+ }
+ }
+ }
+ else
+ {
+ //SETTING_TRACE("text:%s", text);
+ if (!isEmptyStr(text))
+ elm_object_text_set(popup, _(text));
+ }
+
+ char *btn_part_str[3] = {
+ _("button1"), _("button2"), _("button3")
+ };
+ int i = 0;
+ Evas_Object *btn = NULL;
+
+ //SETTING_TRACE("button1...:%s", evas_object_data_get(popup, "button1"));
+ //SETTING_TRACE("button2...:%s", evas_object_data_get(popup, "button2"));
+ //SETTING_TRACE("button3...:%s", evas_object_data_get(popup, "button3"));
+
+ for (; i < 3; i++) {
+ btn = elm_object_part_content_get(popup, btn_part_str[i]);
+ //SETTING_TRACE("btn:%p", btn);
+ if (btn)
+ {
+ //first_btn = btn;
+ char *btn_str = evas_object_data_get(popup, btn_part_str[i]);
+ //SETTING_TRACE("btn_str:%s", btn_str);
+ elm_object_text_set(btn, _(btn_str));
+ }
+ }
+ SETTING_TRACE_END;
+}
+
+static void __popup_lang_change_cb(keynode_t *key, void *data)
+{
+ setting_retm_if(NULL == key, "key is NULL");
+ setting_retm_if(NULL == data, "data is NULL");
+ Evas_Object *popup = data;
+ char *vconf_name = vconf_keynode_get_name(key);
+ if (!safeStrCmp(vconf_name, VCONFKEY_LANGSET))
+ {
+ setting_popup_lang_update(popup);
+ }
+}
+
+static void __popup_del_cb3(void *data, Evas *e, Evas_Object *obj, void *event_info)
+
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(!obj);
+ (void)vconf_ignore_key_changed(VCONFKEY_LANGSET, __popup_lang_change_cb);
+ evas_object_data_set(obj, "title", NULL);
+ evas_object_data_set(obj, "text0", NULL);
+ evas_object_data_set(obj, "text", NULL);
+ evas_object_data_set(obj, "button1", NULL);
+ evas_object_data_set(obj, "button2", NULL);
+ evas_object_data_set(obj, "button3", NULL);
+ evas_object_data_set(obj, "check_str", NULL);
+}
+
+
+#define ADD_POPUP_MULTI_LANGUAGE_AUTO_UPDATE(popup, title, text, button1_str, button2_str,button3_str) \
+{\
+ evas_object_data_set(popup, "title", title);\
+ evas_object_data_set(popup, "text", text);\
+ evas_object_data_set(popup, "button1", button1_str);\
+ evas_object_data_set(popup, "button2", button2_str);\
+ evas_object_data_set(popup, "button3", button3_str);\
+ vconf_notify_key_changed(VCONFKEY_LANGSET, __popup_lang_change_cb, popup);\
+ evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, __popup_del_cb3, NULL);\
+}
+
+EXPORT_PUBLIC void setting_add_hardkey_features(Evas_Object *popup, void *data)
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(!popup);
+
+ int value = 0;
+ vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &value);
+ if (value) {
+ return;
+ }
+
+#if SUPPORT_BACK_KEY_GRAB
+ Ecore_X_Display *disp = ecore_x_display_get();
+ Ecore_X_Window xwin = elm_win_xwindow_get(popup);
+ int ret = utilx_grab_key(disp, xwin, KEY_BACK, TOP_POSITION_GRAB);
+ if (ret) {
+ SETTING_TRACE_ERROR("KEY_BACK grab error ret[%d]", ret);
+ }
+#endif
+ evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, __hardkey_mouseup_cb, data);
+ evas_object_event_callback_add(popup, EVAS_CALLBACK_KEY_UP, __hardkey_keyup_cb, data);
+ evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, __popup_del_cb2, NULL);
+}
static void _setting_def_response_cb(void *data, Evas_Object *obj,
void *event_info)
{
+ SETTING_TRACE_BEGIN;
+
+ SETTING_TRACE(" REMOVE THE POPUP OBJECT BY THIS FUNCTION ");
if (obj) {
evas_object_del(obj);
obj = NULL;
}
}
-void __popup_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+EXPORT_PUBLIC void __popup_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
SETTING_TRACE_BEGIN;
SETTING_TRACE_ERROR("KEY_HOME ungrab error ret[%d]", ret);
}
- ret = utilx_ungrab_key(disp, xwin, KEY_BACK);
- if (ret) {
- SETTING_TRACE_ERROR("KEY_HOME ungrab error ret[%d]", ret);
- }
}
/**
* @ set the attribution of the specialized progressbar
* @See setting_create_custom_progressbar.
*/
-static void __popup_event_set(Evas_Object *popup, void *data,
+EXPORT_PUBLIC void __popup_event_set(Evas_Object *popup, void *data,
setting_call_back_func response_cb,
int timeout,//to control the timeout time
bool blocked_flag,//to control whether to block the screen
}
}
- if (!blocked_flag) {// false --> block
+ if (!blocked_flag) {//not blocked_flag == TRUE !!!
if (response_cb) {
evas_object_smart_callback_add(popup, "block,clicked", response_cb, data);
} else {
if (ret) {
SETTING_TRACE_ERROR("KEY_HOME grab error ret[%d]", ret);
}
- ret = utilx_grab_key(disp, xwin, KEY_BACK, TOP_POSITION_GRAB);
- if (ret) {
- SETTING_TRACE_ERROR("KEY_HOME grab error ret[%d]", ret);
- }
- //evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, __popup_del_cb, NULL);
+ evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, __popup_del_cb, NULL);
+ ea_object_event_callback_add(popup, EA_CALLBACK_BACK, __ignore_back_key_cb, NULL);
}
}
+
+static void __ignore_back_key_cb(void *data, Evas_Object *obj,
+ void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ return;
+}
+
+
static Evas_Object *__add_progressbar(void *data, Evas_Object *parent,
char *progressbar_style,
char *progressbar_title,
char *progressbar_lable)
{
SETTING_TRACE_BEGIN;
+
Evas_Object *popup = elm_popup_add(parent);
- evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
+ ea_object_event_callback_add(popup, EA_CALLBACK_BACK, __ignore_back_key_cb, NULL);
+ //setting_add_hardkey_features(popup, data);
+ int value = 0;
+ vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &value);
+ if (!value) {
+#if 0
+ Ecore_X_Display *disp = ecore_x_display_get();
+ Ecore_X_Window xwin = elm_win_xwindow_get(popup);
+ int ret = utilx_grab_key(disp, xwin, KEY_BACK, TOP_POSITION_GRAB);
+ if (ret) {
+ SETTING_TRACE_ERROR("KEY_BACK grab error ret[%d]", ret);
+ }
+#endif
+ evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, __hardkey_mouseup_cb, data);
+ //evas_object_event_callback_add(popup, EVAS_CALLBACK_KEY_UP, __hardkey_keyup_cb, data);
+ evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, __popup_del_cb2, NULL);
+ }
+
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
if (progressbar_title) {
- elm_object_part_text_set(popup, "title,text", progressbar_title);
+ elm_object_part_text_set(popup, "title,text", _(progressbar_title));
}
Evas_Object *box = elm_box_add(popup);
- /* elm_box_horizontal_set(box, 1); */
-
- if (progressbar_lable) {
- Evas_Object *label = elm_label_add(popup);
- elm_object_text_set(label, progressbar_lable); /* "Loading..." */
- //elm_label_text_align_set(label, "left");
- evas_object_show(label);
- elm_box_pack_end(box, label);
- }
+ elm_box_horizontal_set(box, EINA_TRUE);
+ evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_box_align_set(box, 0.5, 0.5);
+ elm_box_padding_set(box, 16, 0);
+ // [UI] progress icon
if (progressbar_style) {
Evas_Object *progressbar = elm_progressbar_add(popup);
elm_object_style_set(progressbar, progressbar_style); /* "toolbar_process" or "pending_list" or "list_prosess" */
- elm_progressbar_pulse(progressbar, EINA_TRUE);
- evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL,
- 0.5);
- evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
+ //evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
+ //evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_progressbar_pulse(progressbar, EINA_TRUE);
evas_object_show(progressbar);
elm_box_pack_end(box, progressbar);
}
+ // [UI] text
+ if (progressbar_lable) {
+ Evas_Object *label = elm_label_add(popup);
+ elm_object_text_set(label, _(progressbar_lable)); /* "Loading..." */
+ evas_object_show(label);
+ elm_box_pack_end(box, label);
+ }
+ ADD_POPUP_MULTI_LANGUAGE_AUTO_UPDATE(popup, progressbar_title, progressbar_lable, NULL, NULL, NULL);
+ // [UI] add table
+ Evas_Object *table = elm_table_add(popup);
+ evas_object_show(table);
+ elm_table_homogeneous_set(table, EINA_FALSE);
+
+ Evas_Object *rect_up;
+ rect_up = evas_object_rectangle_add(evas_object_evas_get(popup));
+ evas_object_size_hint_min_set(rect_up, ELM_SCALE_SIZE(100), ELM_SCALE_SIZE(20));
+
+ Evas_Object *rect_down;
+ rect_down = evas_object_rectangle_add(evas_object_evas_get(popup));
+ evas_object_size_hint_min_set(rect_down, ELM_SCALE_SIZE(100), ELM_SCALE_SIZE(20));
+
+ // box
+ elm_table_pack(table, rect_up, 0, 0, 2, 1);// rect as a padding
+ elm_table_pack(table, box, 0, 1, 2, 1);
+ elm_table_pack(table, rect_down, 0, 2, 2, 1);// rect as a padding
evas_object_show(box);
- elm_object_content_set(popup, box);
+ elm_object_content_set(popup, table);
return popup;
}
+
+void _popup_show_cb(void * data) {
+
+ if (data) {
+ evas_object_show(data);
+ }
+}
+
+
+EXPORT_PUBLIC
+Evas_Object *setting_create_popup_with_progressbar_withobject(void *data,
+ Evas_Object *popup,
+ Evas_Object *parent,
+ char *progressbar_style,
+ char *title,
+ char *text,
+ setting_call_back_func response_cb,
+ int timeout,
+ bool blocked_flag,
+ bool keygrab_flag)
+{
+ SETTING_TRACE_BEGIN;
+ if (popup) {
+ evas_object_del(popup);
+ popup = NULL;
+ }
+
+ popup = __add_progressbar(data, parent, progressbar_style,
+ title, text);
+ elm_object_style_set(popup, "no_effect");
+
+ if (timeout > 0) {
+ elm_popup_timeout_set(popup, timeout);
+ }
+ __popup_event_set(popup, data, response_cb, timeout, blocked_flag, keygrab_flag);
+ //ecore_idler_add(_popup_show_cb, popup);
+ evas_object_show(popup);
+ return popup;
+}
+
+
/**
* create a popup window which contents a progressbar
*
* @return a popup window which contents a progressbar
*/
+EXPORT_PUBLIC
Evas_Object *setting_create_popup_with_progressbar(void *data,
Evas_Object *parent,
char *progressbar_style,
elm_popup_timeout_set(popup, timeout);
}
__popup_event_set(popup, data, response_cb, timeout, blocked_flag, keygrab_flag);
+ //ecore_idler_add(_popup_show_cb, popup);
+ evas_object_show(popup);
+
+ return popup;
+}
+
+/**
+* create a popup window which contents a progressbar and btn
+*
+* @return a popup window which contents a progressbar and btn
+*/
+EXPORT_PUBLIC
+Evas_Object *setting_create_popup_with_progressbar_btn(void *data,
+ Evas_Object *parent,
+ char *progressbar_style,
+ char *title,
+ char *text,
+ setting_call_back_func response_cb,
+ int timeout,
+ int btn_num, ...)
+{
+ SETTING_TRACE_BEGIN;
+ Evas_Object *popup = NULL;
+ popup = __add_progressbar(data, parent, progressbar_style,
+ title, text);
+
+ if (timeout > 0) {
+ elm_popup_timeout_set(popup, timeout);
+ }
+
+ if (btn_num > 0) { //the case popup has button or buttons
+ if (btn_num == 1)
+ {
+ va_list args;
+ va_start(args, btn_num);
+
+ char *btn_str;
+ btn_str = va_arg( args, char *);
+ if(safeStrCmp(_(btn_str),_("IDS_COM_SK_CANCEL")) != 0){
+ Evas_Object *btn = setting_create_button(popup, btn_str, NULL, response_cb, data);
+ elm_object_style_set(btn, "popup");
+ elm_object_part_content_set(popup, _("button1"), btn);
+
+ evas_object_data_set(popup, "button1", btn_str);
+ } else {
+ if (response_cb) {
+ evas_object_smart_callback_add(popup, "block,clicked", response_cb, data);
+ } else {
+ evas_object_smart_callback_add(popup, "block,clicked", _setting_def_response_cb, data);
+ }
+ }
+ va_end(args);
+ }
+ else
+ {
+ va_list args;
+ va_start(args, btn_num);
+
+ char *btn_str;
+ int argno = 0;
+ char *btn_part_str[] = {
+ _("button1"), _("button2"), _("button3")
+ };
+
+ //int idx = 0;
+ for (; argno < btn_num; argno++) {
+ btn_str = va_arg( args, char *);
+ SETTING_TRACE("Parameter #%d is: %s, btn_part_str;%s", argno, btn_str, btn_part_str[argno]);
+
+ if (btn_str) {
+ Evas_Object *btn = setting_create_button(popup, btn_str, NULL, response_cb, data);
+ elm_object_style_set(btn, "popup");
+ elm_object_part_content_set(popup, btn_part_str[argno], btn);
+ evas_object_data_set(popup, btn_part_str[argno], btn_str);
+ }
+ }
+
+ va_end(args);
+ }
+ } else { //the case popup doesn't have any button.
+ __popup_event_set(popup, data,response_cb, timeout, FALSE, FALSE);
+ }
+
evas_object_show(popup);
return popup;
}
* The general API to create a certain popup window with more than one button.
* @return a certain popup window
*/
+EXPORT_PUBLIC
Evas_Object *setting_create_popup_with_btn(void *data,
Evas_Object *parent,
char *title,
{
SETTING_TRACE_BEGIN;
Evas_Object *popup = elm_popup_add(parent);
+ ea_object_event_callback_add(popup, EA_CALLBACK_BACK, ea_popup_back_cb_2, data);
+ setting_add_hardkey_features(popup, data);
evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
+#if 0
+ //popup text's default align is left, add html lable will cause TTS reading incorrect
if (text) {
char r_str_text[HELP_MSG_BUFF_SIZE] = { 0, };
- snprintf(r_str_text, HELP_MSG_BUFF_SIZE, "<align=center>");
+ /**
+ if (title)
+ snprintf(r_str_text, HELP_MSG_BUFF_SIZE, "<align=left>");
+ else
+ snprintf(r_str_text, HELP_MSG_BUFF_SIZE, "<align=center>");
+ **/
+ snprintf(r_str_text, HELP_MSG_BUFF_SIZE, "<align=left>");
g_strlcat(r_str_text, text, HELP_MSG_BUFF_SIZE);
g_strlcat(r_str_text, "</align>", HELP_MSG_BUFF_SIZE);
elm_object_text_set(popup, r_str_text);
}
-
+#endif
+ if (text) {
+ elm_object_text_set(popup, _(text));
+ }
if (title) {
- elm_object_part_text_set(popup, "title,text", title);
+ elm_object_part_text_set(popup, "title,text", _(title));
}
if (timeout > 0) {
elm_popup_timeout_set(popup, timeout);
}
+ ADD_POPUP_MULTI_LANGUAGE_AUTO_UPDATE(popup, title, text, NULL, NULL, NULL);
+ SETTING_TRACE("title...:%s", evas_object_data_get(popup, "title"));
+ SETTING_TRACE("text...:%s", evas_object_data_get(popup, "text"));
if (btn_num > 0) { //the case popup has button or buttons
- va_list args;
- va_start(args, btn_num);
-
- char *btn_str;
- int argno = 0;
- char *btn_part_str[] = {
- _("button1"), _("button2"), _("button3")
- };
+ /*currently, most button number is 3*/
+ if(btn_num>3){
+ SETTING_TRACE_ERROR("incorrect button number for popup");
+ return NULL;
+ }
+ else if (btn_num == 1)
+ {
+ va_list args;
+ va_start(args, btn_num);
- for (; argno < btn_num; argno++) {
+ char *btn_str;
btn_str = va_arg( args, char *);
- SETTING_TRACE("Parameter #%d is: %s, btn_part_str;%s", argno, btn_str, btn_part_str[argno]);
- if (btn_str) {
+ if(safeStrCmp(btn_str,_("IDS_COM_SK_CANCEL")) != 0){
Evas_Object *btn = setting_create_button(popup, btn_str, NULL, response_cb, data);
- elm_object_style_set(btn, "popup_button/default");
- elm_object_part_content_set(popup, btn_part_str[argno], btn);
+ elm_object_style_set(btn, "popup");
+ elm_object_part_content_set(popup, _("button1"), btn);
+ evas_object_data_set(popup, "button1", btn_str);
+ } else {
+ if (response_cb) {
+ evas_object_smart_callback_add(popup, "block,clicked", response_cb, data);
+ } else {
+ evas_object_smart_callback_add(popup, "block,clicked", _setting_def_response_cb, data);
+ }
}
+ va_end(args);
+ }
+ else
+ {
+ va_list args;
+ va_start(args, btn_num);
+
+ char *btn_str[3];
+ int argno = 0;
+
+ char *btn_part_str[] = {
+ _("button1"), _("button2"), _("button3")
+ };
+
+ int i = 0;
+ for (; i < btn_num; i++) {
+ btn_str[i] = va_arg( args, char *);
+ }
+
+ for (; argno < btn_num; argno++) {
+ SETTING_TRACE("Parameter #%d is: %s, btn_part_str;%s", argno, btn_str[btn_num-1-argno], btn_part_str[argno]);
+ if (btn_str[btn_num-1-argno]) {
+ Evas_Object *btn = setting_create_button(popup, btn_str[btn_num-1-argno], NULL, response_cb, data);
+ /*if(!safeStrCmp(btn_str[btn_num-1-argno], _("IDS_COM_SK_DELETE"))){
+ elm_object_style_set(btn, "style1/delete");
+ }
+ else{*/
+ elm_object_style_set(btn, "popup");
+ //}
+ elm_object_part_content_set(popup, btn_part_str[argno], btn);
+ evas_object_data_set(popup, btn_part_str[argno], btn_str[btn_num-1-argno]);
+ }
+ }
+
+ va_end(args);
}
- va_end(args);
} else { //the case popup doesn't have any button.
__popup_event_set(popup, data,response_cb, timeout, FALSE, FALSE);
}
+ SETTING_TRACE("title...:%s", evas_object_data_get(popup, "title"));
+ SETTING_TRACE("text...:%s", evas_object_data_get(popup, "text"));
+ SETTING_TRACE("button1...:%s", evas_object_data_get(popup, "button1"));
+ SETTING_TRACE("button2...:%s", evas_object_data_get(popup, "button2"));
+ SETTING_TRACE("button3...:%s", evas_object_data_get(popup, "button3"));
evas_object_show(popup);
SETTING_TRACE_END;
*
* @return a certain popup window
*/
+EXPORT_PUBLIC
Evas_Object *setting_create_popup_without_btn(void *data,
Evas_Object *parent,
char *title,
bool keygrab_flag)
{
Evas_Object *popup = elm_popup_add(parent);
+ ea_object_event_callback_add(popup, EA_CALLBACK_BACK, ea_popup_back_cb_2, data);
+ setting_add_hardkey_features(popup, data);
evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
+#if 0
+ //popup text's default align is left, add html lable will cause TTS reading incorrect
if (text) {
char r_str_text[HELP_MSG_BUFF_SIZE] = { 0, };
- snprintf(r_str_text, HELP_MSG_BUFF_SIZE, "<align=center>");
+ /**
+ if (title)
+ snprintf(r_str_text, HELP_MSG_BUFF_SIZE, "<align=left>");
+ else
+ snprintf(r_str_text, HELP_MSG_BUFF_SIZE, "<align=center>");
+ **/
+ snprintf(r_str_text, HELP_MSG_BUFF_SIZE, "<align=left>");
g_strlcat(r_str_text, text, HELP_MSG_BUFF_SIZE);
g_strlcat(r_str_text, "</align>", HELP_MSG_BUFF_SIZE);
elm_object_text_set(popup, r_str_text);
}
-
+#endif
+ if (text) {
+ elm_object_text_set(popup, _(text));
+ }
if (title) {
- elm_object_part_text_set(popup, "title,text", title);
+ elm_object_part_text_set(popup, "title,text", _(title));
}
+ ADD_POPUP_MULTI_LANGUAGE_AUTO_UPDATE(popup, title, text, NULL, NULL, NULL);
if (timeout > 0) {
elm_popup_timeout_set(popup, timeout);
}
* @return a certain popup window with title
* not used now
*/
+EXPORT_PUBLIC
int setting_create_simple_popup(void *data,
Evas_Object *parent,
char *title,
#define ADD_POPUP_BTN(btn_num, popup, response_cb, data) \
if (btn_num > 0) {\
- va_list args;\
- va_start(args, btn_num);\
- \
- char *btn_str;\
- int argno = 0;\
- char *btn_part_str[] = {\
- _("button1"), _("button2"), _("button3")\
- };\
- \
- for (; argno < btn_num; argno++) {\
+ if (btn_num == 1)\
+ {\
+ va_list args;\
+ va_start(args, btn_num);\
+ \
+ char *btn_str;\
btn_str = va_arg( args, char *);\
- SETTING_TRACE("Parameter #%d is: %s, btn_part_str;%s", argno, btn_str, btn_part_str[argno]);\
- if (btn_str)\
- {\
+ if(safeStrCmp(btn_str,_("IDS_COM_SK_CANCEL")) != 0){\
Evas_Object *btn = setting_create_button(popup, btn_str, NULL, response_cb, data);\
- elm_object_style_set(btn, "popup_button/default");\
- elm_object_part_content_set(popup, btn_part_str[argno], btn);\
+ elm_object_style_set(btn, "popup");\
+ elm_object_part_content_set(popup, _("button1"), btn);\
+ evas_object_data_set(popup, "button1", btn_str);\
+ } else {\
+ if (response_cb) {\
+ evas_object_smart_callback_add(popup, "block,clicked", response_cb, data);\
+ } else {\
+ evas_object_smart_callback_add(popup, "block,clicked", _setting_def_response_cb, data);\
+ }\
}\
+ va_end(args);\
+ }\
+ else {\
+ va_list args;\
+ va_start(args, btn_num);\
+ \
+ char *btn_str;\
+ int argno = 0;\
+ char *btn_part_str[] = {\
+ _("button1"), _("button2"), _("button3")\
+ };\
+ \
+ for (; argno < btn_num; argno++) {\
+ btn_str = va_arg( args, char *);\
+ SETTING_TRACE("Parameter #%d is: %s, btn_part_str;%s", argno, btn_str, btn_part_str[argno]);\
+ if (btn_str)\
+ {\
+ Evas_Object *btn = setting_create_button(popup, btn_str, NULL, response_cb, data);\
+ elm_object_style_set(btn, "popup");\
+ elm_object_part_content_set(popup, btn_part_str[argno], btn);\
+ evas_object_data_set(popup, btn_part_str[argno], btn_str);\
+ }\
+ }\
+ va_end(args);\
}\
- va_end(args);\
} else {\
if (response_cb) {\
evas_object_smart_callback_add(popup, "timeout", response_cb, data);\
NULL //must end with 'NULL'
};
*/
+#if 0
static void __gif_popup_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
SETTING_TRACE_BEGIN;
evas_object_data_set(obj, "popup_type", NULL);
}
+#endif
+EXPORT_PUBLIC
Evas_Object *setting_create_popup_with_gif(void *data,
Evas_Object *parent,
char *title,
int btn_num, ...)
{
SETTING_TRACE_BEGIN;
+
+ #if 0
//displaying image
Evas_Object *image = NULL;
if (png_list && *png_list) {
}
Evas_Object *popup = elm_popup_add(parent);
+ evas_object_show(popup);
evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
//title
ADD_POPUP_BTN(btn_num, popup, response_cb, data);
evas_object_show(popup);
+ #else
+ Evas_Object *scroller = elm_genlist_add(parent);
+ retvm_if(scroller == NULL, NULL, "Cannot set scroller object as contento of layout");
+ elm_genlist_realization_mode_set(scroller, EINA_TRUE);
+ elm_object_style_set(scroller, "dialogue");
+ elm_genlist_clear(scroller); /* first to clear list */
+ elm_genlist_mode_set(scroller, ELM_LIST_COMPRESS);
+ evas_object_smart_callback_add(scroller, "realized", __gl_realized_cb, NULL);
+
+ ADD_GL_LABLE(scroller, text);
+
+ SETTING_TRACE("png_list:%p", png_list);
+ ADD_GL_GIF(scroller,png_list)
+
+ //elm_object_content_set(popup, scroller);
+
+ Evas_Object *popup = setting_create_popup_with_checkview(parent, title, NULL, scroller,
+ "popup_checkview_image", NULL, timeout);
+
+ setting_add_hardkey_features(popup, data);
+ ea_object_event_callback_add(popup, EA_CALLBACK_BACK, ea_popup_back_cb_2, data);
+ //evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ //evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ //evas_object_size_hint_min_set(scroller, ELM_SCALE_SIZE(480), ELM_SCALE_SIZE(700));
+
+ ADD_POPUP_BTN(btn_num, popup, response_cb, data);
+ evas_object_show(popup);
+ #endif
return popup;
}
+EXPORT_PUBLIC
Evas_Object *setting_create_popup_with_checkview(Evas_Object *parent,
char *title,
char *check_str,
int timeout)
{
Evas_Object *popup = elm_popup_add(parent);
- evas_object_show(popup);
evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
//title
if (title) {
- elm_object_part_text_set(popup, "title,text", title);
+ elm_object_part_text_set(popup, "title,text", _(title));
}
if (timeout > 0) {
//instructing of displaying image
if (check_str) {
- edje_object_part_text_set(elm_layout_edje_get(checkview), "elm.text", check_str);
+ edje_object_part_text_set(elm_layout_edje_get(checkview), "elm.text", _(check_str));
}
+ ADD_POPUP_MULTI_LANGUAGE_AUTO_UPDATE(popup, title, NULL, NULL, NULL, NULL);
+ evas_object_data_set(popup, "check_str", check_str);
if (check) {
*check = elm_check_add(popup);
evas_object_size_hint_align_set(*check, EVAS_HINT_FILL,
return popup;
}
+EXPORT_PUBLIC
+Evas_Object * setting_create_popup_with_label_and_reverse_btn(void *data,
+ Evas_Object *parent,
+ char *title,
+ char *text,
+ setting_call_back_func response_cb,
+ int timeout,
+ int btn_num, ... )
+{
+ Evas_Object *popup;
+ //struct appdata *ad = (struct appdata *) data;
+
+ popup = elm_popup_add(parent);
+ ea_object_event_callback_add(popup, EA_CALLBACK_BACK, ea_popup_back_cb_2, data);
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_text_set(popup, _(text));
+ ADD_POPUP_MULTI_LANGUAGE_AUTO_UPDATE(popup, NULL, text, NULL, NULL, NULL);
+
+ ADD_POPUP_BTN(btn_num, popup, response_cb, data);
+
+ evas_object_show(popup);
+
+ return popup;
+}
+
+EXPORT_PUBLIC
+Evas_Object *setting_create_popup_with_label_check(void *data,
+ Evas_Object *parent,
+ char *title,
+ char *content,
+ char *check_str,
+ Evas_Object **check,
+ setting_call_back_func response_cb,
+ int timeout,
+ int btn_num, ...)
+{
+ Evas_Object *popup = elm_popup_add(parent);
+ ea_object_event_callback_add(popup, EA_CALLBACK_BACK, ea_popup_back_cb_2, data);
+ setting_add_hardkey_features(popup, data);
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ if (title) {
+ elm_object_part_text_set(popup, "title,text", _(title));
+ }
+
+ if (timeout > 0) {
+ elm_popup_timeout_set(popup, timeout);
+ }
+
+ Evas_Object *label = NULL;
+ label = elm_label_add(popup);
+ elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
+
+ char arr[2048] = {'\0',};
+ snprintf(arr, 2048, "<color=#000000>%s</color>",_(content));
+ elm_object_text_set(label, arr);
+
+ evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(label);
+
+ Evas_Object *layout = elm_layout_add(popup);
+ elm_layout_file_set(layout, SETTING_THEME_EDJ_NAME, "popup_checkview");
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ if(check) {
+ *check = elm_check_add(popup);
+ elm_object_style_set(*check, "popup");
+ elm_object_text_set(*check, _(check_str));
+ evas_object_show(*check);
+
+ Evas_Object* box = elm_box_add(popup);
+ elm_box_horizontal_set(box, EINA_TRUE);
+ elm_box_pack_end(box, *check);
+
+ evas_object_show(box);
+ elm_object_part_content_set(layout, "elm.swallow.end", box);
+ }
+
+ elm_object_part_content_set(layout, "elm.swallow.content", label);
+
+ elm_object_content_set(popup, layout);
+ ADD_POPUP_MULTI_LANGUAGE_AUTO_UPDATE(popup, title, content, NULL, NULL, NULL);
+ evas_object_data_set(popup, "check_str", check_str);
+
+ ADD_POPUP_BTN(btn_num, popup, response_cb, data);
+ evas_object_show(popup);
+ return popup;
+}
+
+
/**
* The API to create a certain popup window with a image, a check and some buttons
* @return a certain popup window with title
*/
+EXPORT_PUBLIC
Evas_Object *setting_create_popup_with_image_check(void *data,
Evas_Object *parent,
char *title,
char *text1,
char *text2,
- char *icon_path,
+ const char **png_list, //array end with 'NULL'.
char *check_str,
Evas_Object **check,
setting_call_back_func response_cb,
int btn_num, ...)
{
SETTING_TRACE_BEGIN;
- //content
+#if 0
Evas_Object *lable = NULL;
- Evas_Object *content_box = elm_box_add(parent);
- evas_object_size_hint_weight_set(content_box, EVAS_HINT_EXPAND, 0);
+
+ Evas_Object *inner_layout = elm_layout_add(parent);
+ elm_layout_file_set(inner_layout, SETTING_THEME_EDJ_NAME, "popup_smartscreen_internal");
+ evas_object_size_hint_weight_set(inner_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
if (text1) {
- lable = setting_create_lable(content_box, text1, "entry", "middle");
- elm_box_pack_end(content_box, lable);
+ lable = setting_create_lable(inner_layout, text1, "entry", "left");
+ elm_object_part_content_set(inner_layout, "elm.swallow.content1", lable);
}
- if (icon_path) {
- Evas_Object *image = setting_create_image(content_box, icon_path);
- setting_resize_object(image, 100*WIDGET_SCALE_FACTOR, 110*WIDGET_SCALE_FACTOR);
- elm_box_pack_end(content_box, image);
+
+ Evas_Object *image = NULL;
+ if (png_list && *png_list) {
+ if (png_list[1]) { //png_list is an array end with 'NULL', and it has at least 2 png file,
+ image = setting_create_gif(parent, png_list);
+ } else { //png_list just has one png file,
+ image = setting_create_image(parent, *png_list);
+ }
+
+ elm_object_part_content_set(inner_layout, "elm.swallow.content2", image);
}
if (text2) {
- lable = setting_create_lable(content_box, text2, "entry", "middle");
- elm_box_pack_end(content_box, lable);
+ lable = setting_create_lable(inner_layout, text2, "entry", "left");
+ elm_object_part_content_set(inner_layout, "elm.swallow.content3", lable);
}
Evas_Object *scroller = elm_scroller_add(parent);
elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE);
elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
evas_object_show(scroller);
- elm_object_content_set(scroller, content_box);
+ elm_object_content_set(scroller, inner_layout);
+#endif
+ Evas_Object *scroller = elm_genlist_add(parent);
+ retvm_if(scroller == NULL, NULL, "Cannot set scroller object as contento of layout");
+ elm_genlist_realization_mode_set(scroller, EINA_TRUE);
+ elm_object_style_set(scroller, "dialogue");
+ elm_genlist_clear(scroller); /* first to clear list */
+ elm_genlist_mode_set(scroller, ELM_LIST_COMPRESS);
+ evas_object_smart_callback_add(scroller, "realized", __gl_realized_cb, NULL);
+ ADD_GL_LABLE(scroller, text1);
+
+ SETTING_TRACE("png_list:%p", png_list);
+ ADD_GL_GIF(scroller,png_list)
+ ADD_GL_LABLE(scroller, text2);
+ //ADD_GL_BUTTON(scroller, content_button_str, content_button_click_cb, cb_data)
Evas_Object *popup = setting_create_popup_with_checkview(parent, title, check_str, scroller,
"popup_checkview_image", check, timeout);
+ setting_add_hardkey_features(popup, data);
+ ea_object_event_callback_add(popup, EA_CALLBACK_BACK, ea_popup_back_cb_2, data);
+
ADD_POPUP_BTN(btn_num, popup, response_cb, data);
evas_object_show(popup);
return popup;
/**
* Create selectinfo popup
*/
+EXPORT_PUBLIC
void setting_create_sel_info_popup(Evas_Object *parent,
Evas_Object **selInfoPop_layout,
Evas_Object **selInfoPop)
evas_object_show(*selInfoPop);
}
-#if APPLIED_BACK_KEY_UG
+EXPORT_PUBLIC
+void setting_create_select_info_popup(Evas_Object **popup, Evas_Object *parent, double timeout, char *content_text, char *style)
+{
+ SETTING_TRACE_BEGIN;
+ setting_retm_if(parent == NULL, "parent is NULL");
+ //SETTING_TRACE("*popup:%p", *popup);
+ if (!(*popup)) {
+ *popup = elm_notify_add(parent);
+ elm_notify_align_set(*popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+
+ Evas_Object *selectioninfo_layout = NULL;
+ selectioninfo_layout = elm_layout_add(*popup);
+ elm_object_content_set(*popup, selectioninfo_layout);
+
+ elm_notify_timeout_set(*popup, timeout);
+
+ Evas_Object *content_obj = elm_object_content_get(*popup);
+ /* Set the layout theme */
+ elm_layout_theme_set(content_obj, "standard", "selectioninfo", style);
+
+ char text[MAX_DISPLAY_NAME_LEN_ON_UI] = {0,};
+ snprintf(text, sizeof(text), "%s", content_text);
+ elm_object_part_text_set(content_obj, "elm.text", text);
+ }
+ evas_object_show(*popup);
+}
/**
-* Get the toppest popup in current evas, cross through all the APP and UGs.
-*
-* @param[in] evas
-*
-* @return the toppest popup in current evas
+* The API going to insert a record into noti_list in /opt/dbspace/.notification.db
+* @ you can check the result via "sqlite3 /opt/dbspace/.notification.db" "select * from noti_list;"
+* @ App (quickpanel) use notification_register_detailed_changed_cb to listen all notification/DB events,
+* @ in the function _quickpanel_noti_detailed_changed_cb(), it will check the event type(INSERT,UPDATE..)
+* @ Take INSERT event for example,
+* @ it get the noti_type via notification_get_type,then:
+ if (noti_type == NOTIFICATION_TYPE_NOTI) {
+ _quickpanel_noti_noti_add(ad->list, noti_new, GRIDBOX_PREPEND);
+ } else if (noti_type == NOTIFICATION_TYPE_ONGOING) {
+ _quickpanel_noti_ongoing_add(ad->list, noti_new, LISTBOX_PREPEND);
+ }
+* @ for noti:
+ "quickpanel/notibox/thumbnail" ---NOTIFICATION_LY_NOTI_THUMBNAIL
+ "quickpanel/notibox/single_multi" --Others
+
+* @ for ongoing:
+ "quickpanel/listitem/default" --NOTIFICATION_LY_NOTI_EVENT_SINGLE
+
+* usage: dlogutil NOTIFICATION QUICKPANEL indicator
+ 1.ongoing---it's like quick pannel brightness (list item)
+ setting_create_noti("setting-blockingmode-efl", NOTIFICATION_TYPE_ONGOING,
+ NOTIFICATION_LY_ONGOING_EVENT, _(title), _(content),
+ IMG_BlockingMode, NULL);
+
+ 2.notification---it's grid below ongoing (square grid box)
+ setting_create_noti("setting-sim-manager-efl", NOTIFICATION_TYPE_NOTI,
+ NOTIFICATION_LY_NOTI_EVENT_SINGLE, "111", _(noti_str),
+ IMG_BlockingMode, NULL);
*/
-Evas_Object *get_toppest_popup_window(Evas *evas)
+EXPORT_PUBLIC void setting_create_quickpannel_notification(const char *pkgname, int noti_type,
+ int ly_type, const char *title,
+ const char *content, const char *image, int *noti_id)
{
- Evas_Object *evas_bottom = evas_object_top_get(evas);
- /* SETTING_TRACE("evas_bottom:%p", evas_bottom); */
- Evas_Object *below = evas_bottom;
-
- Evas_Object *found = NULL;
- const char *type = NULL;
- while (1) {
- /* parent = elm_widget_parent_get(parent); */
- below = evas_object_below_get(below);
- if (!below) {
- break;
+ SETTING_TRACE_BEGIN;
+ notification_h noti = NULL;
+ notification_error_e ret = NOTIFICATION_ERROR_NONE;
+
+ ret = notification_delete_all_by_type(pkgname, noti_type);
+ SETTING_TRACE("delete all result:%d", ret);
+
+ noti = notification_new((notification_type_e)noti_type, NOTIFICATION_GROUP_ID_NONE, NOTIFICATION_PRIV_ID_NONE);
+ retm_if(!noti, "Fail to notification_new");
+ do
+ {
+ /*ret = notification_set_property(noti, NOTIFICATION_PROP_VOLATILE_DISPLAY);
+ if (ret != NOTIFICATION_ERROR_NONE) break;*/
+
+ ret = notification_set_layout(noti, (notification_ly_type_e)ly_type);
+ if (ret != NOTIFICATION_ERROR_NONE) break;
+
+ if (image)
+ {
+ ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON, image);
+ if (ret != NOTIFICATION_ERROR_NONE) break;
}
- /* SETTING_TRACE("below:%p", below); */
- type = elm_widget_type_get(below);
- /* SETTING_TRACE("below's type:%s", type); */
- if (type && !safeStrCmp(type, "popup")) {
- found = below;
- break;
+
+ if (title)
+ {
+ ret = notification_set_text(noti,NOTIFICATION_TEXT_TYPE_TITLE, title, title, NOTIFICATION_VARIABLE_TYPE_NONE);
+ if (ret != NOTIFICATION_ERROR_NONE) break;
+ }
+
+ if (content)
+ {
+ ret = notification_set_text(noti, NOTIFICATION_TEXT_TYPE_CONTENT,content, content, NOTIFICATION_VARIABLE_TYPE_NONE);
+ if (ret != NOTIFICATION_ERROR_NONE) break;
}
+
+ ret = notification_set_text_domain(noti, SETTING_PACKAGE, SETTING_LOCALEDIR);
+ if (ret != NOTIFICATION_ERROR_NONE) break;
+
+ ret = notification_set_pkgname(noti, pkgname);
+ if (ret != NOTIFICATION_ERROR_NONE) break;
+
+ #if 0
+ ret = notification_set_application(noti, pkgname);
+ if (ret != NOTIFICATION_ERROR_NONE) break;
+ #endif
+
+ ret = notification_insert(noti, noti_id);
+ if (ret != NOTIFICATION_ERROR_NONE) break;
+ }while(0);
+
+
+ if (notification_free(noti) != NOTIFICATION_ERROR_NONE) {
+ SETTING_TRACE_ERROR("Fail to notification_free");
}
- SETTING_TRACE("found:%p", found);
- return found;
+ return;
}
-#endif
+EXPORT_PUBLIC void setting_remove_quickpannel_notification(const char *pkgname, int noti_type, int *noti_id)
+{
+ SETTING_TRACE_BEGIN;
+ notification_error_e ret = NOTIFICATION_ERROR_NONE;
+ ret = notification_delete_all_by_type(pkgname, noti_type);
+ if (ret != NOTIFICATION_ERROR_NONE) {
+ SETTING_TRACE_ERROR("Fail to notification_delete_all_by_type [%d]", ret);
+ }
+
+ /* reset id */
+ *noti_id = -1;
+}
+/*The API is going to register a message to NOTIFICATION_STATUS_MESSAGE_KEY, and the message will be shown in indicator
+* @ Quickpannel App save the value of var message, and it supply notification_status_monitor_message_cb_set,
+* @ in which, Indicator can set process of vconf(NOTIFICATION_STATUS_MESSAGE_KEY) change event,in the call __message_callback,
+* @ it will invoke indicator_part_text_emit_by_win(win,"message.text.compare", text); to show message you registered
+*/
+EXPORT_PUBLIC void setting_create_indicator_notification(const char *message)
+{
+ notification_status_message_post(message);
+}