Ex_Tab * _ex_tab_new(Exhibit *e, char *dir) { Ex_Tab *tab; Etk_Tree_Model *imodel; char *file; file = NULL; tab = calloc(1, sizeof(Ex_Tab)); //tab->num = eina_list_count(e->tabs); tab->dirs = NULL; if (!dir) { D(("NO DIR\n")); exit(-1); } D(("Creating new tab with %s\n", dir)); if (e->options->default_view == EX_IMAGE_FIT_TO_WINDOW) { tab->fit_window = ETK_TRUE; D(("Setting EX_IMAGE_FIT_TO_WINDOW\n")); } else tab->fit_window = ETK_FALSE; tab->comment.visible = ETK_FALSE; tab->image_loaded = ETK_FALSE; tab->dtree = etk_tree_new(); etk_widget_size_request_set(tab->dtree, 180, 120); etk_signal_connect("row-clicked", ETK_OBJECT(tab->dtree), ETK_CALLBACK(_ex_tab_dtree_item_clicked_cb), e); tab->dcol = etk_tree_col_new(ETK_TREE(tab->dtree), "Directories", 10, 0.0); etk_tree_col_model_add(tab->dcol, etk_tree_model_image_new()); etk_tree_col_model_add(tab->dcol, etk_tree_model_text_new()); etk_tree_headers_visible_set(ETK_TREE(tab->dtree), 0); etk_scrolled_view_policy_set(etk_tree_scrolled_view_get(ETK_TREE(tab->dtree)), ETK_POLICY_AUTO, ETK_POLICY_SHOW); etk_tree_build(ETK_TREE(tab->dtree)); tab->itree = etk_tree_new(); etk_scrolled_view_dragable_set(ETK_SCROLLED_VIEW(etk_tree_scrolled_view_get(ETK_TREE(tab->itree))), ETK_TRUE); etk_scrolled_view_drag_bouncy_set(ETK_SCROLLED_VIEW(etk_tree_scrolled_view_get(ETK_TREE(tab->itree))), ETK_FALSE); etk_scrolled_view_drag_damping_set(ETK_SCROLLED_VIEW(etk_tree_scrolled_view_get(ETK_TREE(tab->itree))), 300); etk_widget_dnd_source_set(ETK_WIDGET(tab->itree), ETK_TRUE); // etk_signal_connect("drag_begin", ETK_OBJECT(tab->itree), ETK_CALLBACK(_ex_tab_tree_drag_begin_cb), tab); etk_widget_size_request_set(tab->itree, 180, 220); etk_tree_multiple_select_set(ETK_TREE(tab->itree), ETK_TRUE); etk_signal_connect("row-selected", ETK_OBJECT(tab->itree), ETK_CALLBACK(_ex_tab_itree_item_clicked_cb), e); etk_signal_connect("key-down", ETK_OBJECT(tab->itree), ETK_CALLBACK(_ex_tab_itree_key_down_cb), e); imodel = etk_tree_model_wobbly_new(); tab->imodel = imodel; //etk_tree_model_image_width_set(imodel, 80, 0.0); tab->icol = etk_tree_col_new(ETK_TREE(tab->itree), "Files", 10, 0.0); etk_tree_col_model_add(tab->icol, imodel); etk_tree_col_model_add(tab->icol, etk_tree_model_text_new()); etk_tree_headers_visible_set(ETK_TREE(tab->itree), 0); etk_tree_rows_height_set(ETK_TREE(tab->itree), 60); etk_scrolled_view_policy_set(etk_tree_scrolled_view_get(ETK_TREE(tab->itree)), ETK_POLICY_AUTO, ETK_POLICY_SHOW); etk_tree_build(ETK_TREE(tab->itree)); tab->dir = _ex_path_normalize(ecore_file_realpath(dir)); tab->alignment = etk_alignment_new(0.5, 0.5, 1.0, 1.0); tab->image = etk_image_new(); etk_widget_theme_file_set(tab->image, PACKAGE_DATA_DIR"/gui.edj"); etk_widget_theme_group_set(tab->image, "image_bg"); etk_signal_connect("mouse-down", ETK_OBJECT(tab->image), ETK_CALLBACK(_ex_image_mouse_down), e); etk_signal_connect("mouse-up", ETK_OBJECT(tab->image), ETK_CALLBACK(_ex_image_mouse_up), e); etk_signal_connect("mouse-move", ETK_OBJECT(tab->image), ETK_CALLBACK(_ex_image_mouse_move), e); etk_signal_connect("mouse-wheel", ETK_OBJECT(tab->image), ETK_CALLBACK(_ex_image_mouse_wheel), e); etk_image_keep_aspect_set(ETK_IMAGE(tab->image), ETK_TRUE); etk_container_add(ETK_CONTAINER(tab->alignment), tab->image); tab->scrolled_view = etk_scrolled_view_new(); etk_scrolled_view_policy_set(ETK_SCROLLED_VIEW(tab->scrolled_view), ETK_POLICY_HIDE, ETK_POLICY_HIDE); etk_scrolled_view_dragable_set(ETK_SCROLLED_VIEW(tab->scrolled_view), ETK_TRUE); etk_scrolled_view_drag_bouncy_set((ETK_SCROLLED_VIEW(tab->scrolled_view)), ETK_FALSE); etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(tab->scrolled_view), tab->alignment); etk_widget_has_event_object_set(tab->scrolled_view, ETK_TRUE); etk_signal_connect("mouse-wheel", ETK_OBJECT(tab->scrolled_view), ETK_CALLBACK(_ex_image_mouse_wheel), e); return tab; }
/* TODO : documentation */ void emphasis_init_player(Emphasis_Player_Gui *player) { Enhance *en; en = enhance_new(); player->en = en; if(!en) { fprintf(stderr, "Enhance new failed"); exit(1); } player->state = EMPHASIS_SMALL; /* TODO : state toggle full */ _emphasis_enhance_callbacks(player); enhance_file_load(en, "Emphasis", PACKAGE_DATA_DIR EMPHASIS_GLADE); /* TODO : check widget? */ EN_VAR_GET(en, player, window); etk_widget_hide(player->small.window); etk_widget_hide(player->full.window); EN_VAR_GET(en, player, root); player->small.ctr.root = enhance_var_get(en, "small_root_ctrl"); player->small.cov.root = enhance_var_get(en, "small_root_cover"); _emphasis_init_player_small(player); EN_VAR_GET(en, player, cover); EN_VAR_GET(en, player, stop); EN_VAR_GET(en, player, prev); EN_VAR_GET(en, player, play); EN_VAR_GET(en, player, next); EN_VAR_GET(en, player, info); EN_VAR_GET(en, player, progress); //EN_VAR_GET(en, player, time); player->full.time = enhance_var_get(en, "full_time"); EN_VAR_GET(en, player, sound_slider); EN_VAR_GET(en, player, sound_low); EN_VAR_GET(en, player, sound_high); EN_VAR_GET(en, player, random); EN_VAR_GET(en, player, repeat); EN_VAR_GET(en, player, full); player->small.media = enhance_var_get(en, "small_media"); player->media.window = enhance_var_get(en, "media_window"); player->media.root = enhance_var_get(en, "media_root"); player->media.notebook = enhance_var_get(en, "media_notebook"); player->media.paned = enhance_var_get(en, "media_paned"); player->media.pls = enhance_var_get(en, "media_pls"); player->media.artist = enhance_var_get(en, "media_artist"); player->media.album = enhance_var_get(en, "media_album"); player->media.track = enhance_var_get(en, "media_track"); player->media.search_root = enhance_var_get(en, "search_page_root"); player->media.search_combo = enhance_var_get(en, "search_page_combo"); player->media.search_tree = enhance_var_get(en, "search_page_tree"); player->media.pls_list = enhance_var_get(en, "media_pls_list"); player->media.pls_content = enhance_var_get(en, "media_pls_content"); player->media.pls_entry_save = enhance_var_get(en, "media_pls_entry_save"); /* Mediabox buttons init */ player->media.toolbar = enhance_var_get(en, "media_toolbar"); player->media.button_lib = enhance_var_get(en, "media_button_lib"); player->media.button_search = enhance_var_get(en, "media_button_search"); player->media.button_playlists = enhance_var_get(en, "media_button_pls"); player->media.button_stats = enhance_var_get(en, "media_button_stats"); /* enhance completion : col def */ etk_tree_multiple_select_set(ETK_TREE(player->media.artist), ETK_TRUE); etk_tree_multiple_select_set(ETK_TREE(player->media.album) , ETK_TRUE); etk_tree_multiple_select_set(ETK_TREE(player->media.track) , ETK_TRUE); etk_tree_multiple_select_set(ETK_TREE(player->media.pls) , ETK_TRUE); Etk_Tree_Col *col; col = etk_tree_col_new(ETK_TREE(player->media.artist), "Artist", 60, 0.0); etk_tree_col_model_add(col, etk_tree_model_text_new()); etk_tree_build(ETK_TREE(player->media.artist)); col = etk_tree_col_new(ETK_TREE(player->media.album), "Album", 60, 0.0); etk_tree_col_model_add(col, etk_tree_model_text_new()); etk_tree_build(ETK_TREE(player->media.album)); col = etk_tree_col_new(ETK_TREE(player->media.track), "Track", 60, 0.0); etk_tree_col_model_add(col, etk_tree_model_text_new()); etk_tree_build(ETK_TREE(player->media.track)); /* pls */ col = etk_tree_col_new(ETK_TREE(player->media.pls), "Title", 140, 0.0); etk_tree_col_model_add(col, etk_tree_model_image_new()); etk_tree_col_model_add(col, etk_tree_model_text_new()); col = etk_tree_col_new(ETK_TREE(player->media.pls), "Time", 30, 0.0); etk_tree_col_model_add(col, etk_tree_model_text_new()); col = etk_tree_col_new(ETK_TREE(player->media.pls), "Artist", 120, 0.0); etk_tree_col_model_add(col, etk_tree_model_text_new()); col = etk_tree_col_new(ETK_TREE(player->media.pls), "Album", 120, 0.0); etk_tree_col_model_add(col, etk_tree_model_text_new()); etk_tree_build(ETK_TREE(player->media.pls)); /* search page */ etk_tree_multiple_select_set(ETK_TREE(player->media.search_tree), ETK_TRUE); col = etk_tree_col_new(ETK_TREE(player->media.search_tree), "Artist", 120, 0.0); etk_tree_col_model_add(col, etk_tree_model_text_new()); col = etk_tree_col_new(ETK_TREE(player->media.search_tree), "Album", 100, 0.0); etk_tree_col_model_add(col, etk_tree_model_text_new()); col = etk_tree_col_new(ETK_TREE(player->media.search_tree), "Title", 200, 0.0); etk_tree_col_model_add(col, etk_tree_model_text_new()); col = etk_tree_col_new(ETK_TREE(player->media.search_tree), "Filename", 200, 0.0); etk_tree_col_model_add(col, etk_tree_model_text_new()); etk_tree_build(ETK_TREE(player->media.search_tree)); /* playlists page */ col = etk_tree_col_new(ETK_TREE(player->media.pls_list), "Playlists", 120, 0.0); etk_tree_col_model_add(col, etk_tree_model_text_new()); etk_tree_build(ETK_TREE(player->media.pls_list)); col = etk_tree_col_new(ETK_TREE(player->media.pls_content), "Preview", 120, 0.0); etk_tree_col_model_add(col, etk_tree_model_text_new()); etk_tree_build(ETK_TREE(player->media.pls_content)); /**/ etk_object_data_set(ETK_OBJECT(player->media.artist), "title", "Artist"); etk_object_data_set(ETK_OBJECT(player->media.album) , "title", "Album" ); etk_object_data_set(ETK_OBJECT(player->media.track) , "title", "Track" ); etk_object_data_set(ETK_OBJECT(player->media.artist), "Emphasis_Type", (void*)EMPHASIS_ARTIST); etk_object_data_set(ETK_OBJECT(player->media.album), "Emphasis_Type", (void*)EMPHASIS_ALBUM); etk_object_data_set(ETK_OBJECT(player->media.track), "Emphasis_Type", (void*)EMPHASIS_TRACK); /* enhance completion : dnd */ etk_widget_dnd_source_set(ETK_WIDGET(player->media.artist), ETK_TRUE); etk_widget_dnd_source_set(ETK_WIDGET(player->media.album) , ETK_TRUE); etk_widget_dnd_source_set(ETK_WIDGET(player->media.track) , ETK_TRUE); etk_widget_dnd_dest_set(ETK_WIDGET(player->media.pls), ETK_TRUE); etk_signal_connect("row-clicked", ETK_OBJECT(player->media.artist), ETK_CALLBACK(cb_tree_mlib_clicked), player); etk_signal_connect("row-clicked", ETK_OBJECT(player->media.album ), ETK_CALLBACK(cb_tree_mlib_clicked), player); etk_signal_connect("row-clicked", ETK_OBJECT(player->media.track ), ETK_CALLBACK(cb_tree_mlib_clicked), player); etk_signal_connect("row-clicked", ETK_OBJECT(player->media.pls ), ETK_CALLBACK(cb_tree_pls_clicked), NULL); /* Media pls init */ etk_object_data_set(ETK_OBJECT(player->media.pls_content), "Emphasis_Type", (void*)EMPHASIS_TRACK); /* enhance complection : images */ emphasis_player_cover_set(player, NULL); emphasis_player_vol_image_set(player, 0, PACKAGE_DATA_DIR EMPHASIS_SOUNDL); emphasis_player_vol_image_set(player, 1, PACKAGE_DATA_DIR EMPHASIS_SOUNDR); player->small.cover_size_w = player->small.cover->requested_size.w; player->small.cover_size_h = player->small.cover->requested_size.h; player->full.cover_size_w = player->full.cover->requested_size.w; player->full.cover_size_h = player->full.cover->requested_size.h; /* TEMP configuration, need to add this to enhance */ etk_window_wmclass_set(ETK_WINDOW(player->full.window), "emphasis full", "Emphasis"); etk_window_wmclass_set(ETK_WINDOW(player->small.window), "emphasis small", "Emphasis"); etk_window_wmclass_set(ETK_WINDOW(player->media.window), "emphasis mlib", "Emphasis"); etk_container_border_width_set(ETK_CONTAINER(player->full.window), 5); }