summaryrefslogtreecommitdiff
path: root/lib/speed/ph-speeddial-main.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/speed/ph-speeddial-main.c')
-rwxr-xr-xlib/speed/ph-speeddial-main.c203
1 files changed, 203 insertions, 0 deletions
diff --git a/lib/speed/ph-speeddial-main.c b/lib/speed/ph-speeddial-main.c
new file mode 100755
index 0000000..24d590c
--- /dev/null
+++ b/lib/speed/ph-speeddial-main.c
@@ -0,0 +1,203 @@
+/*
+* Copyright 2012 Samsung Electronics Co., Ltd
+*
+* Licensed under the Flora License, Version 1.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/
+*
+* 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.
+*/
+
+
+#include <ui-gadget-module.h>
+#include <bundle.h>
+
+#include "phone.h"
+#include "phone-common.h"
+#include "ph-speeddial-view.h"
+
+// for removing build warning ////////////////////////////////////
+int service_export_as_bundle(service_h service, bundle **data);
+////////////////////////////////////////////////////////
+
+static bool speed_create_ug_view(ph_speeddial_data * speed_d, Evas_Object *base)
+{
+ p_retvm_if(NULL == speed_d, false, "Parameter is null");
+
+ if (NULL == speed_d->navi) {
+ speed_d->navi = elm_naviframe_add(base);
+ p_retvm_if(NULL == speed_d->navi, false, "elm_naviframe_add is failed");
+ elm_object_part_content_set(base, "elm.swallow.content", speed_d->navi);
+ evas_object_show(speed_d->navi);
+ }
+
+ speed_d->layout = ph_speed_create_content(speed_d->navi, speed_d);
+ p_retvm_if(NULL == speed_d->layout, false, "Fail to ph_speed_create_content");
+
+ return true;
+}
+
+static void *speed_on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv)
+{
+ PH_FN_CALL;
+ contacts_error_e err = CONTACTS_ERROR_NONE;
+ Evas_Object *bg;
+ Evas_Object *base;
+ Evas_Object *parent;
+ ph_speeddial_data *speed_d;
+
+ if (!ug || !priv)
+ return NULL;
+
+ bindtextdomain(PACKAGE, LOCALEDIR);
+
+ parent = ug_get_parent_layout(ug);
+ if (!parent)
+ return NULL;
+
+ speed_d = priv;
+ speed_d->ug = ug;
+ speed_d->win = ug_get_window();
+ speed_d->is_ug = true;
+
+ err = contacts_connect2();
+ p_retvm_if(CONTACTS_ERROR_NONE != err, NULL, "contacts_connect2() Failed(%d)", err);
+
+ if (mode==UG_MODE_FULLVIEW)
+ base = phone_create_base_layout(parent, true);
+ else
+ base = phone_create_base_layout(parent, false);
+
+ bg = phone_create_bg(base);
+ if (NULL == bg) {
+ PH_DBG("phone_create_bg() return NULL");
+ evas_object_del(base);
+ err = contacts_disconnect2();
+ p_warn_if(CONTACTS_ERROR_NONE != err, "contacts_disconnect2() Failed(%d)", err);
+ return NULL;
+ }
+
+ if (!speed_create_ug_view(speed_d, base)) {
+ evas_object_del(base);
+ err = contacts_disconnect2();
+ p_warn_if(CONTACTS_ERROR_NONE != err, "contacts_disconnect2() Failed(%d)", err);
+ }
+ return base;
+}
+
+static void speed_on_start(ui_gadget_h ug, service_h service, void *priv)
+{
+}
+
+static void speed_on_pause(ui_gadget_h ug, service_h service, void *priv)
+{
+}
+
+static void speed_on_resume(ui_gadget_h ug, service_h service, void *priv)
+{
+}
+
+static void speed_on_destroy(ui_gadget_h ug, service_h service, void *priv)
+{
+ PH_FN_CALL;
+ contacts_error_e err = CONTACTS_ERROR_NONE;
+ if (!ug)
+ return;
+
+ evas_object_del(ug_get_layout(ug));
+ err = contacts_disconnect2();
+ p_warn_if(CONTACTS_ERROR_NONE != err, "contacts_disconnect2() Failed(%d)", err);
+}
+
+static void speed_on_message(ui_gadget_h ug, service_h msg, service_h service, void *priv)
+{
+}
+
+static void speed_on_event(ui_gadget_h ug, enum ug_event event, service_h service, void *priv)
+{
+ switch (event) {
+ case UG_EVENT_ROTATE_PORTRAIT:
+ case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
+ case UG_EVENT_ROTATE_LANDSCAPE:
+ case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
+ break;
+ case UG_EVENT_LANG_CHANGE:
+ break;
+ default:
+ break;
+ }
+}
+
+static void speed_on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h data, void *priv)
+{
+ PH_FN_CALL;
+ if (!ug)
+ return;
+
+ switch (event) {
+ case UG_KEY_EVENT_END:
+ ug_destroy_me(ug);
+ break;
+ default:
+ break;
+ }
+}
+
+API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+ ph_speeddial_data *speed_d;
+
+ if (!ops)
+ return -1;
+
+ speed_d = calloc(1, sizeof(ph_speeddial_data));
+ if (!speed_d)
+ return -1;
+
+ ops->create = speed_on_create;
+ ops->start = speed_on_start;
+ ops->pause = speed_on_pause;
+ ops->resume = speed_on_resume;
+ ops->destroy = speed_on_destroy;
+ ops->message = speed_on_message;
+ ops->event = speed_on_event;
+ ops->key_event = speed_on_key_event;
+ ops->priv = speed_d;
+ ops->opt = UG_OPT_INDICATOR_ENABLE;
+
+ return 0;
+}
+
+API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+ PH_FN_END;
+ if (!ops)
+ return;
+
+ ops->priv = NULL;
+}
+
+API Evas_Object *phone_create_speeddial_view(void *ug, Evas_Object *win, Evas_Object *navi)
+{
+ ph_speeddial_data * speed_d = calloc(1, sizeof(ph_speeddial_data));
+ p_retvm_if(NULL == speed_d, NULL, "Faile to calloc ph_speeddial_data");
+
+ speed_d->ug = ug;
+ speed_d->is_ug = false;
+ speed_d->win = win;
+ speed_d->navi = navi;
+ speed_d->layout = ph_speed_create_content(navi, speed_d);
+ if (NULL == speed_d->layout) {
+ free(speed_d);
+ return NULL;
+ }
+
+ return speed_d->layout;
+}
+