void enna_panel_infos_set_rating(Evas_Object *obj, Enna_Metadata *m) { Evas_Object *rating = NULL; const char *rt; Smart_Data *sd = evas_object_data_get(obj, "sd"); if (!sd) return; rt = enna_metadata_meta_get(m, "rating", 1); if (rt) { char rate[16]; int r; r = MMAX(atoi(rt), 0); r = MMIN(r, 5); memset(rate, '\0', sizeof(rate)); snprintf(rate, sizeof(rate), "rating/%d", r); rating = edje_object_add(evas_object_evas_get(sd->o_edje)); edje_object_file_set(rating, enna_config_theme_get(), rate); } ENNA_OBJECT_DEL(sd->o_rating); sd->o_rating = rating; edje_object_part_swallow(sd->o_edje, "panel.rating.swallow", sd->o_rating); eina_stringshare_del(rt); }
void enna_panel_infos_set_cover(Evas_Object *obj, Enna_Metadata *m) { Evas_Object *cover; char *file = NULL; int from_vfs = 1; const char *cv; Smart_Data *sd = evas_object_data_get(obj, "sd"); if (!sd) return; if (!m) { file = strdup(VIDEO_DEFAULT_COVER); from_vfs = 0; } cv = enna_metadata_meta_get(m, "cover", 1); if (!file && cv) { char dst[1024] = { 0 }; snprintf(dst, sizeof(dst), "%s/covers/%s", enna_util_data_home_get(), cv); if (ecore_file_exists(dst)) file = strdup(dst); } if (!file) { file = strdup(VIDEO_DEFAULT_COVER); from_vfs = 0; } if (from_vfs) { cover = elm_icon_add(sd->o_edje); elm_image_file_set(cover, file, NULL); } else { cover = edje_object_add(evas_object_evas_get(sd->o_edje)); edje_object_file_set(cover, enna_config_theme_get(), file); } ENNA_OBJECT_DEL(sd->o_cover); sd->o_cover = cover; edje_object_part_swallow(sd->o_edje, "panel.cover.swallow", sd->o_cover); /* hide underlying shadows with default movie poster cover */ edje_object_signal_emit(sd->o_edje, (!strcmp(file, VIDEO_DEFAULT_COVER)) ? "shadow,hide" : "shadow,show", "enna"); eina_stringshare_del(cv); eina_stringshare_del(file); }
static Evas_Object * _date_add(Evas_Object *parent) { sd->obj = elm_layout_add(parent); elm_layout_file_set(sd->obj, enna_config_theme_get(), "gadget/date"); evas_object_show(sd->obj); elm_layout_content_set(parent, "enna.swallow.date", sd->obj); return NULL; }
static void flag_set (Smart_Data *sd, Evas_Object **obj, const char *icon, const char *edje) { if (!sd || !obj || !icon || !edje) return; ENNA_OBJECT_DEL(*obj); *obj = elm_icon_add(sd->o_edje); elm_image_file_set(*obj, enna_config_theme_get(), icon); evas_object_show(*obj); elm_layout_content_set(sd->o_edje, edje, *obj); }
static void _button_clicked_play_cb(void *data, Evas_Object *obj, void *event_info) { Smart_Data *sd = data; Evas_Object *ic; ic = elm_icon_add(obj); if (!elm_slideshow_timeout_get(sd->slideshow)) { elm_slideshow_timeout_set(sd->slideshow, sd->delay); elm_image_file_set(ic, enna_config_theme_get(), "icon/mp_pause"); } else { elm_slideshow_timeout_set(sd->slideshow, 0); elm_image_file_set(ic, enna_config_theme_get(), "icon/mp_play"); } elm_object_content_set(sd->btplay, ic); evas_object_size_hint_min_set(sd->btplay, 64, 64); evas_object_size_hint_weight_set(sd->btplay, 0.0, 1.0); evas_object_size_hint_align_set(sd->btplay, 0.5, 0.5); }
Evas_Object * enna_video_flags_add(Evas_Object *parent) { Smart_Data *sd; sd = calloc(1, sizeof(Smart_Data)); sd->o_edje = elm_layout_add(parent); elm_layout_file_set(sd->o_edje, enna_config_theme_get(), EDJE_GROUP); evas_object_show(sd->o_edje); evas_object_data_set(sd->o_edje, "sd", sd); evas_object_event_callback_add(sd->o_edje, EVAS_CALLBACK_DEL, video_flags_del, sd); return sd->o_edje; }
static void _smart_add(Evas_Object * obj) { Smart_Data *sd; sd = calloc(1, sizeof(Smart_Data)); if (!sd) return; sd->o_edje = edje_object_add(evas_object_evas_get(obj)); edje_object_file_set(sd->o_edje, enna_config_theme_get(), "activity/photo/panel_infos"); evas_object_show(sd->o_edje); evas_object_smart_member_add(sd->o_edje, obj); evas_object_smart_data_set(obj, sd); }
/* externally accessible functions */ Evas_Object * enna_panel_infos_add(Evas * evas) { Smart_Data *sd; sd = calloc(1, sizeof(Smart_Data)); sd->o_edje = edje_object_add(evas); edje_object_file_set(sd->o_edje, enna_config_theme_get(), "activity/video/panel_infos"); evas_object_show(sd->o_edje); evas_object_data_set(sd->o_edje, "sd", sd); evas_object_event_callback_add(sd->o_edje, EVAS_CALLBACK_DEL, _del, sd); return sd->o_edje; }
static void bs_service_set_bg (const char *bg) { if (bg) { Evas_Object *old; old = mod->service_bg; mod->service_bg = elm_layout_add(mod->o_layout); elm_layout_file_set(mod->service_bg, enna_config_theme_get(), bg); elm_layout_content_set(mod->o_layout, "service.bg.swallow", mod->service_bg); evas_object_show(mod->service_bg); evas_object_del(old); } else { evas_object_hide(mod->service_bg); elm_layout_file_set(mod->o_layout, "service.bg.swallow", NULL); } }
static void _class_show(void) { /* create the activity content once for all */ if (!mod->o_layout) { mod->o_layout = elm_layout_add(enna->layout); elm_layout_file_set(mod->o_layout, enna_config_theme_get(), "activity/bookstore"); mod->edje = elm_layout_edje_get(mod->o_layout); enna_content_append(ENNA_MODULE_NAME, mod->o_layout); } /* create the menu, once for all */ if (!mod->menu) bs_menu_create(); /* show module */ enna_content_select(ENNA_MODULE_NAME); edje_object_signal_emit(mod->edje, "module,show", "enna"); edje_object_signal_emit(mod->edje, "menu,show", "enna"); }
static void bs_service_ctrl_btn_add (const char *icon, const char *part, void (*cb) (void *data, Evas_Object *obj, void *ev)) { Evas_Object *layout, *ic, *bt; layout = elm_layout_add(enna->layout); ic = elm_icon_add(layout); elm_image_file_set(ic, enna_config_theme_get(), icon); elm_icon_resizable_set(ic, 0, 0); evas_object_show(ic); bt = elm_button_add(layout); evas_object_smart_callback_add(bt, "clicked", cb, NULL); elm_object_part_content_set(bt, NULL, ic); elm_object_style_set(bt, "mediaplayer"); evas_object_size_hint_weight_set(bt, 0.0, 1.0); evas_object_size_hint_align_set(bt, 0.5, 0.5); evas_object_show(bt); elm_layout_content_set(mod->o_layout, part, bt); }
void enna_mainmenu_show(Evas_Object *obj) { Evas_Object *ic; Smart_Data *sd; sd = evas_object_data_get(obj, "mainmenu_data"); if (!sd) return; sd->visible = 1; sd->selected = NULL; enna_gadgets_show(); edje_object_signal_emit(elm_layout_edje_get(enna->layout), "mainmenu,show", "enna"); edje_object_signal_emit(elm_layout_edje_get(enna->layout), "gadgets,show", "enna"); if (enna->o_button_back) { ic = elm_icon_add(enna->o_button_back); elm_image_file_set(ic, enna_config_theme_get(), "ctrl/shutdown"); elm_object_content_set(enna->o_button_back, ic); } }
set_enna_information(b); set_system_information(b); edje_object_part_text_set(obj, "sysinfo.text", b->buf); edje_object_signal_emit(obj, "sysinfo,show", "enna"); enna_buffer_free(b); return ECORE_CALLBACK_RENEW; } /* externally accessible functions */ Evas_Object * info_panel_show(void *data EINA_UNUSED) { /* create the panel main object */ o_edje = edje_object_add(enna->evas); edje_object_file_set(o_edje, enna_config_theme_get (), "activity/configuration/sysinfo"); /* update info once and fire the first callback */ _update_infos_cb(o_edje); update_timer = ecore_timer_add(INFOS_REFRESH_PERIOD, _update_infos_cb, o_edje); return o_edje; } void info_panel_hide(void *data EINA_UNUSED) { ENNA_TIMER_DEL(update_timer); ENNA_OBJECT_DEL(o_edje);
/* externally accessible functions */ Evas_Object * enna_photo_slideshow_add(Evas_Object *parent) { Smart_Data *sd; Evas_Object *bx, *bt, *ic; Evas_Coord w, h; sd = calloc(1, sizeof(Smart_Data)); sd->delay = enna_config->slideshow_delay; sd->layout = elm_layout_add(parent); elm_layout_file_set(sd->layout, enna_config_theme_get(), "enna/slideshow"); evas_object_size_hint_weight_set(sd->layout, 1.0, 1.0); evas_object_show(sd->layout); sd->slideshow = elm_slideshow_add(sd->layout); elm_slideshow_transition_set(sd->slideshow, "horizontal"); elm_slideshow_loop_set(sd->slideshow, 1); // sd->controls = elm_notify_add(sd->layout); // elm_notify_orient_set(sd->controls, ELM_NOTIFY_ORIENT_BOTTOM); evas_object_geometry_get(enna->layout, NULL, NULL, &w, &h); evas_object_move(sd->controls, 0, 0); evas_object_resize(sd->controls, w, h); //elm_object_style_set(sd->controls, "enna_bottom"); /* Fixme : add a config value */ // elm_notify_timeout_set(sd->controls, 10); bx = elm_box_add(sd->layout); elm_box_horizontal_set(bx, 1); // elm_notify_content_set(sd->controls, bx); evas_object_show(bx); evas_object_event_callback_add(bx, EVAS_CALLBACK_MOUSE_IN, _mouse_in, sd); evas_object_event_callback_add(bx, EVAS_CALLBACK_MOUSE_OUT, _mouse_out, sd); ELM_ADD ("icon/mp_prev", _button_clicked_prev_cb); ELM_ADD ("icon/mp_pause", _button_clicked_play_cb); sd->btplay = bt; ELM_ADD ("icon/mp_next", _button_clicked_next_cb); ELM_ADD ("icon/mp_stop", _button_clicked_stop_cb); sd->spin = elm_spinner_add(bx); elm_spinner_label_format_set(sd->spin, "%2.f secs."); evas_object_smart_callback_add(sd->spin, "changed", _spin, sd); elm_spinner_step_set(sd->spin, 1); elm_spinner_min_max_set(sd->spin, 1, 100); elm_spinner_value_set(sd->spin, sd->delay); elm_box_pack_end(bx, sd->spin); evas_object_show(sd->spin); #ifdef FEATURE_ROTATION ELM_ADD ("icon/rotate_ccw", _button_clicked_rotate_ccw_cb); ELM_ADD ("icon/rotate_cw", _button_clicked_rotate_cw_cb); #endif /* FEATURE_ROTATION */ evas_object_show(sd->layout); evas_object_show(sd->slideshow); elm_layout_content_set(sd->layout, "enna.content.swallow", sd->slideshow); evas_object_data_set(sd->layout, "sd", sd); sd->state = 4; /* Catch mouse wheel event */ evas_object_event_callback_add(sd->layout, EVAS_CALLBACK_MOUSE_WHEEL, _mouse_wheel_cb, sd); /* connect to the input signal */ sd->listener = enna_input_listener_add("slideshow", _input_events_cb, sd->layout); enna_input_listener_demote(sd->listener); evas_object_event_callback_add(sd->layout, EVAS_CALLBACK_MOUSE_UP, _controls_show, sd); evas_object_event_callback_add(sd->layout, EVAS_CALLBACK_MOUSE_MOVE, _controls_show, sd); evas_object_event_callback_add(sd->layout, EVAS_CALLBACK_DEL, _sd_del, sd); return sd->layout; }
Evas_Object * enna_browser_bar_add(Evas_Object *parent, Enna_File *file) { Evas_Object *o_layout; Evas_Object *o_ic; Evas_Object *o_seg; Evas_Object *o_box; Evas_Object *o_entry; o_layout = elm_layout_add(parent); elm_layout_file_set(o_layout, enna_config_theme_get(), "enna/browser/header"); evas_object_show(o_layout); o_box = elm_box_add(o_layout); elm_box_horizontal_set(o_box, EINA_TRUE); evas_object_show(o_box); evas_object_size_hint_align_set(o_box, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(o_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_box_padding_set(o_box, 8, 8); o_seg = elm_button_add(o_layout); o_ic = elm_icon_add(o_layout); evas_object_show(o_ic); elm_icon_standard_set(o_ic, "go-up"); elm_object_content_set(o_seg, o_ic); elm_object_style_set(o_seg, "black"); evas_object_show(o_seg); elm_box_pack_end(o_box, o_seg); evas_object_smart_callback_add(o_seg, "clicked", _up_clicked_cb, o_layout); evas_object_size_hint_min_set(o_seg, 40, 40); o_seg = elm_segment_control_add(o_layout); o_ic = elm_icon_add(o_layout); evas_object_show(o_ic); elm_icon_standard_set(o_ic, "go-previous"); elm_segment_control_item_add(o_seg, o_ic, NULL); o_ic = elm_icon_add(o_layout); evas_object_show(o_ic); elm_icon_standard_set(o_ic, "go-next"); elm_segment_control_item_add(o_seg, o_ic, NULL); evas_object_show(o_seg); evas_object_smart_callback_add(o_seg, "changed", _browse_icons_changed_cb, o_layout); evas_object_data_set(o_layout, "browse", o_seg); elm_box_pack_end(o_box, o_seg); evas_object_size_hint_min_set(o_seg, 80, 40); o_entry = elm_entry_add(o_layout); elm_entry_single_line_set(o_entry, EINA_TRUE); if (file) elm_object_text_set(o_entry, file->mrl); evas_object_size_hint_weight_set(o_entry, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(o_entry, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show(o_entry); elm_box_pack_end(o_box, o_entry); evas_object_data_set(o_layout, "entry", o_entry); evas_object_smart_callback_add(o_entry, "activated", _entry_activated_cb, o_layout); o_seg = elm_segment_control_add(o_layout); o_ic = elm_icon_add(o_layout); evas_object_show(o_ic); elm_icon_file_set(o_ic, enna_config_theme_get(), "icon/view_list"); elm_segment_control_item_add(o_seg, o_ic, NULL); o_ic = elm_icon_add(o_layout); evas_object_show(o_ic); elm_icon_file_set(o_ic, enna_config_theme_get(), "icon/view_grid"); elm_segment_control_item_add(o_seg, o_ic, NULL); evas_object_show(o_seg); elm_box_pack_end(o_box, o_seg); evas_object_smart_callback_add(o_seg, "changed", _view_mode_changed_cb, o_layout); evas_object_data_set(o_layout, "mode", o_seg); evas_object_size_hint_min_set(o_seg, 80, 40); o_seg = elm_button_add(o_layout); o_ic = elm_icon_add(o_layout); evas_object_show(o_ic); elm_icon_file_set(o_ic, enna_config_theme_get(), "icon/search"); elm_object_content_set(o_seg, o_ic); elm_object_style_set(o_seg, "black"); evas_object_show(o_seg); elm_box_pack_end(o_box, o_seg); evas_object_size_hint_min_set(o_seg, 40, 40); o_seg = elm_button_add(o_layout); o_ic = elm_icon_add(o_layout); evas_object_show(o_ic); elm_icon_file_set(o_ic, enna_config_theme_get(), "icon/settings"); elm_object_content_set(o_seg, o_ic); elm_object_style_set(o_seg, "black"); evas_object_show(o_seg); elm_box_pack_end(o_box, o_seg); evas_object_size_hint_min_set(o_seg, 40, 40); elm_object_part_content_set(o_layout, "enna.swallow.content", o_box); return o_layout; }