EAPI_MAIN int elm_main(int argc, char **argv) { Evas_Object *win, *bg, *prefs, *layout; Elm_Prefs_Data *prefs_data; win = elm_win_add(NULL, "Prefs", ELM_WIN_BASIC); elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); elm_win_title_set(win, "Prefs Example 03"); elm_win_autodel_set(win, EINA_TRUE); bg = elm_bg_add(win); elm_win_resize_object_add(win, bg); evas_object_size_hint_min_set(bg, WIDTH, HEIGHT); evas_object_size_hint_max_set(bg, WIDTH, HEIGHT); evas_object_show(bg); layout = elm_layout_add(win); elm_layout_file_set(layout, "prefs_example_03.edj", "prefs_edje"); prefs = elm_prefs_add(win); evas_object_size_hint_weight_set(prefs, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_resize(prefs, WIDTH, HEIGHT); evas_object_show(prefs); evas_object_smart_callback_add(prefs, "page,loaded", _page_loaded_cb, layout); evas_object_smart_callback_add(prefs, "item,changed", _item_changed_cb, layout); elm_prefs_autosave_set(prefs, EINA_TRUE); prefs_data = elm_prefs_data_new("./prefs_example_03.cfg", NULL, EET_FILE_MODE_READ_WRITE); elm_prefs_file_set(prefs, "prefs_example_03.epb", NULL); elm_prefs_data_set(prefs, prefs_data); elm_prefs_item_swallow(prefs, "main:swal", layout); _update_animation_time(prefs, layout); _update_animation(prefs, layout); evas_object_resize(win, WIDTH, HEIGHT); evas_object_show(win); elm_run(); elm_prefs_data_unref(prefs_data); elm_shutdown(); return 0; }
static void _item_changed_cb(void *data, Evas_Object *obj, void *event_info) { const char *item = event_info; Evas_Object *layout = data; if (!strcmp(item, "main:config:options:animation_time")) _update_animation_time(obj, layout); else if (!strcmp(item, "main:config:options:animation")) _update_animation(obj, layout); }
static void _update(Evas_Object *prefs, Evas_Object *layout) { _update_animation(prefs, layout); _update_animation_time(prefs, layout); }
void AnimationPlayerEditor::_update_player() { if (!player) return; updating=true; List<StringName> animlist; player->get_animation_list(&animlist); animation->clear(); nodename->set_text(player->get_name()); stop->set_disabled(animlist.size()==0); play->set_disabled(animlist.size()==0); play_bw->set_disabled(animlist.size()==0); play_bw_from->set_disabled(animlist.size()==0); play_from->set_disabled(animlist.size()==0); autoplay->set_disabled(animlist.size()==0); duplicate_anim->set_disabled(animlist.size()==0); rename_anim->set_disabled(animlist.size()==0); blend_anim->set_disabled(animlist.size()==0); remove_anim->set_disabled(animlist.size()==0); resource_edit_anim->set_disabled(animlist.size()==0); save_anim->set_disabled(animlist.size() == 0); int active_idx=-1; for (List<StringName>::Element *E=animlist.front();E;E=E->next()) { if (player->get_autoplay()==E->get()) animation->add_icon_item(autoplay_icon,E->get()); else animation->add_item(E->get()); if (player->get_current_animation()==E->get()) active_idx=animation->get_item_count()-1; } updating=false; if (active_idx!=-1) { animation->select(active_idx); autoplay->set_pressed(animation->get_item_text(active_idx)==player->get_autoplay()); _animation_selected(active_idx); } else if (animation->get_item_count()>0){ animation->select(0); autoplay->set_pressed(animation->get_item_text(0)==player->get_autoplay()); _animation_selected(0); } //pause->set_pressed(player->is_paused()); if (edit_anim->is_pressed()) { if (animation->get_item_count()) { String current = animation->get_item_text(animation->get_selected()); Ref<Animation> anim = player->get_animation(current); editor->get_animation_editor()->set_animation(anim); Node *root = player->get_node(player->get_root()); if (root) { editor->get_animation_editor()->set_root(root); } } } _update_animation(); }