rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=b35d5b9a42fdd608ed47436ed7938afe690cf068
commit b35d5b9a42fdd608ed47436ed7938afe690cf068 Author: Vyacheslav Reutskiy <v.reuts...@samsung.com> Date: Tue May 17 15:47:19 2016 +0300 sound_manager: made the manager static Change-Id: I419d9f75721dfa7fd5bc64a98a18dc1e1bdcc44d --- src/bin/ui/sound_manager.c | 308 +++++++++++++++++++++------------------------ 1 file changed, 140 insertions(+), 168 deletions(-) diff --git a/src/bin/ui/sound_manager.c b/src/bin/ui/sound_manager.c index d2cb818..eebf8ce 100644 --- a/src/bin/ui/sound_manager.c +++ b/src/bin/ui/sound_manager.c @@ -51,7 +51,6 @@ struct _Sound_Manager Evas_Object *panes; Evas_Object *popup; Evas_Object *popup_btn_add; - Evas_Object *btn_add; Evas_Object *btn_del; Evas_Object *menu; Evas_Object *tone_entry, *frq_entry; @@ -64,6 +63,7 @@ struct _Sound_Manager const char *snd_src; }; +static Sound_Manager mng; static Elm_Gengrid_Item_Class *gic = NULL; static Elm_Gengrid_Item_Class *ggic = NULL; @@ -117,16 +117,13 @@ _sound_format_get(Eina_Stringshare *snd_src) } static void -_grid_sel_cb(void *data, +_grid_sel_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info) { - Sound_Manager *edit = (Sound_Manager *)data; External_Resource *res = NULL; Sound_Data *snd; - assert(edit != NULL); - snd = elm_object_item_data_get((Elm_Gengrid_Item *)event_info); switch (snd->type) { @@ -140,24 +137,23 @@ _grid_sel_cb(void *data, assert(res != NULL); - if (!res->used_in) elm_object_disabled_set(edit->btn_del, false); + if (!res->used_in) elm_object_disabled_set(mng.btn_del, false); evas_object_smart_callback_call(ap.win, SIGNAL_SOUND_SELECT, snd); } static void -_sound_manager_init(Sound_Manager *edit) +_sound_manager_init(void) { Eina_List *l; External_Resource *sample; Tone_Resource *tone; Sound_Data *snd; - assert(edit != NULL); assert(ap.project != NULL); snd = (Sound_Data *)mem_calloc(1, sizeof(Sound_Data)); snd->name = eina_stringshare_add(_("Sound Samples")); - elm_gengrid_item_append(edit->gengrid, ggic, snd, NULL, NULL); + elm_gengrid_item_append(mng.gengrid, ggic, snd, NULL, NULL); EINA_LIST_FOREACH(ap.project->sounds, l, sample) { snd = (Sound_Data *)mem_calloc(1, sizeof(Sound_Data)); @@ -165,12 +161,12 @@ _sound_manager_init(Sound_Manager *edit) snd->type_label = _sound_format_get(sample->source); snd->type = SOUND_TYPE_SAMPLE; snd->resource = (Resource *)sample; - elm_gengrid_item_append(edit->gengrid, gic, snd, _grid_sel_cb, edit); + elm_gengrid_item_append(mng.gengrid, gic, snd, _grid_sel_cb, NULL); } snd = (Sound_Data *)mem_calloc(1, sizeof(Sound_Data)); snd->name = eina_stringshare_add(_("Sound Tones")); - edit->tone_header = elm_gengrid_item_append(edit->gengrid, ggic, snd, NULL, NULL); + mng.tone_header = elm_gengrid_item_append(mng.gengrid, ggic, snd, NULL, NULL); EINA_LIST_FOREACH(ap.project->tones, l, tone) { snd = (Sound_Data *)mem_calloc(1, sizeof(Sound_Data)); @@ -178,23 +174,21 @@ _sound_manager_init(Sound_Manager *edit) snd->type_label = eina_stringshare_printf("%d", tone->freq); snd->type = SOUND_TYPE_TONE; snd->resource = (Resource *)tone; - elm_gengrid_item_append(edit->gengrid, gic, snd, _grid_sel_cb, edit); + elm_gengrid_item_append(mng.gengrid, gic, snd, _grid_sel_cb, NULL); } } static void -_grid_unsel_cb(void *data, +_grid_unsel_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - Sound_Manager *editor = (Sound_Manager *)data; - - elm_object_disabled_set(editor->btn_del, true); + elm_object_disabled_set(mng.btn_del, true); evas_object_smart_callback_call(ap.win, SIGNAL_SOUND_UNSELECTED, NULL); } static Eina_Bool -_add_sample_done(void *data, +_add_sample_done(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info) { @@ -207,9 +201,6 @@ _add_sample_done(void *data, Eina_List *selected_list = (Eina_List *)event_info; const char *selected = eina_list_data_get(selected_list); - Sound_Manager *edit = (Sound_Manager *)data; - - assert(edit != NULL); samples_list = ap.project->sounds; @@ -263,7 +254,7 @@ _add_sample_done(void *data, snd->type_label = _sound_format_get(res->source); snd->type = SOUND_TYPE_SAMPLE; snd->resource = (Resource *)res; - elm_gengrid_item_insert_before(edit->gengrid, gic, snd, edit->tone_header, _grid_sel_cb, edit); + elm_gengrid_item_insert_before(mng.gengrid, gic, snd, mng.tone_header, _grid_sel_cb, NULL); editor_save(ap.project->global_object); TODO("Remove this line once edje_edit_sound_sample_add would be added into Editor Module and saving would work properly") @@ -273,36 +264,31 @@ _add_sample_done(void *data, } static void -_popup_close(void *data) +_popup_close(void *data __UNUSED__) { - Sound_Manager *edit = (Sound_Manager *)data; - - assert(edit != NULL); - assert(edit->tone_validator != NULL); - assert(edit->frq_validator != NULL); + assert(mng.tone_validator != NULL); + assert(mng.frq_validator != NULL); - evas_object_del(edit->popup); + evas_object_del(mng.popup); - elm_validator_regexp_free(edit->tone_validator); - elm_validator_regexp_free(edit->frq_validator); - edit->tone_validator = NULL; - edit->frq_validator = NULL; + elm_validator_regexp_free(mng.tone_validator); + elm_validator_regexp_free(mng.frq_validator); + mng.tone_validator = NULL; + mng.frq_validator = NULL; - elm_gengrid_item_selected_set(elm_gengrid_last_item_get(edit->gengrid), true); + elm_gengrid_item_selected_set(elm_gengrid_last_item_get(mng.gengrid), true); } static void -_add_tone_cancel(void *data, +_add_tone_cancel(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - Sound_Manager *edit = (Sound_Manager *)data; - - ecore_job_add(_popup_close, edit); + ecore_job_add(_popup_close, NULL); } static void -_add_tone_done(void *data, +_add_tone_done(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { @@ -313,11 +299,7 @@ _add_tone_done(void *data, Eina_Bool exist = false; Tone_Resource *tone; - Sound_Manager *edit = (Sound_Manager *)data; - - assert(edit != NULL); - - tone_name = eina_stringshare_add(elm_entry_entry_get(edit->tone_entry)); + tone_name = eina_stringshare_add(elm_entry_entry_get(mng.tone_entry)); tones_list = ap.project->tones; EINA_LIST_FOREACH(tones_list, l, tone) @@ -333,7 +315,7 @@ _add_tone_done(void *data, return; } - frq = atoi(elm_entry_entry_get(edit->frq_entry)); + frq = atoi(elm_entry_entry_get(mng.frq_entry)); edje_edit_sound_tone_add(ap.project->global_object, tone_name, frq); tone = (Tone_Resource *)mem_calloc(1, sizeof(Tone_Resource)); @@ -343,16 +325,16 @@ _add_tone_done(void *data, snd = (Sound_Data *)mem_malloc(sizeof(Sound_Data)); snd->name = eina_stringshare_ref(tone->name); - snd->type_label = eina_stringshare_add(elm_entry_entry_get(edit->frq_entry)); + snd->type_label = eina_stringshare_add(elm_entry_entry_get(mng.frq_entry)); snd->type = SOUND_TYPE_TONE; snd->resource = (Resource *)tone; - elm_gengrid_item_append(edit->gengrid, gic, snd, _grid_sel_cb, edit); + elm_gengrid_item_append(mng.gengrid, gic, snd, _grid_sel_cb, NULL); editor_save(ap.project->global_object); TODO("Remove this line once edje_edit_image_add would be added into Editor Module and saving would work properly") ap.project->changed = true; - ecore_job_add(_popup_close, edit); + ecore_job_add(_popup_close, NULL); } static void @@ -368,24 +350,18 @@ _validation(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - Sound_Manager *edit = (Sound_Manager *)data; - - if ((elm_validator_regexp_status_get(edit->tone_validator) != ELM_REG_NOERROR) || - (elm_validator_regexp_status_get(edit->frq_validator) != ELM_REG_NOERROR)) - elm_object_disabled_set(edit->popup_btn_add, true); + if ((elm_validator_regexp_status_get(mng.tone_validator) != ELM_REG_NOERROR) || + (elm_validator_regexp_status_get(mng.frq_validator) != ELM_REG_NOERROR)) + elm_object_disabled_set(mng.popup_btn_add, true); else - elm_object_disabled_set(edit->popup_btn_add, false); + elm_object_disabled_set(mng.popup_btn_add, false); } static void -_tone_add_cb(void *data, +_tone_add_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - Sound_Manager *edit = data; - - assert(edit != NULL); - Evas_Object *popup, *box, *item, *bt_no; Eina_Stringshare *title; @@ -393,42 +369,42 @@ _tone_add_cb(void *data, elm_popup_orient_set(popup, ELM_POPUP_ORIENT_CENTER); title = eina_stringshare_add(_("Add new tone to the project")); elm_object_part_text_set(popup, "title,text", title); - edit->popup = popup; + mng.popup = popup; - assert(edit->tone_validator == NULL); - assert(edit->frq_validator == NULL); - edit->tone_validator = elm_validator_regexp_new(NAME_REGEX, NULL); - edit->frq_validator = elm_validator_regexp_new(FREQUENCY_REGEX, NULL); + assert(mng.tone_validator == NULL); + assert(mng.frq_validator == NULL); + mng.tone_validator = elm_validator_regexp_new(NAME_REGEX, NULL); + mng.frq_validator = elm_validator_regexp_new(FREQUENCY_REGEX, NULL); BOX_ADD(popup, box, false, false); elm_object_content_set(popup, box); LAYOUT_PROP_ADD(box, _("Tone name:"), "property", "1swallow") - ENTRY_ADD(item, edit->tone_entry, true); - eo_event_callback_add(edit->tone_entry, ELM_ENTRY_EVENT_VALIDATE, elm_validator_regexp_helper, edit->tone_validator); - evas_object_smart_callback_add(edit->tone_entry, "changed", _validation, edit); - elm_object_part_text_set(edit->tone_entry, "guide", _("Type a new tone name")); + ENTRY_ADD(item, mng.tone_entry, true); + eo_event_callback_add(mng.tone_entry, ELM_ENTRY_EVENT_VALIDATE, elm_validator_regexp_helper, mng.tone_validator); + evas_object_smart_callback_add(mng.tone_entry, "changed", _validation, NULL); + elm_object_part_text_set(mng.tone_entry, "guide", _("Type a new tone name")); /* need to manualy set not valid string for triggered validator */ - elm_entry_entry_set(edit->tone_entry, NULL); - elm_object_part_content_set(item, "elm.swallow.content", edit->tone_entry); + elm_entry_entry_set(mng.tone_entry, NULL); + elm_object_part_content_set(item, "elm.swallow.content", mng.tone_entry); elm_box_pack_end(box, item); LAYOUT_PROP_ADD(box, _("Frequency:"), "property", "1swallow") - ENTRY_ADD(item, edit->frq_entry, true); - eo_event_callback_add(edit->frq_entry, ELM_ENTRY_EVENT_VALIDATE, elm_validator_regexp_helper, edit->frq_validator); - evas_object_smart_callback_add(edit->frq_entry, "changed", _validation, edit); - elm_object_part_text_set(edit->frq_entry, "guide", _("Type a frequency (20 - 20000)")); + ENTRY_ADD(item, mng.frq_entry, true); + eo_event_callback_add(mng.frq_entry, ELM_ENTRY_EVENT_VALIDATE, elm_validator_regexp_helper, mng.frq_validator); + evas_object_smart_callback_add(mng.frq_entry, "changed", _validation, NULL); + elm_object_part_text_set(mng.frq_entry, "guide", _("Type a frequency (20 - 20000)")); /* need to manualy set not valid string for triggered validator */ - elm_entry_entry_set(edit->frq_entry, NULL); - elm_object_part_content_set(item, "elm.swallow.content", edit->frq_entry); + elm_entry_entry_set(mng.frq_entry, NULL); + elm_object_part_content_set(item, "elm.swallow.content", mng.frq_entry); elm_box_pack_end(box, item); - BUTTON_ADD(popup, edit->popup_btn_add, _("Add")); - evas_object_smart_callback_add (edit->popup_btn_add, "clicked", _add_tone_done, edit); - elm_object_part_content_set(popup, "button1", edit->popup_btn_add); - elm_object_disabled_set(edit->popup_btn_add, true); + BUTTON_ADD(popup, mng.popup_btn_add, _("Add")); + evas_object_smart_callback_add (mng.popup_btn_add, "clicked", _add_tone_done, NULL); + elm_object_part_content_set(popup, "button1", mng.popup_btn_add); + elm_object_disabled_set(mng.popup_btn_add, true); BUTTON_ADD(popup, bt_no, _("Cancel")); - evas_object_smart_callback_add (bt_no, "clicked", _add_tone_cancel, edit); + evas_object_smart_callback_add (bt_no, "clicked", _add_tone_cancel, NULL); elm_object_part_content_set(popup, "button2", bt_no); evas_object_show(popup); @@ -438,35 +414,29 @@ _tone_add_cb(void *data, #undef INFO_ADD static void -_sound_add_cb(void *data, +_sound_add_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) { - Sound_Manager *edit = (Sound_Manager *)data; Evas_Coord x, y, h; - assert(edit != NULL); - evas_object_geometry_get(obj, &x, &y, NULL, &h); - elm_menu_move(edit->menu, x, y + h); - evas_object_show(edit->menu); + elm_menu_move(mng.menu, x, y + h); + evas_object_show(mng.menu); } static void -_sound_del_cb(void *data, +_sound_del_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Elm_Object_Item *grid_it; Sound_Data *snd; Eina_List *list, *l, *l_next; - Sound_Manager *edit = (Sound_Manager *)data; External_Resource *res; - assert(edit != NULL); - - list = (Eina_List *)elm_gengrid_selected_items_get(edit->gengrid); + list = (Eina_List *)elm_gengrid_selected_items_get(mng.gengrid); EINA_LIST_FOREACH_SAFE(list, l, l_next, grid_it) { snd = elm_object_item_data_get(grid_it); @@ -495,23 +465,19 @@ _sound_del_cb(void *data, TODO("Remove this line once edje_edit_sound_..._del would be added into Editor Modulei and saving would work properly") ap.project->changed = true; - elm_object_disabled_set(edit->btn_del, true); + elm_object_disabled_set(mng.btn_del, true); evas_object_smart_callback_call(ap.win, SIGNAL_SOUND_UNSELECTED, NULL); } ITEM_SEARCH_FUNC(gengrid, ELM_GENGRID_ITEM_SCROLLTO_MIDDLE, "elm.text") static void -_search_changed_cb(void *data, +_search_changed_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - Sound_Manager *edit = data; - - assert(edit != NULL); - - _gengrid_item_search(edit->gengrid, &(edit->sound_search_data), - edit->sound_search_data.last_item_found); + _gengrid_item_search(mng.gengrid, &(mng.sound_search_data), + mng.sound_search_data.last_item_found); } @@ -520,53 +486,53 @@ _find_next_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - Sound_Manager *edit = data; Elm_Object_Item *start_from = NULL; - assert(edit != NULL); - - if (edit->sound_search_data.last_item_found) + if (mng.sound_search_data.last_item_found) { start_from = - elm_gengrid_item_next_get(edit->sound_search_data.last_item_found); + elm_gengrid_item_next_get(mng.sound_search_data.last_item_found); } - _gengrid_item_search(edit->gengrid, &(edit->sound_search_data), start_from); + _gengrid_item_search(mng.gengrid, &(mng.sound_search_data), start_from); } static void -_property_hide(Sound_Manager *mng) +_mw_cancel_cb(void *data __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info __UNUSED__) { Evas_Object *content; /* unset and hide the image property */ - content = elm_object_part_content_unset(mng->panes, "right"); + content = elm_object_content_unset(mng.win); evas_object_hide(content); } static void -_mw_cancel_cb(void *data, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) +_mw_done_cb(void *data __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info __UNUSED__) { - Sound_Manager *mng = data; - _property_hide(mng); + Evas_Object *content; + + /* unset and hide the image property */ + content = elm_object_content_unset(mng.win); + evas_object_hide(content); } static void -_mw_done_cb(void *data, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) +_project_closed_cb(void *data __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info __UNUSED__) { - Sound_Manager *mng = data; - _property_hide(mng); + elm_gengrid_clear(mng.gengrid); } Evas_Object * sound_manager_add(void) { - Sound_Manager *edit; - Evas_Object *ic, *search_entry; + Evas_Object *ic, *search_entry, *button; assert(ap.project != NULL); @@ -574,21 +540,21 @@ sound_manager_add(void) ecore_audio_init(); #endif - edit = (Sound_Manager *)mem_calloc(1, sizeof(Sound_Manager)); - - edit->win = mw_add(); - mw_title_set(edit->win, _("Sound manager")); - evas_object_smart_callback_add(edit->win, "cancel", _mw_cancel_cb, edit); - evas_object_smart_callback_add(edit->win, "done", _mw_done_cb, edit); - ic = elm_icon_add(edit->win); + mng.win = mw_add(); + mw_title_set(mng.win, _("Sound manager")); + evas_object_smart_callback_add(mng.win, "cancel", _mw_cancel_cb, NULL); + evas_object_smart_callback_add(mng.win, "done", _mw_done_cb, NULL); + ic = elm_icon_add(mng.win); elm_icon_standard_set(ic, "sound2"); - mw_icon_set(edit->win, ic); + mw_icon_set(mng.win, ic); + + if (mng.layout) goto done; - edit->layout = elm_layout_add(edit->win); - elm_layout_theme_set(edit->layout, "layout", "sound_manager", "default"); - edit->panes = elm_panes_add(edit->win); - elm_object_part_content_set(edit->panes, "left", edit->layout); - elm_object_part_content_set(edit->panes, "right", ap.property.sound_manager); + mng.layout = elm_layout_add(mng.win); + elm_layout_theme_set(mng.layout, "layout", "sound_manager", "default"); + mng.panes = elm_panes_add(mng.win); + elm_object_part_content_set(mng.panes, "left", mng.layout); + elm_object_part_content_set(mng.panes, "right", ap.property.sound_manager); if (!gic) { @@ -608,43 +574,49 @@ sound_manager_add(void) ggic->func.del = _grid_del; } - edit->gengrid = elm_gengrid_add(edit->layout); - elm_gengrid_item_size_set(edit->gengrid, ITEM_WIDTH, ITEM_HEIGHT); - elm_gengrid_align_set(edit->gengrid, 0.0, 0.0); - elm_gengrid_group_item_size_set(edit->gengrid, ITEM_HEIGHT/3, ITEM_HEIGHT/3); - evas_object_smart_callback_add(edit->gengrid, "unselected", _grid_unsel_cb, edit); - elm_scroller_policy_set(edit->gengrid, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); - elm_object_part_content_set(edit->layout, "eflete.swallow.grid", edit->gengrid); - - edit->btn_add = elm_button_add(edit->layout); - elm_object_style_set(edit->btn_add, "plus"); - evas_object_smart_callback_add(edit->btn_add, "clicked", _sound_add_cb, edit); - elm_object_part_content_set(edit->layout, "eflete.swallow.add_btn", edit->btn_add); - - edit->btn_del = elm_button_add(edit->layout); - elm_object_style_set(edit->btn_del, "minus"); - evas_object_smart_callback_add(edit->btn_del, "clicked", _sound_del_cb, edit); - elm_object_part_content_set(edit->layout, "eflete.swallow.del_btn", edit->btn_del); - elm_object_disabled_set(edit->btn_del, true); - - edit->menu = elm_menu_add(ap.win); - elm_menu_item_add(edit->menu, NULL, "sound_sample", _("Sample"), _sample_add_cb, edit); - elm_menu_item_add(edit->menu, NULL, "sound_tone", _("Tone"), _tone_add_cb, edit); - - ENTRY_ADD(edit->layout, search_entry, true); + mng.gengrid = elm_gengrid_add(mng.layout); + elm_gengrid_item_size_set(mng.gengrid, ITEM_WIDTH, ITEM_HEIGHT); + elm_gengrid_align_set(mng.gengrid, 0.0, 0.0); + elm_gengrid_group_item_size_set(mng.gengrid, ITEM_HEIGHT/3, ITEM_HEIGHT/3); + evas_object_smart_callback_add(mng.gengrid, "unselected", _grid_unsel_cb, NULL); + elm_scroller_policy_set(mng.gengrid, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); + elm_object_part_content_set(mng.layout, "eflete.swallow.grid", mng.gengrid); + + button = elm_button_add(mng.layout); + elm_object_style_set(button, "plus"); + evas_object_smart_callback_add(button, "clicked", _sound_add_cb, NULL); + elm_object_part_content_set(mng.layout, "eflete.swallow.add_btn", button); + + mng.btn_del = elm_button_add(mng.layout); + elm_object_style_set(mng.btn_del, "minus"); + evas_object_smart_callback_add(mng.btn_del, "clicked", _sound_del_cb, NULL); + elm_object_part_content_set(mng.layout, "eflete.swallow.del_btn", mng.btn_del); + elm_object_disabled_set(mng.btn_del, true); + + mng.menu = elm_menu_add(ap.win); + elm_menu_item_add(mng.menu, NULL, "sound_sample", _("Sample"), _sample_add_cb, NULL); + elm_menu_item_add(mng.menu, NULL, "sound_tone", _("Tone"), _tone_add_cb, NULL); + + ENTRY_ADD(mng.layout, search_entry, true); elm_object_part_text_set(search_entry, "guide", _("Search")); ICON_STANDARD_ADD(search_entry, ic, true, "search"); elm_object_part_content_set(search_entry, "elm.swallow.end", ic); - elm_layout_content_set(edit->layout, "eflete.swallow.search_area", search_entry); - evas_object_smart_callback_add(search_entry, "changed", _search_changed_cb, edit); - evas_object_smart_callback_add(search_entry, "activated", _find_next_cb, edit); - edit->sound_search_data.search_entry = search_entry; - edit->sound_search_data.last_item_found = NULL; - - _sound_manager_init(edit); - - elm_object_content_set(edit->win, edit->panes); - evas_object_show(edit->win); - elm_object_focus_set(edit->sound_search_data.search_entry, true); - return edit->win; + elm_layout_content_set(mng.layout, "eflete.swallow.search_area", search_entry); + evas_object_smart_callback_add(search_entry, "changed", _search_changed_cb, NULL); + evas_object_smart_callback_add(search_entry, "activated", _find_next_cb, NULL); + mng.sound_search_data.search_entry = search_entry; + mng.sound_search_data.last_item_found = NULL; + + evas_object_smart_callback_add(ap.win, SIGNAL_PROJECT_CLOSED, _project_closed_cb, NULL); + +done: + /* if gengrid is empty try to fill it. This happens if the managers called + * first time or project was reopened */ + if (!elm_gengrid_realized_items_get(mng.gengrid)) + _sound_manager_init(); + + elm_object_content_set(mng.win, mng.panes); + evas_object_show(mng.win); + elm_object_focus_set(mng.sound_search_data.search_entry, true); + return mng.win; } --