Beruflich Dokumente
Kultur Dokumente
h>
#include "worldclock.h"
#include <app.h>
#define TAG "MY_TAG"
typedef struct appdata {
Evas_Object *win;
Evas_Object *conform;
Evas_Object *naviframe;
Elm_Object_Item *nf_it;
} appdata_s;
typedef struct item_data {
int index;
char *phone;
char *name;
char *mail;
Elm_Object_Item *item; // Elm_Object_Item *item;
Evas_Object *naviframe; // Evas_Object *button;
} item_data_s; // alias
static void win_delete_request_cb(void *data, Evas_Object *obj,
void *event_info) {
ui_app_exit();
}
static void win_back_cb(void *data, Evas_Object *obj, void *event_info) {
appdata_s *ad = data;
/* Let window go to hide state. */
elm_win_lower(ad->win);
}
static Eina_Bool naviframe_pop_cb(void *data, Elm_Object_Item *it) {
ui_app_exit();
return EINA_FALSE;
}
static Evas_Object* create_simple_clock(Evas_Object *parent);
static Evas_Object* create_list(Evas_Object *parent, Evas_Object *naviframe);
static void create_base_gui(appdata_s *ad) {
Evas_Object *box, *layout, *list_area;
/* Window */
ad->win = elm_win_util_standard_add(PACKAGE, PACKAGE);
elm_win_conformant_set(ad->win, ad->conform);
elm_win_autodel_set(ad->win, EINA_TRUE);
if (elm_win_wm_rotation_supported_get(ad->win)) {
int rots[4] = { 0, 90, 180, 270 };
elm_win_wm_rotation_available_rotations_set(ad->win,
(const int *) (&rots), 4);
}
//
evas_object_smart_callback_add(ad->win, "delete,request",win_delete_requ
est_cb, NULL);
//eext_object_event_callback_add(ad->win, EEXT_CALLBACK_BACK, win_back_c
b, ad);
/* Conformant */
ad->conform = elm_conformant_add(ad->win);
elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW);
elm_win_indicator_opacity_set(ad->win, ELM_WIN_INDICATOR_OPAQUE);
evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND,EVAS_HINT
_EXPAND);
elm_win_resize_object_add(ad->win, ad->conform);
evas_object_show(ad->conform);
/* Naviframe */
ad->naviframe = elm_naviframe_add(ad->conform);
elm_object_content_set(ad->conform, ad->naviframe);
evas_object_size_hint_weight_set(ad->naviframe, EVAS_HINT_EXPAND,EVAS_HI
NT_EXPAND);
evas_object_show(ad->naviframe);
// naviframe back callback
eext_object_event_callback_add(ad->naviframe, EEXT_CALLBACK_BACK,eext_na
viframe_back_cb, NULL);
// Box
box = elm_box_add(ad->naviframe);
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);
Evas_Object *clock = create_simple_clock(box);
evas_object_size_hint_weight_set(clock, EVAS_HINT_EXPAND, 0.2);
evas_object_size_hint_align_set(clock, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_pack_end(box, clock);
//add layout to manage the genlist area
layout = elm_layout_add(box);
elm_layout_theme_set(layout, "layout", "application", "default");
evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
list_area = create_list(layout, ad->naviframe);
elm_layout_content_set(layout, "elm.swallow.content", list_area);
evas_object_show(list_area);
evas_object_show(layout);
elm_box_pack_end(box, layout);
// nut back cung callback
ad->nf_it = elm_naviframe_item_push(ad->naviframe, _("Contact"), NULL, N
ULL,
box, "basic");
elm_naviframe_item_pop_cb_set(ad->nf_it, naviframe_pop_cb, ad->win);
//
/* Show window after base gui is set up */
evas_object_show(ad->win);
}
static Evas_Object* create_simple_clock(Evas_Object *parent) {
Evas_Object *box;
Evas_Object *label1, *label2, *label3;
box = elm_box_add(parent);
//create label 1
label1 = elm_label_add(box);
elm_object_text_set(label1,"<font_size=110><color=#1C1C1C>Contact</color
></font_size>");
//add label 1 into the box
elm_box_pack_end(box, label1);
evas_object_show(label1);
evas_object_show(box); //
return box;
}
static void item_selected_cb(void *data, Evas_Object *obj, void *event_info) { /
/data = itemdata
dlog_print(DLOG_INFO, "MyTag", "Item selected");
item_data_s *id = data;
char tmp[256];
snprintf(tmp, 255, "%d", id->index);
dlog_print(DLOG_INFO, "MyTag", tmp);
app_control_h app_control;
app_control_create(&app_control);
app_control_set_operation(app_control, APP_CONTROL_OPERATION_VIEW);
app_control_set_app_id(app_control, "org.tizen.native");
if (app_control_send_launch_request(app_control, NULL, NULL) == APP_CONT
ROL_ERROR_NONE) {
dlog_print(DLOG_INFO, TAG, "Succeeded to launch a calculator app.");
}
else if (app_control_send_launch_request(app_control, NULL, NULL) == APP
_CONTROL_ERROR_APP_NOT_FOUND) {
dlog_print(DLOG_ERROR, TAG, "APP_NOT_FOUND");
}
else if (app_control_send_launch_request(app_control, NULL, NULL) == APP
_CONTROL_ERROR_LAUNCH_REJECTED) {
dlog_print(DLOG_ERROR, TAG, "LAUNCH_REJECTED");
}
else if (app_control_send_launch_request(app_control, NULL, NULL) == APP
_CONTROL_ERROR_PERMISSION_DENIED) {
dlog_print(DLOG_ERROR, TAG, "LAUNCH_REJECTED");
}
}
itemdata->index = i;
it = elm_genlist_item_append (list, itc, itemdata, NULL, ELM_GEN
LIST_ITEM_NONE, item_selected_cb, itemdata);
itemdata->item = it;
}
elm_genlist_item_class_free(itc);
return list;
}
static bool app_create(void *data) {
/* Hook to take necessary actions before main event loop starts
Initialize UI resources and application's data
If this function returns true, the main loop of application starts
If this function returns false, the application is terminated */
appdata_s *ad = data;
create_base_gui(ad);
return true;
}
static void app_control(app_control_h app_control, void *data) {
/* Handle the launch request. */
}
static void app_pause(void *data) {
/* Take necessary actions when application becomes invisible. */
}
static void app_resume(void *data) {
/* Take necessary actions when application becomes visible. */
}
static void app_terminate(void *data) {
/* Release all resources. */
}
static void ui_app_lang_changed(app_event_info_h event_info, void *user_data) {
/*APP_EVENT_LANGUAGE_CHANGED*/
char *locale = NULL;
system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE,
&locale);
elm_language_set(locale);
free(locale);
return;
}
static void ui_app_orient_changed(app_event_info_h event_info, void *user_data)
{
/*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/
return;
}
static void ui_app_region_changed(app_event_info_h event_info, void *user_data)
{
/*APP_EVENT_REGION_FORMAT_CHANGED*/
}