World Clock Widget / src /
main.c
- /*
- * Copyright (c) 2015 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.
- */
- #include <tizen.h>
- #include <widget_app.h>
- #include <dlog.h>
- #include "log.h"
- #include "view.h"
- #include "data.h"
- static void clicked_cb(void *user_data);
- static int widget_instance_create(widget_context_h context, bundle *content, int w, int h, void *user_data)
- {
- void *wid = NULL;
- char *region_text = NULL;
- char *time_text = NULL;
- char *date_text = NULL;
- if (content != NULL) {
- /* Recover the previous status with the bundle object. */
- }
- /*
- * @note
- * view_create() function makes empty view frame.
- */
- wid = view_create(context, w, h);
- if (wid == NULL) {
- dlog_print(DLOG_ERROR, LOG_TAG, "failed to create a view.");
- return WIDGET_ERROR_FAULT;
- }
- /*
- * @note
- * view_set_image() function put a image to the part.
- * Pass the part name which you want to put in as a second parameter,
- * and name of image file including its directory path as a third parameter.
- */
- view_set_image(wid, "widget.bg", "images/bg.png");
- /*
- * @note
- * data_get_text() function get the text you want to use.
- * Pass the part name which you want to fill out as parameter.
- */
- region_text = data_get_text("widget.region");
- /*
- * @note
- * view_set_text() function fill out the part with the text.
- * Pass the part name as a first parameter and the text as a second parameter.
- */
- view_set_text(wid, "widget.region", region_text);
- free(region_text);
- /*
- * @note
- * This function set will be called several times as much as you want to use.
- */
- time_text = data_get_text("widget.time");
- view_set_text(wid, "widget.time", time_text);
- free(time_text);
- date_text = data_get_text("widget.date");
- view_set_text(wid, "widget.date", date_text);
- free(date_text);
- /*
- * @note
- * view_set_event_callback() function launch widget's application.
- * Decide a third parameter of the function to designate the moment that application be launched.
- * There are three choices, WIDGET_EVENT_PRESSED, WIDGET_EVENT_RELEASED, WIDGET_EVENT_CLICKED.
- */
- view_set_event_callback(wid, "widget.event", WIDGET_EVENT_CLICKED, (void *) clicked_cb);
- widget_app_context_set_tag(context, wid);
- return WIDGET_ERROR_NONE;
- }
- static int widget_instance_destroy(widget_context_h context, widget_app_destroy_type_e reason, bundle *content_info, void *user_data)
- {
- void *wid = NULL;
- widget_app_context_get_tag(context, (void**) &wid);
- view_destroy(wid);
- return WIDGET_ERROR_NONE;
- }
- static int widget_instance_pause(widget_context_h context, void *user_data)
- {
- /* Take necessary actions when widget instance becomes invisible. */
- return WIDGET_ERROR_NONE;
- }
- static int widget_instance_resume(widget_context_h context, void *user_data)
- {
- /* Take necessary actions when widget instance becomes visible. */
- return WIDGET_ERROR_NONE;
- }
- static int widget_instance_update(widget_context_h context, bundle *content, int force, void *user_data)
- {
- /* Take necessary actions when widget instance should be updated. */
- return WIDGET_ERROR_NONE;
- }
- static int widget_instance_resize(widget_context_h context, int w, int h, void *user_data)
- {
- void *wid = NULL;
- widget_app_context_get_tag(context, (void**) &wid);
- view_resize(wid, w, h);
- return WIDGET_ERROR_NONE;
- }
- static void widget_app_lang_changed(app_event_info_h event_info, void *user_data)
- {
- /* APP_EVENT_LANGUAGE_CHANGED */
- char *locale = NULL;
- app_event_get_language(event_info, &locale);
- elm_language_set(locale);
- free(locale);
- }
- static void widget_app_region_changed(app_event_info_h event_info, void *user_data)
- {
- /* APP_EVENT_REGION_FORMAT_CHANGED */
- }
- static widget_class_h widget_app_create(void *user_data)
- {
- app_event_handler_h handlers[5] = {NULL, };
- widget_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED],
- APP_EVENT_LANGUAGE_CHANGED, widget_app_lang_changed, user_data);
- widget_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED],
- APP_EVENT_REGION_FORMAT_CHANGED, widget_app_region_changed,
- user_data);
- widget_instance_lifecycle_callback_s ops = {
- .create = widget_instance_create,
- .destroy = widget_instance_destroy,
- .pause = widget_instance_pause,
- .resume = widget_instance_resume,
- .update = widget_instance_update,
- .resize = widget_instance_resize,
- };
- return widget_app_class_create(ops, user_data);
- }
- static void widget_app_terminate(void *user_data)
- {
- /* Release all resources. */
- }
- int main(int argc, char *argv[])
- {
- widget_app_lifecycle_callback_s ops = {0, };
- int ret;
- ops.create = widget_app_create;
- ops.terminate = widget_app_terminate;
- ret = widget_app_main(argc, argv, &ops, NULL);
- if (ret != WIDGET_ERROR_NONE) {
- dlog_print(DLOG_ERROR, LOG_TAG, "widget_app_main() is failed. err = %d", ret);
- }
- return ret;
- }
- /*
- * @note
- * Below functions are static functions.
- */
- /*
- * @brief: This function will be operated when the specific Evas object is clicked
- * @param[user_data]: data needed in this function
- */
- static void clicked_cb(void *user_data)
- {
- /*
- * @note
- * In this function, you launch the application.
- */
- dlog_print(DLOG_DEBUG, LOG_TAG, "clicked a widget.");
- }
- /* End of file */