int main(void) { Evas_Object *o; Ecore_Evas *ee; int r; evas_init(); ecore_init(); ecore_evas_init(); edje_init(); ee = ecore_evas_new(NULL, 0, 0, 320, 240, NULL); if (!ee) return -1; o = edje_object_add(ecore_evas_get(ee)); if (!edje_object_file_set(o, "test.edj", "main")) { fprintf(stderr, "could not load edje: %d\n", edje_object_load_error_get(o)); return -2; } evas_object_resize(o, 320, 240); evas_object_show(o); ecore_evas_alpha_set(ee, 1); ecore_evas_borderless_set(ee, 1); ecore_evas_show(ee); ecore_main_loop_begin(); return 0; }
EAPI Eina_Bool e_icon_file_edje_set(Evas_Object *obj, const char *file, const char *part) { E_Smart_Data *sd; if (evas_object_smart_smart_get(obj) != _e_smart) SMARTERR(0); if (!(sd = evas_object_smart_data_get(obj))) return EINA_FALSE; /* smart code here */ if (sd->obj) evas_object_del(sd->obj); sd->loading = 0; if (sd->fdo) { eina_stringshare_del(sd->fdo); sd->fdo = NULL; } if (sd->timer) ecore_timer_del(sd->timer); sd->timer = NULL; if (sd->guessing_animation) ecore_timer_del(sd->guessing_animation); sd->guessing_animation = NULL; sd->frame = 0; sd->frame_count = 0; sd->edje = EINA_TRUE; sd->obj = edje_object_add(evas_object_evas_get(obj)); edje_object_file_set(sd->obj, file, part); if (edje_object_load_error_get(sd->obj) != EDJE_LOAD_ERROR_NONE) return EINA_FALSE; if (evas_object_visible_get(obj)) evas_object_show(sd->obj); evas_object_smart_member_add(sd->obj, obj); _e_icon_smart_reconfigure(sd); return EINA_TRUE; }
int emusic_slider_creat(Em_Smart_Data *em) { Evas_Object *slider, *obj; sd = calloc(1, sizeof(Smart_Data)); if (!sd) return FALSE; obj = edje_object_add(em->evas); if (!edje_object_file_set(obj, emusic_config_theme_get(), "widget/slider")) { int err = edje_object_load_error_get(obj); const char *errmsg = edje_load_error_str(err); ERR("cannot load theme '%s', group '%s': %s\n", emusic_config_theme_get(),"widget/slider", errmsg); evas_object_del(obj); return NULL; } em->slider = obj; slider = elm_slider_add(obj); evas_object_smart_callback_add(slider, "changed", _slider_changed_cb, em); elm_slider_label_set(slider, "Label"); elm_slider_unit_format_set(slider, "%1.1f units"); elm_slider_span_size_set(slider, 120); evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, 0.5); evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); edje_object_part_swallow(obj, "slider.swallow", slider); evas_object_show(slider); sd->slider = slider; return 1; }
void Object::setFile( const std::string &filename, const std::string &groupname ) { if (!edje_object_file_set( o, filename.c_str (), groupname.c_str () )) { throw LoadException (filename, groupname, edje_object_load_error_get(o)); } }
int emusic_playlist_ctl_creat(Em_Smart_Data *em) { Evas_Object *obj, *box, *ic, *bt; sd = calloc(1, sizeof(Smart_Data)); if (!sd) return FALSE; obj = edje_object_add(em->evas); if (!edje_object_file_set(obj, emusic_config_theme_get(), "widget/playlist_ctl")) { int err = edje_object_load_error_get(obj); const char *errmsg = edje_load_error_str(err); ERR("cannot load theme '%s', group '%s': %s\n", emusic_config_theme_get(),"widget/playlist_ctl", errmsg); evas_object_del(obj); return NULL; } em->playlist_ctl = obj; box = elm_box_add(obj); elm_box_homogenous_set(box, 0); elm_box_horizontal_set(box, 1); ic = elm_icon_add(obj); elm_icon_file_set(ic, emusic_config_theme_get(), "icon/mp_playlist"); bt = elm_button_add(obj); evas_object_smart_callback_add(bt, "clicked", _button_clicked_playlist_cb, em); elm_button_icon_set(bt, ic); elm_box_pack_end(box, bt); evas_object_show(bt); evas_object_show(ic); ic = elm_icon_add(obj); elm_icon_file_set(ic, emusic_config_theme_get(), "icon/mp_repeat_off"); bt = elm_button_add(obj); evas_object_smart_callback_add(bt, "clicked", _button_clicked_repeat_cb, em); elm_button_icon_set(bt, ic); elm_box_pack_end(box, bt); evas_object_show(bt); evas_object_show(ic); sd->repeat_btn = bt; ic = elm_icon_add(obj); elm_icon_file_set(ic, emusic_config_theme_get(), "icon/mp_shuffle_off"); bt = elm_button_add(obj); evas_object_smart_callback_add(bt, "clicked", _button_clicked_shuffle_cb, em); elm_button_icon_set(bt, ic); elm_box_pack_end(box, bt); evas_object_show(bt); evas_object_show(ic); sd->shuffle_btn = bt; edje_object_part_swallow(obj, "box.swallow", box); evas_object_show(box); return TRUE; }
Eina_Bool theme_apply(Evas_Object *edje, const Config *config, const char *group) { const char *errmsg; EINA_SAFETY_ON_NULL_RETURN_VAL(edje, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(config, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(group, EINA_FALSE); if (edje_object_file_set(edje, config_theme_path_get(config), group)) return EINA_TRUE; errmsg = edje_load_error_str(edje_object_load_error_get(edje)); INF("Cannot find theme: file=%s group=%s error='%s', trying default...", config_theme_path_get(config), group, errmsg); if (edje_object_file_set(edje, config_theme_path_default_get(config), group)) return EINA_TRUE; errmsg = edje_load_error_str(edje_object_load_error_get(edje)); ERR(_("Could not load any theme for group=%s: %s"), group, errmsg); return EINA_FALSE; }
END_TEST START_TEST(edje_test_edje_load) { Evas *evas = EDJE_TEST_INIT_EVAS(); Edje_Load_Error error; Evas_Object *obj; obj = edje_object_add(evas); edje_object_file_set(obj, "blaoeuaeoueoaua.edj", "test"); error = edje_object_load_error_get(obj); fail_if(error != EDJE_LOAD_ERROR_DOES_NOT_EXIST); EDJE_TEST_FREE_EVAS(); }
static Eina_Bool _parse(void) { Evas_Object *ed; Eina_Bool ret; ed = edje_edit_object_add(ecore_evas_get(ee)); if (!edje_object_file_set(ed, file, group)) { Edje_Load_Error err = edje_object_load_error_get(ed); const char *errmsg = edje_load_error_str(err); ERR("could not load group '%s' from file '%s': %s", group, file, errmsg); evas_object_del(ed); return EINA_FALSE; } ret = _parts_parse(ed) && _programs_parse(ed); evas_object_del(ed); return ret; }
static Evas_Object *create_my_group(Evas *canvas, const char *text) { Evas_Object *edje; edje = edje_object_add(canvas); if (!edje) { EINA_LOG_CRIT("could not create edje object!"); return NULL; } if (!edje_object_file_set(edje, PACKAGE_DATA_DIR"/edje_example.edj", "my_group")) { int err = edje_object_load_error_get(edje); const char *errmsg = edje_load_error_str(err); EINA_LOG_ERR("could not load 'my_group' from edje_example.edj: %s", errmsg); evas_object_del(edje); return NULL; } if (text) { if (!edje_object_part_text_set(edje, "text", text)) { EINA_LOG_WARN("could not set the text. " "Maybe part 'text' does not exist?"); } } evas_object_move(edje, 0, 0); evas_object_resize(edje, WIDTH, HEIGHT); evas_object_show(edje); return edje; }
/* Win */ int creat_win(Em_Smart_Data *em) { Evas_Object *obj, *win; win = elm_win_add(NULL, "e_music", ELM_WIN_BASIC); em->win = win; em->evas = evas_object_evas_get(win); em->layout = elm_layout_add(win); if (!em->layout) { ERR("could not create layout.\n"); evas_object_del(win); return 0; } evas_object_size_hint_weight_set(em->layout, 1.0, 1.0); elm_win_resize_object_add(win, em->layout); evas_object_show(em->layout); em->edje = elm_layout_edje_get(em->layout); if (!elm_layout_file_set(em->layout, emusic_config_theme_get(), "emusic/main")) { int err = edje_object_load_error_get(em->edje); const char *errmsg = edje_load_error_str(err); ERR("cannot load theme '%s', group '%s': %s\n", emusic_config_theme_get(), "emusic/main", errmsg); evas_object_del(win); return 0; } Evas_Object *pg = elm_pager_add(win); em->pager = pg; elm_layout_content_set(em->layout, "pager", pg); elm_object_style_set(pg, "slide_invisible"); evas_object_show(pg); if (emusic_playlist_toolbar_creat(em)) { elm_pager_content_push(pg, em->playlist_view); } else { ERR("could not create playlist dialog.\n"); } Evas_Object *notify = emusic_notify_creat(em); if (notify) { //edje_object_part_swallow(em->edje, _EDJE_PART_NOTIFY, notify); } else { ERR("could not create notify.\n"); } if (emusic_event_bg_creat(em)) { edje_object_part_swallow(em->edje, "event_bg", em->event_bg); } else { ERR("could not create event bg.\n"); } elm_win_title_set(win, "E_Music"); evas_object_smart_callback_add(win, "delete,request", _win_del, NULL); evas_object_resize(win, 800, 400); evas_object_show(win); return 1; }
int emusic_play_menu_creat(Em_Smart_Data *em) { Evas_Object *mediaplayer, *ic, *btn; mediaplayer = edje_object_add(em->evas); if (!edje_object_file_set(mediaplayer, emusic_config_theme_get(), "main/mediaplayer_view")) { int err = edje_object_load_error_get(mediaplayer); const char *errmsg = edje_load_error_str(err); ERR("cannot load theme '%s', group '%s': %s\n", emusic_config_theme_get(), "main/mediaplayer_view", errmsg); evas_object_del(mediaplayer); return 0; } evas_object_size_hint_weight_set(mediaplayer, 1.0, 1.0); evas_object_show(mediaplayer); em->mediaplayer = mediaplayer; /* Setting button */ ic = elm_icon_add(mediaplayer); elm_icon_file_set(ic, emusic_config_theme_get(), "icon/setting"); btn = elm_button_add(mediaplayer); evas_object_smart_callback_add(btn, "clicked", _button_clicked_setting_cb, em); evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_button_icon_set(btn, ic); elm_object_style_set(btn, "simple"); edje_object_part_swallow(mediaplayer, "setting_bt.swallow", btn); evas_object_show(btn); evas_object_show(ic); if (emusic_playlist_ctl_creat(em)) { edje_object_part_swallow(mediaplayer, "playlist_ctl.swallow", em->playlist_ctl); } else { ERR("could not create playlist_ctl widget.\n"); } if (emusic_info_creat(em)) { edje_object_part_swallow(mediaplayer, "songs_ifo.swallow", em->info); } else { ERR("could not create info widget.\n"); } if (emusic_cover_art_creat(em)) { edje_object_part_swallow(mediaplayer, "cover_art.swallow", em->cover_art); } else { ERR("could not create cover_art widget.\n"); } if (emusic_play_ctl_creat(em)) { edje_object_part_swallow(mediaplayer, "play_ctl.swallow", em->play_ctl); } else { ERR("could not create play_ctl widget.\n"); } if (emusic_slider_creat(em)) { edje_object_part_swallow(mediaplayer, "slider.swallow", em->slider); } else { ERR("could not create slider widget.\n"); } /* call the backend-callback to update information */ emusic_callback_update(em); return TRUE; }
EINA_LIST_FREE(sources, rp) { /* XXX: curr_item and pack_it don't require to be NULL since * XXX: they are just used when source != NULL and type == BOX, * XXX: and they're always set in this case, but GCC fails to * XXX: notice that, so let's shut it up */ Edje_Pack_Element **curr_item = NULL; unsigned int item_count = 0; Edje_Pack_Element *pack_it = NULL; const char *source = NULL; switch (rp->part->type) { case EDJE_PART_TYPE_GROUP: source = rp->part->source; break; case EDJE_PART_TYPE_BOX: case EDJE_PART_TYPE_TABLE: if (rp->part->items) { curr_item = rp->part->items; item_count = rp->part->items_count; if (item_count > 0) { pack_it = *curr_item; source = pack_it->source; item_count--; curr_item++; } } break; default: /* This list should only be filled by group, box or table, nothing else. */ abort(); continue; } while (source) { Eina_List *l; Evas_Object *child_obj; const char *group_path_entry = eina_stringshare_add(source); const char *data; if (!group_path) { group_path = eina_list_append(NULL, eina_stringshare_add(group)); group_path_started = 1; } /* make sure that this group isn't already in the tree of parents */ EINA_LIST_FOREACH(group_path, l, data) { if (data == group_path_entry) { ERR("recursive loop group '%s' already included inside part '%s' of group '%s' from file '%s'", group_path_entry, rp->part->name, group, file); textblocks = eina_list_free(textblocks); externals = eina_list_free(externals); sources = eina_list_free(sources); _edje_thaw(ed); _edje_unblock(ed); _edje_unref(ed); _edje_file_del(ed); eina_stringshare_del(group_path_entry); if (group_path_started) { eina_stringshare_del(eina_list_data_get(group_path)); eina_list_free(group_path); } ed->load_error = EDJE_LOAD_ERROR_RECURSIVE_REFERENCE; evas_event_thaw(tev); evas_event_thaw_eval(tev); return 0; } } child_obj = edje_object_add(ed->base.evas); group_path = eina_list_append(group_path, group_path_entry); if (rp->part->type == EDJE_PART_TYPE_GROUP) { _edje_real_part_swallow(rp, child_obj, EINA_FALSE); } if (!_edje_object_file_set_internal(child_obj, file, source, rp->part->name, group_path)) { ERR("impossible to set part '%s' of group '%s' from file '%s' to '%s'", rp->part->name, group_path_entry, file, source); textblocks = eina_list_free(textblocks); externals = eina_list_free(externals); sources = eina_list_free(sources); _edje_thaw(ed); _edje_unblock(ed); _edje_unref(ed); _edje_file_del(ed); if (group_path_started) { while (group_path) { eina_stringshare_del(eina_list_data_get(group_path)); group_path = eina_list_remove_list(group_path, group_path); } } ed->load_error = edje_object_load_error_get(child_obj); evas_object_del(child_obj); evas_event_thaw(tev); evas_event_thaw_eval(tev); return 0; } group_path = eina_list_remove(group_path, group_path_entry); eina_stringshare_del(group_path_entry); edje_object_propagate_callback_add(child_obj, _cb_signal_repeat, obj); if (rp->part->type == EDJE_PART_TYPE_GROUP) { _edje_real_part_swallow(rp, child_obj, EINA_TRUE); _edje_subobj_register(ed, child_obj); source = NULL; } else { pack_it->parent = rp; _edje_object_pack_item_hints_set(child_obj, pack_it); if (pack_it->name) evas_object_name_set(child_obj, pack_it->name); if (rp->part->type == EDJE_PART_TYPE_BOX) { _edje_real_part_box_append(rp, child_obj); evas_object_data_set(child_obj, "\377 edje.box_item", pack_it); } else if (rp->part->type == EDJE_PART_TYPE_TABLE) { _edje_real_part_table_pack(rp, child_obj, pack_it->col, pack_it->row, pack_it->colspan, pack_it->rowspan); evas_object_data_set(child_obj, "\377 edje.table_item", pack_it); } _edje_subobj_register(ed, child_obj); evas_object_show(child_obj); rp->items = eina_list_append(rp->items, child_obj); if (item_count > 0) { pack_it = *curr_item; source = pack_it->source; curr_item++; item_count--; } else { source = NULL; curr_item = NULL; pack_it = NULL; } } } }