From: Enlightenment C. <no...@cv...> - 2006-06-29 10:41:16
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/emphasis/src/bin Modified Files: emphasis.c emphasis.h emphasis_callbacks.c emphasis_gui.c emphasis_gui.h emphasis_misc.c emphasis_misc.h emphasis_mpc.c emphasis_mpc.h Log Message: Evas_List used instead of MpdData =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis.c 6 Jun 2006 11:22:15 -0000 1.1 +++ emphasis.c 29 Jun 2006 15:41:06 -0000 1.2 @@ -21,7 +21,7 @@ return 3; } - gui = malloc(sizeof *gui); + gui = malloc(sizeof(Emphasis_Gui)); if (!gui) { printf("Memory full\n"); @@ -30,6 +30,7 @@ emphasis_init_gui(gui); + emphasis_init_connect(gui); emphasis_try_connect(gui); etk_main(); @@ -37,24 +38,40 @@ return 0; } +void +emphasis_init_connect(Emphasis_Gui *gui) +{ + gui->timer = ecore_timer_add(0.2, emphasis_try_connect, gui); +} + int -emphasis_try_connect(Emphasis_Gui *gui) +emphasis_try_connect(void *data) { - MpdData *artist_list; + Emphasis_Gui *gui; + Evas_List *artist_list; Emphasis_Config *config; + Ecore_Timer *timer; + gui = data; config = config_load(); etk_window_resize(ETK_WINDOW(gui->window), config->geometry.w, config->geometry.h); etk_object_data_set(ETK_OBJECT(gui->window), "config", config); - gui->timer = mpc_init(config->hostname, config->port, config->password); - if (!gui->timer) + + timer = mpc_init(config->hostname, config->port, config->password); + + if (!timer) { emphasis_clear(gui); return 1; } else { + ecore_timer_del(gui->timer); + gui->timer = timer; + artist_list = mpc_mlib_artist_get(); + Emphasis_Data *data; + data = evas_list_data(artist_list); emphasis_tree_mlib_set(ETK_TREE(gui->tree_artist), artist_list, MPD_DATA_TYPE_TAG); etk_tree_row_select(etk_tree_first_row_get(ETK_TREE(gui->tree_artist))); =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis.h 6 Jun 2006 11:22:15 -0000 1.1 +++ emphasis.h 29 Jun 2006 15:41:06 -0000 1.2 @@ -22,7 +22,8 @@ extern MpdObj *mo; -int emphasis_try_connect(Emphasis_Gui *gui); +void emphasis_init_connect(Emphasis_Gui *gui); +int emphasis_try_connect(void *data); #endif /*_EMPHASIS_H_*/ =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_callbacks.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_callbacks.c 6 Jun 2006 11:22:15 -0000 1.1 +++ emphasis_callbacks.c 29 Jun 2006 15:41:06 -0000 1.2 @@ -13,11 +13,13 @@ Etk_Widget *window; Emphasis_Config *config; - config = malloc(sizeof(Emphasis_Config)); config = etk_object_data_get(object, "config"); - etk_widget_geometry_get(ETK_WIDGET(object), &(config->geometry.x), &(config->geometry.y), &(config->geometry.w), &(config->geometry.h)); + etk_widget_geometry_get(ETK_WIDGET(object), &(config->geometry.x), + &(config->geometry.y), &(config->geometry.w), + &(config->geometry.h)); config_write(config); + mpc_disconnect(); eet_shutdown(); etk_main_quit(); } @@ -100,7 +102,7 @@ cb_tree_artist_selected(Etk_Object *object, Etk_Tree_Row *row, void *data) { Etk_Tree *tree; - MpdData *list=NULL; + Evas_List *list=NULL; char *artist; Emphasis_Gui *gui; @@ -130,7 +132,7 @@ { Emphasis_Gui *gui; Etk_Tree *tree; - MpdData *list; + Evas_List *list; char *album, *artist; tree = ETK_TREE(object); @@ -142,20 +144,6 @@ artist = etk_tree_row_data_get(row); list = mpc_mlib_track_get(artist, album); - /* - Emphasis_Data *song; - song = malloc(sizeof(Emphasis_Song)); - Evas_List *evaslist; - evaslist = convert_mpd_data(list); - if (evaslist) - { - song = evas_list_data(evaslist); - } - - MpdData *platypus; - platypus = convert_evas_list(evaslist); - printf("%s\n", platypus->song->title); - */ emphasis_tree_mlib_set(ETK_TREE(gui->tree_track), list, MPD_DATA_TYPE_SONG); } @@ -174,7 +162,7 @@ char *artist; const char **types; unsigned int num_types; - MpdData *playlist=NULL, *tmplist; + Evas_List *playlist=NULL, *tmplist; tree = ETK_TREE(object); drag = ETK_DRAG((ETK_WIDGET(object))->drag); @@ -199,7 +187,7 @@ } else { - playlist = mpd_data_concatenate(playlist, tmplist); + playlist = evas_list_concatenate(playlist, tmplist); } next = evas_list_next(rowlist); rowlist = next; @@ -208,7 +196,7 @@ types = calloc(1, sizeof(char)); num_types = 1; - types[0] = strdup("MpdData"); + types[0] = strdup("Evas_List"); etk_drag_types_set(drag, types, num_types); etk_drag_data_set(drag, playlist, 1); @@ -231,7 +219,7 @@ char *album, *artist; const char **types; unsigned int num_types; - MpdData *playlist=NULL, *tmplist; + Evas_List *playlist=NULL, *tmplist; tree = ETK_TREE(object); drag = ETK_DRAG((ETK_WIDGET(object))->drag); @@ -259,14 +247,14 @@ } else { - playlist = mpd_data_concatenate(playlist, tmplist); + playlist = evas_list_concatenate(playlist, tmplist); } rowlist = evas_list_next(rowlist); } types = calloc(1, sizeof(char)); num_types = 1; - types[0] = strdup("MpdData"); + types[0] = strdup("Evas_List"); etk_drag_types_set(drag, types, num_types); etk_drag_data_set(drag, playlist, 1); @@ -291,7 +279,7 @@ char *title; const char **types; unsigned int num_types; - MpdData *playlist; + Evas_List *playlist; tree = ETK_TREE(object); drag = ETK_DRAG((ETK_WIDGET(object))->drag); @@ -312,7 +300,7 @@ types = calloc(1, sizeof(char)); num_types = 1; - types[0] = strdup("MpdData"); + types[0] = strdup("Evas_List"); etk_drag_types_set(drag, types, num_types); etk_drag_data_set(drag, playlist, 1); @@ -336,7 +324,7 @@ Etk_Tree *tree; Etk_Tree_Row *row; Etk_Drag *drag; - MpdData *list; + Evas_List *list; tree = ETK_TREE(object); @@ -565,7 +553,7 @@ Emphasis_Gui *gui; Etk_Tree_Row *row; Evas_List *rowlist; - MpdData *list; + Evas_List *list; gui = (Emphasis_Gui *)data; @@ -590,7 +578,7 @@ Emphasis_Gui *gui; Etk_Tree_Row *row; Evas_List *rowlist; - MpdData *list; + Evas_List *list; gui = (Emphasis_Gui *)data; =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_gui.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_gui.c 6 Jun 2006 11:22:15 -0000 1.1 +++ emphasis_gui.c 29 Jun 2006 15:41:06 -0000 1.2 @@ -124,7 +124,7 @@ etk_tree_mode_set(ETK_TREE(gui->tree_artist), ETK_TREE_MODE_LIST); etk_tree_col_new(ETK_TREE(gui->tree_artist), "Artist", etk_tree_model_text_new(ETK_TREE(gui->tree_artist)), 60); etk_tree_build(ETK_TREE(gui->tree_artist)); - etk_object_data_set(ETK_OBJECT(gui->tree_artist), "title", strdup("Artist")); + etk_object_data_set(ETK_OBJECT(gui->tree_artist), "title", "Artist"); etk_object_data_set(ETK_OBJECT(gui->tree_artist), "Emphasis_Type", (void*)EMPHASIS_ARTIST); etk_box_pack_start(ETK_BOX(gui->hbox_medialib), gui->tree_artist, ETK_TRUE, ETK_TRUE, 0); etk_widget_dnd_source_set(ETK_WIDGET(gui->tree_artist), ETK_TRUE); @@ -144,7 +144,7 @@ etk_tree_mode_set(ETK_TREE(gui->tree_album), ETK_TREE_MODE_LIST); etk_tree_col_new(ETK_TREE(gui->tree_album), "Album", etk_tree_model_text_new(ETK_TREE(gui->tree_album)), 60); etk_tree_build(ETK_TREE(gui->tree_album)); - etk_object_data_set(ETK_OBJECT(gui->tree_album), "title", strdup("Album")); + etk_object_data_set(ETK_OBJECT(gui->tree_album), "title", "Album"); etk_object_data_set(ETK_OBJECT(gui->tree_album), "Emphasis_Type", (void*)EMPHASIS_ALBUM); etk_box_pack_start(ETK_BOX(gui->hbox_medialib), gui->tree_album, ETK_TRUE, ETK_TRUE, 0); etk_widget_dnd_source_set(ETK_WIDGET(gui->tree_album), ETK_TRUE); @@ -163,7 +163,7 @@ etk_tree_mode_set(ETK_TREE(gui->tree_track), ETK_TREE_MODE_LIST); etk_tree_col_new(ETK_TREE(gui->tree_track), "Track", etk_tree_model_text_new(ETK_TREE(gui->tree_track)), 60); etk_tree_build(ETK_TREE(gui->tree_track)); - etk_object_data_set(ETK_OBJECT(gui->tree_track), "title", strdup("Track")); + etk_object_data_set(ETK_OBJECT(gui->tree_track), "title", "Track"); etk_object_data_set(ETK_OBJECT(gui->tree_track), "Emphasis_Type", (void*)EMPHASIS_TRACK); etk_box_pack_start(ETK_BOX(gui->hbox_medialib), gui->tree_track, ETK_TRUE, ETK_TRUE, 0); etk_widget_dnd_source_set(ETK_WIDGET(gui->tree_track), ETK_TRUE); @@ -221,14 +221,10 @@ Etk_Widget *menu_item, *radio_item=NULL, *menu; emphasis_menu_append(gui->menu, "clear", ETK_STOCK_EDIT_CUT, cb_playlist_clear, NULL, - "config", ETK_STOCK_PREFERENCES_SYSTEM, cb_config_show, gui, + /* "config", ETK_STOCK_PREFERENCES_SYSTEM, cb_config_show, gui, */ "Open a file", ETK_STOCK_DOCUMENT_OPEN, NULL, NULL, NULL); -/* menu_item = etk_menu_item_new_with_label("platypus"); - etk_menu_shell_append(ETK_MENU_SHELL(gui->menu), ETK_MENU_ITEM(menu_item)); - menu = etk_menu_new(); - etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); -*/ radio_item = etk_menu_item_radio_new_with_label_from_widget("full", NULL); + radio_item = etk_menu_item_radio_new_with_label_from_widget("full", NULL); etk_menu_shell_append(ETK_MENU_SHELL(gui->menu), ETK_MENU_ITEM(radio_item)); etk_signal_connect("activated", ETK_OBJECT(radio_item), ETK_CALLBACK(cb_switch_full), gui); radio_item = etk_menu_item_radio_new_with_label_from_widget("small", ETK_MENU_ITEM_RADIO(radio_item)); @@ -259,7 +255,8 @@ /** * @brief Make a menu with small stock image and sets a callback on "activated" on each elements * @param menu The Etk_Menu to setup - * @param ... An (char*)menu_item name, an (Etk_Stock_Id)image id, a Etk_Callback function and it data ... terminated by NULL + * @param ... An (char*)menu_item name, an (Etk_Stock_Id)image id, a Etk_Callback function and + * it data ... terminated by NULL */ void emphasis_menu_append(Etk_Widget *menu, ...) @@ -298,7 +295,7 @@ emphasis_tree_mlib_init(Emphasis_Gui *gui, Emphasis_Type type) { Etk_Tree_Row *row; - MpdData *list; + Evas_List *list; switch (type) { @@ -324,11 +321,11 @@ * @param mpd_type The type of the list */ void -emphasis_tree_mlib_set(Etk_Tree *tree, MpdData *list, MpdDataType mpd_type) +emphasis_tree_mlib_set(Etk_Tree *tree, Evas_List *list, MpdDataType mpd_type) { Etk_Tree_Col *col; Etk_Tree_Row *row; - char *str = NULL; + Emphasis_Data *data; etk_tree_clear(tree); @@ -338,14 +335,14 @@ if (mpd_type == MPD_DATA_TYPE_TAG) { row = etk_tree_append(tree, col, "All", NULL); - etk_tree_row_data_set(row, str); + etk_tree_row_data_set(row, NULL); while (list) { - row = etk_tree_append(tree, col, list->tag, NULL); - str = strdup(list->tag); - etk_tree_row_data_set(row, str); - list = mpd_data_get_next(list); + data = evas_list_data(list); + row = etk_tree_append(tree, col, data->tag, NULL); + etk_tree_row_data_set(row, data->tag); + list = evas_list_next(list); } } else @@ -354,19 +351,20 @@ { while (list) { - if (list->song->title) - row = etk_tree_append(tree, col, list->song->title, NULL); + data = evas_list_data(list); + if (data->song->title) + row = etk_tree_append(tree, col, data->song->title, NULL); else - row = etk_tree_append(tree, col, list->song->file, NULL); + row = etk_tree_append(tree, col, data->song->file, NULL); - str = strdup(list->song->file); - etk_tree_row_data_set(row, str); - list = mpd_data_get_next(list); + etk_tree_row_data_set(row, data->song->file); + list = evas_list_next(list); } } } etk_tree_thaw(tree); + emphasis_list_free(list, mpd_type); } /** @@ -375,14 +373,15 @@ * @param playlist The full playlist used by mpd */ void -emphasis_tree_pls_set(Etk_Tree *tree, MpdData *playlist) +emphasis_tree_pls_set(Etk_Tree *tree, Evas_List *playlist) { char *song_time; Etk_Tree_Col *col_title, *col_time, *col_artist, *col_album; Etk_Tree_Row *row, *row_next; int id; char *title, *time, *album, *artist, *truc; - + Emphasis_Data *data; + col_title = etk_tree_nth_col_get(tree, 0); col_time = etk_tree_nth_col_get(tree, 1); col_artist = etk_tree_nth_col_get(tree, 2); @@ -393,15 +392,16 @@ while (row && playlist) { + data = evas_list_data(playlist); row_next = etk_tree_next_row_get(row, ETK_FALSE, ETK_FALSE); id = (int)etk_tree_row_data_get(row); - if (playlist->song->id != id ) + if (data->song->id != id ) { etk_tree_row_del(row); } else { - playlist = mpd_data_get_next(playlist); + playlist = evas_list_next(playlist); } row = row_next; } @@ -415,22 +415,24 @@ while (playlist) { - if (!playlist->song->title) - title = playlist->song->file; + data = evas_list_data(playlist); + if (!data->song->title) + title = data->song->file; else - title = playlist->song->title; - asprintf(&song_time, "%d:%02d", (playlist->song->time)/60, (playlist->song->time)%60); + title = data->song->title; + asprintf(&song_time, "%d:%02d", (data->song->time)/60, (data->song->time)%60); row = etk_tree_append(tree, col_title, NULL, title, col_time, song_time, - col_artist, playlist->song->artist, - col_album, playlist->song->album, NULL); + col_artist, data->song->artist, + col_album, data->song->album, NULL); - etk_tree_row_data_set(row, (int *)playlist->song->id); + etk_tree_row_data_set(row, (int *)data->song->id); free(song_time); - playlist = mpd_data_get_next(playlist); + playlist = evas_list_next(playlist); } + emphasis_list_free(playlist, MPD_DATA_TYPE_SONG); etk_tree_thaw(tree); } @@ -469,7 +471,6 @@ } etk_tree_thaw(tree); - } /** =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_gui.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_gui.h 6 Jun 2006 11:22:15 -0000 1.1 +++ emphasis_gui.h 29 Jun 2006 15:41:06 -0000 1.2 @@ -68,8 +68,8 @@ void emphasis_menu_append(Etk_Widget *menu, ...); void emphasis_tree_mlib_init(Emphasis_Gui *gui, Emphasis_Type type); -void emphasis_tree_mlib_set(Etk_Tree *tree, MpdData *list, MpdDataType mpd_type); -void emphasis_tree_pls_set(Etk_Tree *tree, MpdData *playlist); +void emphasis_tree_mlib_set(Etk_Tree *tree, Evas_List *list, MpdDataType mpd_type); +void emphasis_tree_pls_set(Etk_Tree *tree, Evas_List *playlist); void emphasis_pls_mark_current(Etk_Tree *tree, int id); void emphasis_unknow_if_null(char **table[]); =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_misc.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_misc.c 6 Jun 2006 11:22:16 -0000 1.1 +++ emphasis_misc.c 29 Jun 2006 15:41:06 -0000 1.2 @@ -1,78 +1,92 @@ #include "emphasis.h" #include "emphasis_misc.h" +Evas_List * +evas_list_concatenate(Evas_List *head, Evas_List *tail) +{ + Evas_List *p; + p = tail; + + while (p) + { + evas_list_append(head, evas_list_data(p)); + p = evas_list_next(p); + } + evas_list_free(tail); + + return head; +} + /** - * @brief Convert a list of row in a MpdData list. + * @brief Convert a list of row in a Evas_List. * And set the song->file element * @param rowlist An Evas_List of song's row * @return A list of song */ -MpdData * +Evas_List * convert_rowlist_in_playlist_with_file(Evas_List *rowlist) { - Evas_List *list; + Evas_List *list=NULL, *first_rowlist; Etk_Tree_Row *row; - char *file; - MpdData *data=NULL; + Emphasis_Data *data=NULL; if (!rowlist) return NULL; - list = rowlist; + first_rowlist = rowlist; while (rowlist) { row = evas_list_data(rowlist); - file = etk_tree_row_data_get(row); - data = mpd_new_data_struct_append(data); + data = malloc(sizeof(Emphasis_Data)); data->type = MPD_DATA_TYPE_SONG; - data->song = mpd_newSong(); - data->song->file = file; + data->song = malloc(sizeof(Emphasis_Song)); + data->song->file = strdup(etk_tree_row_data_get(row)); + list = evas_list_append(list, data); rowlist = evas_list_next(rowlist); } - rowlist = list; - data = mpd_data_get_first(data); - return data; + rowlist = first_rowlist; + return list; } /** - * @brief Convert a list of row in a MpdData. + * @brief Convert a list of row in a Evas_List. * And set the song->id element * @param rowlist An Evas_List of song's row * @return A list of song */ -MpdData * +Evas_List * convert_rowlist_in_playlist_with_id(Evas_List *rowlist) { - Evas_List *list; + Evas_List *list=NULL, *first_rowlist; Etk_Tree_Row *row; int id; - MpdData *data=NULL; + Emphasis_Data *data=NULL; if (!rowlist) return NULL; - list = rowlist; + first_rowlist = rowlist; while (rowlist) { row = evas_list_data(rowlist); id = (int)etk_tree_row_data_get(row); - data = mpd_new_data_struct_append(data); + data = malloc(sizeof(Emphasis_Data)); data->type = MPD_DATA_TYPE_SONG; - data->song = mpd_newSong(); + data->song = malloc(sizeof(Emphasis_Song)); data->song->id = id; + list = evas_list_append(list, data); rowlist = evas_list_next(rowlist); } - rowlist = list; - data = mpd_data_get_first(data); - return data; + rowlist = first_rowlist; + return list; } /** @@ -89,7 +103,6 @@ { next = mpd_data_get_next(list); mpd_data_free(list); - printf("un free de plus youhou \\o/\n"); list = next; } } @@ -103,7 +116,7 @@ { Etk_Tree_Row *row; Evas_List *rowlist, *list; - MpdData *playlist=NULL, *tmplist; + Evas_List *playlist=NULL, *tmplist; char *artist, *album; rowlist = etk_tree_selected_rows_get(tree); @@ -122,7 +135,7 @@ } else { - playlist = mpd_data_concatenate(playlist, tmplist); + playlist = evas_list_concatenate(playlist, tmplist); } rowlist = evas_list_next(rowlist); } @@ -142,7 +155,7 @@ } else { - playlist = mpd_data_concatenate(playlist, tmplist); + playlist = evas_list_concatenate(playlist, tmplist); } rowlist = evas_list_next(rowlist); } @@ -163,7 +176,7 @@ int num=-1; char *row_str; Evas_List *rowlist=NULL; - MpdData *list; + Evas_List *list; switch (type) { @@ -206,6 +219,42 @@ return strdup(str); } +void +print_evas_list_stats(Evas_List *list) +{ + Evas_List *p; + p = list; + Emphasis_Data *data; + int count=0; + + while (p) + { + data = evas_list_data(p); + switch (data->type) + { + case MPD_DATA_TYPE_NONE: + printf("MPD_DATA_TYPE_NONE\n"); + break; + case MPD_DATA_TYPE_TAG: + printf("MPD_DATA_TYPE_TAG\n"); + break; + case MPD_DATA_TYPE_DIRECTORY: + printf("MPD_DATA_TYPE_DIRECTORY\n"); + break; + case MPD_DATA_TYPE_SONG: + printf("MPD_DATA_TYPE_SONG\n"); + break; + case MPD_DATA_TYPE_PLAYLIST: + printf("MPD_DATA_TYPE_PLAYLIST\n"); + break; + } + p = evas_list_next(p); + count++; + } + printf("total numbers of elements : %d\n", count); +} + + Emphasis_Song * convert_mpd_song(mpd_Song *src) { @@ -237,13 +286,13 @@ { int loop=1; Evas_List *dest=NULL; + Emphasis_Data *data; if (!src) return NULL; while (loop) { - Emphasis_Data *data; data = malloc(sizeof(Emphasis_Data)); switch (src->type) @@ -277,6 +326,7 @@ src = mpd_data_get_next(src); } src = mpd_data_get_first(src); + return dest; } @@ -349,3 +399,35 @@ return dest; } +void +emphasis_list_free(Evas_List *list, MpdDataType mpd_type) +{ + Emphasis_Data *data; + + list = evas_list_last(list); + while (evas_list_prev(list)) + { + data = evas_list_data(list); + if (data->song) + { + if (data->song->file) { free(data->song->file); } + if (data->song->artist) { free(data->song->artist); } + if (data->song->title) { free(data->song->title); } + if (data->song->album) { free(data->song->album); } + if (data->song->track) { free(data->song->track); } + if (data->song->name) { free(data->song->name); } + if (data->song->date) { free(data->song->date); } + if (data->song->genre) { free(data->song->genre); } + if (data->song->composer) { free(data->song->composer); } + free(data->song); + } + if (data->tag) { free(data->tag); } + if (data->playlist) { free(data->playlist); } + if (data->directory) { free(data->directory); } + free(data); + list = evas_list_prev(list); + } + data = evas_list_data(list); + free(data); + list = evas_list_free(list); +} =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_misc.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_misc.h 6 Jun 2006 11:22:16 -0000 1.1 +++ emphasis_misc.h 29 Jun 2006 15:41:06 -0000 1.2 @@ -46,9 +46,9 @@ MpdData *mpd_new_data_struct_append(MpdData * const data); MpdData* mpd_data_concatenate( MpdData * const first, MpdData * const second); - -MpdData *convert_rowlist_in_playlist_with_file(Evas_List *rowlist); -MpdData *convert_rowlist_in_playlist_with_id(Evas_List *rowlist); + +Evas_List *convert_rowlist_in_playlist_with_file(Evas_List *rowlist); +Evas_List *convert_rowlist_in_playlist_with_id(Evas_List *rowlist); void mpd_data_full_free(MpdData *list); void emphasis_playlist_append_selected(Etk_Tree *tree, Emphasis_Type type); void emphasis_playlist_search_and_delete(Etk_Tree *tree, char *str, Emphasis_Type type); @@ -57,6 +57,10 @@ Evas_List *convert_mpd_data(MpdData *src); mpd_Song *convert_emphasis_song(Emphasis_Song *src); MpdData *convert_evas_list(Evas_List *src); + +void print_evas_list_stats(Evas_List *list); +Evas_List *evas_list_concatenate(Evas_List *head, Evas_List *tail); +void emphasis_list_free(Evas_List *list, MpdDataType mpd_type); /** @} */ #endif /*_MISC_H_*/ =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_mpc.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_mpc.c 6 Jun 2006 11:22:16 -0000 1.1 +++ emphasis_mpc.c 29 Jun 2006 15:41:06 -0000 1.2 @@ -106,13 +106,16 @@ } if (what&MPD_CST_STATE) { + Emphasis_Gui *gui; + + gui = data; state = mpd_player_get_state(mo); switch (state) { case MPD_STATUS_STATE_STOP: emphasis_player_info_set(NULL, "Music Stoped", data); emphasis_toggle_play(data); - emphasis_pls_mark_current(ETK_TREE(((Emphasis_Gui *)data)->tree_pls), -1); + emphasis_pls_mark_current(ETK_TREE(gui->tree_pls), -1); break; case MPD_STATUS_STATE_PAUSE: song = mpd_playlist_get_current_song(mo); @@ -123,7 +126,7 @@ song = mpd_playlist_get_current_song(mo); emphasis_toggle_play(data); emphasis_player_info_set(song, NULL, data); - emphasis_pls_mark_current(ETK_TREE(((Emphasis_Gui *)data)->tree_pls), song->id); + emphasis_pls_mark_current(ETK_TREE(gui->tree_pls), song->id); break; case MPD_STATUS_STATE_UNKNOWN: emphasis_player_info_set(NULL, "wtf is that ?", data); @@ -132,8 +135,11 @@ } if (what&MPD_CST_PLAYLIST) { + Emphasis_Gui *gui; + gui = data; playlist = mpd_playlist_get_changes(mo, -1); - emphasis_tree_pls_set(ETK_TREE(((Emphasis_Gui *)data)->tree_pls), playlist); + emphasis_tree_pls_set(ETK_TREE(gui->tree_pls), convert_mpd_data(playlist)); + mpd_data_free(playlist); } if (what&MPD_CST_SONGID) { @@ -187,12 +193,17 @@ * @brief Get the artists list from mpd database * @return A list of all artists */ -MpdData * +Evas_List * mpc_mlib_artist_get(void) { MpdData *data; + Evas_List *list; + data = mpd_database_get_artists(mo); - return data; + list = convert_mpd_data(data); + + mpd_data_free(data); + return list; } /** @@ -200,12 +211,17 @@ * @param artist An artist name * @return A list of albums */ -MpdData * +Evas_List * mpc_mlib_album_get(char *artist) { MpdData *data; + Evas_List *list; + data = mpd_database_get_albums(mo, artist); - return data; + list = convert_mpd_data(data); + + mpd_data_free(data); + return list; } /** @@ -214,21 +230,24 @@ * @param album An album name * @return A list of song matchin artist and album */ -MpdData * +Evas_List * mpc_mlib_track_get(char *artist, char *album) { MpdData *data; + Evas_List *list; if ((album != NULL) || (artist != NULL)) { - data = mpd_database_find_adv(mo, 1,MPD_TAG_ITEM_ARTIST, artist, MPD_TAG_ITEM_ALBUM, album, -1); + data = mpd_database_find_adv(mo, 1, MPD_TAG_ITEM_ARTIST, artist, MPD_TAG_ITEM_ALBUM, album, -1); } else { data = mpd_database_get_complete(mo); } - - return data; + list = convert_mpd_data(data); + + mpd_data_free(data); + return list; } /** @@ -237,20 +256,22 @@ * @return The list of songs added with their id */ void -mpc_playlist_add(MpdData *list) +mpc_playlist_add(Evas_List *list) { long long id; - MpdData *next; - + Emphasis_Data *data; + id = mpd_playlist_get_playlist_id(mo); - + while (list) { - mpd_playlist_queue_add(mo, list->song->file); - list = mpd_data_get_next(list); + data = evas_list_data(list); + mpd_playlist_queue_add(mo, data->song->file); + list = evas_list_next(list); } mpd_playlist_queue_commit(mo); + emphasis_list_free(list, MPD_DATA_TYPE_SONG); } /** @@ -258,15 +279,18 @@ * @param id */ void -mpc_playlist_delete(MpdData *list) +mpc_playlist_delete(Evas_List *list) { + Emphasis_Data *data; + while (list) { - mpd_playlist_queue_delete_id(mo, list->song->id); - list = mpd_data_get_next(list); + data = evas_list_data(list); + mpd_playlist_queue_delete_id(mo, data->song->id); + list = evas_list_next(list); } mpd_playlist_queue_commit(mo); - mpd_data_free(list); + emphasis_list_free(list, MPD_DATA_TYPE_SONG); } /** @@ -428,4 +452,10 @@ rep = mpd_database_update_dir(mo, path); if (rep == 0) printf("cette fonction est indisponible... coin coin\n"); +} + +void +mpc_disconnect(void) +{ + mpd_free(mo); } =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_mpc.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_mpc.h 6 Jun 2006 11:22:16 -0000 1.1 +++ emphasis_mpc.h 29 Jun 2006 15:41:06 -0000 1.2 @@ -21,12 +21,12 @@ int mpc_assert_status(MpdState status); -MpdData *mpc_mlib_artist_get(void); -MpdData *mpc_mlib_album_get(char *artist); -MpdData *mpc_mlib_track_get(char *album, char *artist); +Evas_List *mpc_mlib_artist_get(void); +Evas_List *mpc_mlib_album_get(char *artist); +Evas_List *mpc_mlib_track_get(char *album, char *artist); -void mpc_playlist_add(MpdData *list); -void mpc_playlist_delete(MpdData *list); +void mpc_playlist_add(Evas_List *list); +void mpc_playlist_delete(Evas_List *list); void mpc_playlist_clear(void); void mpc_play_id(int id); @@ -44,5 +44,6 @@ void mpc_change_vol(int value); void mpc_database_update(char *path); +void mpc_disconnect(void); /** @} */ #endif /*_MPC_H_*/ |
From: Enlightenment C. <no...@cv...> - 2006-06-29 10:41:39
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/emphasis Modified Files: TODO Log Message: Evas_List used instead of MpdData =================================================================== RCS file: /cvs/e/e17/proto/emphasis/TODO,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- TODO 6 Jun 2006 11:22:15 -0000 1.1 +++ TODO 29 Jun 2006 15:41:06 -0000 1.2 @@ -1,4 +1,4 @@ -*Use Evas_List instead of MpdData for playlist +*Use ecore_config instead of eet *Add utf-8 support *Use Table in config frames *Put callback's on the spin button |
From: Enlightenment C. <no...@cv...> - 2006-07-01 20:52:27
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/emphasis/src/bin Modified Files: emphasis_callbacks.c emphasis_callbacks.h emphasis_gui.c emphasis_mpc.c emphasis_mpc.h Log Message: Delete option added to the menu. Volume images are now clickable. =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_callbacks.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- emphasis_callbacks.c 29 Jun 2006 15:41:06 -0000 1.2 +++ emphasis_callbacks.c 2 Jul 2006 01:51:56 -0000 1.3 @@ -573,7 +573,7 @@ * @brief Delete all the selected item from the playlist */ void -cb_playlist_delete(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data) +cb_playlist_delete(Etk_Object *object, void *data) { Emphasis_Gui *gui; Etk_Tree_Row *row; @@ -583,10 +583,25 @@ gui = (Emphasis_Gui *)data; rowlist = etk_tree_selected_rows_get(ETK_TREE(gui->tree_pls)); - row = etk_tree_first_row_get(ETK_TREE(gui->tree_pls)); list = convert_rowlist_in_playlist_with_id(rowlist); mpc_playlist_delete(list); +} + +void +cb_vol_image_clicked(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data) +{ + Emphasis_Gui *gui; + + gui = data; + if (ETK_WIDGET(object) == gui->vol_imagel) + { + mpc_change_vol(mpc_get_vol()-5); + } + else if (ETK_WIDGET(object) == gui->vol_imager) + { + mpc_change_vol(mpc_get_vol()+5); + } } /** =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_callbacks.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_callbacks.h 6 Jun 2006 11:22:15 -0000 1.1 +++ emphasis_callbacks.h 2 Jul 2006 01:51:56 -0000 1.2 @@ -32,8 +32,9 @@ void cb_pls_contextual_menu(Etk_Object *object, Etk_Event_Mouse_Up_Down *event_info, void *data); void cb_playlist_clear(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data); void cb_pls_bindings_key(Etk_Object *object, Etk_Event_Key_Up_Down *event, void *data); -void cb_playlist_delete(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data); +void cb_playlist_delete(Etk_Object *object, void *data); +void cb_vol_image_clicked(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data); void cb_vol_slider_value_changed(Etk_Object *object, double value, void *data); void cb_database_update(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data); =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_gui.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- emphasis_gui.c 29 Jun 2006 15:41:06 -0000 1.2 +++ emphasis_gui.c 2 Jul 2006 01:51:56 -0000 1.3 @@ -70,6 +70,8 @@ etk_box_pack_start(ETK_BOX(gui->vol_hbox), gui->vol_imager, ETK_FALSE, ETK_FALSE, 5); etk_box_pack_start(ETK_BOX(gui->vbox_controls), gui->vol_hbox, ETK_TRUE, ETK_TRUE, 5); etk_signal_connect("value_changed", ETK_OBJECT(gui->vol_slider), ETK_CALLBACK(cb_vol_slider_value_changed), NULL); + etk_signal_connect("mouse_down", ETK_OBJECT(gui->vol_imagel), ETK_CALLBACK(cb_vol_image_clicked), gui); + etk_signal_connect("mouse_down", ETK_OBJECT(gui->vol_imager), ETK_CALLBACK(cb_vol_image_clicked), gui); /* Repeat/Random checkbox setup */ gui->hbox_modes = etk_hbox_new(ETK_FALSE, 5); @@ -221,6 +223,7 @@ Etk_Widget *menu_item, *radio_item=NULL, *menu; emphasis_menu_append(gui->menu, "clear", ETK_STOCK_EDIT_CUT, cb_playlist_clear, NULL, + "delete", NULL, cb_playlist_delete, gui, /* "config", ETK_STOCK_PREFERENCES_SYSTEM, cb_config_show, gui, */ "Open a file", ETK_STOCK_DOCUMENT_OPEN, NULL, NULL, NULL); @@ -230,7 +233,6 @@ radio_item = etk_menu_item_radio_new_with_label_from_widget("small", ETK_MENU_ITEM_RADIO(radio_item)); etk_menu_shell_append(ETK_MENU_SHELL(gui->menu), ETK_MENU_ITEM(radio_item)); etk_signal_connect("activated", ETK_OBJECT(radio_item), ETK_CALLBACK(cb_switch_small), gui); - etk_signal_connect("mouse_down", ETK_OBJECT(gui->window), ETK_CALLBACK(cb_pls_contextual_menu), ETK_MENU(gui->menu)); =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_mpc.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- emphasis_mpc.c 29 Jun 2006 15:41:06 -0000 1.2 +++ emphasis_mpc.c 2 Jul 2006 01:51:56 -0000 1.3 @@ -437,6 +437,15 @@ } /** + * @brief Get mpd volume value + */ +int +mpc_get_vol(void) +{ + return mpd_status_get_volume(mo); +} + +/** * @brief Changed mpd volume level */ void =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_mpc.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- emphasis_mpc.h 29 Jun 2006 15:41:06 -0000 1.2 +++ emphasis_mpc.h 2 Jul 2006 01:51:56 -0000 1.3 @@ -42,6 +42,7 @@ void mpc_toggle_random(void); void mpc_toggle_repeat(void); +int mpc_get_vol(void); void mpc_change_vol(int value); void mpc_database_update(char *path); void mpc_disconnect(void); |
From: Enlightenment C. <no...@cv...> - 2006-07-02 21:33:29
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/emphasis/src/bin Modified Files: emphasis_callbacks.c emphasis_callbacks.h emphasis_gui.c emphasis_mpc.c Log Message: Update db option added to the menu. Menu Icons are restored too. =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_callbacks.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- emphasis_callbacks.c 2 Jul 2006 01:51:56 -0000 1.3 +++ emphasis_callbacks.c 3 Jul 2006 02:33:26 -0000 1.4 @@ -529,10 +529,19 @@ void cb_pls_contextual_menu(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data) { + Emphasis_Gui *gui; + + gui = data; if (event->button == 3) - { - etk_menu_popup(ETK_MENU(data)); - } + { + if (etk_tree_selected_rows_get(ETK_TREE(gui->tree_pls)) == NULL) + { + printf("coin\n"); + event->button = 1; + etk_signal_emit_by_name("row_clicked", ETK_OBJECT(gui->tree_pls), NULL, gui, event); + } + etk_menu_popup(ETK_MENU(gui->menu)); + } } /** @@ -617,9 +626,20 @@ * @brief Request an database update */ void -cb_database_update(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data) +cb_database_update(Etk_Object *object, void *data) { - mpc_database_update("/home/lok/Music/"); + Emphasis_Gui *gui; + const char *tree_title; + + mpc_database_update("/"); + emphasis_tree_mlib_init(data, EMPHASIS_ARTIST); + + /* Clear old search */ + gui = data; + etk_tree_col_title_set(etk_tree_nth_col_get(ETK_TREE(gui->tree_artist), 0), "Artist"); + etk_tree_col_title_set(etk_tree_nth_col_get(ETK_TREE(gui->tree_album), 0), "Album"); + etk_tree_col_title_set(etk_tree_nth_col_get(ETK_TREE(gui->tree_track), 0), "Track"); + } void =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_callbacks.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- emphasis_callbacks.h 2 Jul 2006 01:51:56 -0000 1.2 +++ emphasis_callbacks.h 3 Jul 2006 02:33:26 -0000 1.3 @@ -36,7 +36,7 @@ void cb_vol_image_clicked(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data); void cb_vol_slider_value_changed(Etk_Object *object, double value, void *data); -void cb_database_update(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data); +void cb_database_update(Etk_Object *object, void *data); void cb_config_show(Etk_Object *object, void *data); void cb_config_hide(Etk_Object *object, void *data); =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_gui.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- emphasis_gui.c 2 Jul 2006 01:51:56 -0000 1.3 +++ emphasis_gui.c 3 Jul 2006 02:33:26 -0000 1.4 @@ -220,13 +220,16 @@ /* playlist menu setup*/ gui->menu = etk_menu_new(); - Etk_Widget *menu_item, *radio_item=NULL, *menu; + Etk_Widget *menu_item, *separator, *radio_item=NULL, *menu; - emphasis_menu_append(gui->menu, "clear", ETK_STOCK_EDIT_CUT, cb_playlist_clear, NULL, - "delete", NULL, cb_playlist_delete, gui, + emphasis_menu_append(gui->menu, "clear", ETK_STOCK_EDIT_CLEAR, cb_playlist_clear, NULL, + "delete", ETK_STOCK_EDIT_DELETE, cb_playlist_delete, gui, + "update", ETK_STOCK_VIEW_REFRESH, cb_database_update, gui, /* "config", ETK_STOCK_PREFERENCES_SYSTEM, cb_config_show, gui, */ - "Open a file", ETK_STOCK_DOCUMENT_OPEN, NULL, NULL, NULL); + separator = etk_menu_item_separator_new(); + etk_menu_shell_append(ETK_MENU_SHELL(gui->menu), ETK_MENU_ITEM(separator)); + radio_item = etk_menu_item_radio_new_with_label_from_widget("full", NULL); etk_menu_shell_append(ETK_MENU_SHELL(gui->menu), ETK_MENU_ITEM(radio_item)); etk_signal_connect("activated", ETK_OBJECT(radio_item), ETK_CALLBACK(cb_switch_full), gui); @@ -235,9 +238,9 @@ etk_signal_connect("activated", ETK_OBJECT(radio_item), ETK_CALLBACK(cb_switch_small), gui); etk_signal_connect("mouse_down", ETK_OBJECT(gui->window), - ETK_CALLBACK(cb_pls_contextual_menu), ETK_MENU(gui->menu)); + ETK_CALLBACK(cb_pls_contextual_menu), gui); etk_signal_connect("mouse_down", ETK_OBJECT(gui->tree_pls), - ETK_CALLBACK(cb_pls_contextual_menu), ETK_MENU(gui->menu)); + ETK_CALLBACK(cb_pls_contextual_menu), gui); // etk_signal_connect("key_down", ETK_OBJECT(gui->window), // ETK_CALLBACK(cb_emphasis_bindings_key), gui); @@ -275,7 +278,7 @@ { menu_item = etk_menu_item_image_new_with_label(item_name); item_image_id = va_arg(arglist, Etk_Stock_Id); - if (item_image) + if (item_image_id) { item_image = etk_image_new_from_stock(item_image_id, ETK_STOCK_SMALL); etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(menu_item), ETK_IMAGE(item_image)); =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_mpc.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- emphasis_mpc.c 2 Jul 2006 01:51:56 -0000 1.3 +++ emphasis_mpc.c 3 Jul 2006 02:33:26 -0000 1.4 @@ -457,10 +457,7 @@ void mpc_database_update(char *path) { - int rep; - rep = mpd_database_update_dir(mo, path); - if (rep == 0) - printf("cette fonction est indisponible... coin coin\n"); + mpd_database_update_dir(mo, "/"); } void |
From: Enlightenment C. <no...@cv...> - 2006-07-07 22:53:43
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/emphasis/src/bin Modified Files: Makefile.am emphasis.c emphasis.h emphasis_callbacks.c emphasis_config.c emphasis_config.h emphasis_gui.c emphasis_mpc.c Log Message: The config now use ecore_config. The textblock is fixed and display the current song or state. Small fix on the small/full mode. =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- Makefile.am 10 Jun 2006 11:52:49 -0000 1.2 +++ Makefile.am 8 Jul 2006 03:53:40 -0000 1.3 @@ -21,4 +21,4 @@ emphasis_callbacks.c \ emphasis_misc.c -emphasis_LDADD = @my_libs@ -lmpd +emphasis_LDADD = @my_libs@ =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- emphasis.c 29 Jun 2006 15:41:06 -0000 1.2 +++ emphasis.c 8 Jul 2006 03:53:40 -0000 1.3 @@ -10,16 +10,11 @@ printf("Unable to init etk\n"); return 1; } - if (!eet_init()) + if (ecore_config_init(strdup("emphasis"))) { - printf("Unable to init eet\n"); + printf("Unable to init ecore_config\n"); return 1; } - if (!ecore_file_init()) - { - printf("Unable to init ecore_file\n"); - return 3; - } gui = malloc(sizeof(Emphasis_Gui)); if (!gui) @@ -30,6 +25,7 @@ emphasis_init_gui(gui); + emphasis_pref_init(gui); emphasis_init_connect(gui); emphasis_try_connect(gui); @@ -39,6 +35,20 @@ } void +emphasis_pref_init(void *data) +{ + Emphasis_Gui *gui; + Emphasis_Config *config; + + gui = data; + config = config_load(); + etk_window_resize(ETK_WINDOW(gui->window), config->geometry.w, config->geometry.h); + emphasis_player_info_set(NULL, "Not connected to MPD", gui); + + config_free(config); +} + +void emphasis_init_connect(Emphasis_Gui *gui) { gui->timer = ecore_timer_add(0.2, emphasis_try_connect, gui); @@ -54,10 +64,11 @@ gui = data; config = config_load(); - etk_window_resize(ETK_WINDOW(gui->window), config->geometry.w, config->geometry.h); - etk_object_data_set(ETK_OBJECT(gui->window), "config", config); + +// etk_object_data_set(ETK_OBJECT(gui->window), "config", config); timer = mpc_init(config->hostname, config->port, config->password); + config_free(config); if (!timer) { =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- emphasis.h 29 Jun 2006 15:41:06 -0000 1.2 +++ emphasis.h 8 Jul 2006 03:53:40 -0000 1.3 @@ -9,9 +9,7 @@ #include <libmpd/libmpd.h> #include <Ecore.h> -#include <Ecore_File.h> #include <Evas.h> -#include <Eet.h> #include <etk/Etk.h> #include "emphasis_mpc.h" @@ -22,6 +20,7 @@ extern MpdObj *mo; +void emphasis_pref_init(void *data); void emphasis_init_connect(Emphasis_Gui *gui); int emphasis_try_connect(void *data); =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_callbacks.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- emphasis_callbacks.c 3 Jul 2006 02:33:26 -0000 1.4 +++ emphasis_callbacks.c 8 Jul 2006 03:53:40 -0000 1.5 @@ -13,14 +13,16 @@ Etk_Widget *window; Emphasis_Config *config; - config = etk_object_data_get(object, "config"); - etk_widget_geometry_get(ETK_WIDGET(object), &(config->geometry.x), - &(config->geometry.y), &(config->geometry.w), - &(config->geometry.h)); - config_write(config); + window = ETK_WIDGET(object); + config = config_load(); + etk_widget_geometry_get(ETK_WIDGET(window), + &(config->geometry.x), &(config->geometry.y), + &(config->geometry.w), &(config->geometry.h)); + config_save(config); + config_free(config); mpc_disconnect(); - eet_shutdown(); + ecore_config_shutdown(); etk_main_quit(); } @@ -534,12 +536,6 @@ gui = data; if (event->button == 3) { - if (etk_tree_selected_rows_get(ETK_TREE(gui->tree_pls)) == NULL) - { - printf("coin\n"); - event->button = 1; - etk_signal_emit_by_name("row_clicked", ETK_OBJECT(gui->tree_pls), NULL, gui, event); - } etk_menu_popup(ETK_MENU(gui->menu)); } } @@ -649,13 +645,17 @@ Emphasis_Config *config; gui = data; - config_gui_init(gui->config_gui); + gui->config_gui = config_gui_init(); config = config_load(); config_gui_set(gui->config_gui, config); etk_widget_show_all(gui->config_gui->window); - etk_signal_connect("clicked", ETK_OBJECT(gui->config_gui->buttons_box_ok), ETK_CALLBACK(cb_config_write), gui); - etk_signal_connect("clicked", ETK_OBJECT(gui->config_gui->buttons_box_apply), ETK_CALLBACK(cb_config_write), gui); - etk_signal_connect("clicked", ETK_OBJECT(gui->config_gui->buttons_box_cancel), ETK_CALLBACK(cb_config_hide), gui); + + etk_signal_connect("clicked", ETK_OBJECT(gui->config_gui->buttons_box_ok), + ETK_CALLBACK(cb_config_write), gui); + etk_signal_connect("clicked", ETK_OBJECT(gui->config_gui->buttons_box_apply), + ETK_CALLBACK(cb_config_write), gui); + etk_signal_connect("clicked", ETK_OBJECT(gui->config_gui->buttons_box_cancel), + ETK_CALLBACK(cb_config_hide), gui->config_gui); } void @@ -664,7 +664,7 @@ Emphasis_Config_Gui *gui; gui = data; - etk_object_destroy(ETK_OBJECT(gui->window)); + etk_widget_hide(ETK_WIDGET(gui->window)); } void @@ -672,17 +672,17 @@ { Emphasis_Config *config; Emphasis_Gui *gui; - const char *port; +// const char *port; - config = config_new(); + config = config_load(); gui = data; - config->hostname = etk_entry_text_get(ETK_ENTRY(gui->config_gui->hostname_entry)); - port = etk_entry_text_get(ETK_ENTRY(gui->config_gui->port_spin)); - config->port = atoi(port); - config->password = etk_entry_text_get(ETK_ENTRY(gui->config_gui->password_entry)); + config->hostname = (char *)etk_entry_text_get(ETK_ENTRY(gui->config_gui->hostname_entry)); +// port = etk_entry_text_get(ETK_ENTRY(gui->config_gui->port_spin)); +// config->port = atoi(port); + config->password = (char *)etk_entry_text_get(ETK_ENTRY(gui->config_gui->password_entry)); - config_write(config); + config_save(config); cb_config_hide(NULL, gui->config_gui); emphasis_try_connect(gui); } @@ -695,11 +695,14 @@ gui=data; - config = etk_object_data_get(ETK_OBJECT(gui->window), "config"); +// config = etk_object_data_get(ETK_OBJECT(gui->window), "config"); + config = config_load(); etk_container_border_width_set(ETK_CONTAINER(gui->window), 6); etk_widget_show_all(gui->vpaned); etk_window_resize(ETK_WINDOW(gui->window), config->geometry.w, config->geometry.h); + + config_free(config); } void @@ -710,13 +713,21 @@ int w,h; gui=data; + + if (etk_widget_is_visible(gui->tree_pls) == ETK_FALSE) + { + return; + } etk_widget_geometry_get(gui->window, NULL, NULL, &w, &h); - config = etk_object_data_get(ETK_OBJECT(gui->window), "config"); + config = config_load(); config->geometry.w = w; config->geometry.h = h; etk_container_border_width_set(ETK_CONTAINER(gui->window), 0); etk_widget_hide_all(gui->vpaned); etk_window_resize(ETK_WINDOW(gui->window), 0, 0); + + config_save(config); + config_free(config); } =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_config.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_config.c 6 Jun 2006 11:22:15 -0000 1.1 +++ emphasis_config.c 8 Jul 2006 03:53:40 -0000 1.2 @@ -1,115 +1,70 @@ #include "emphasis.h" #include "emphasis_config.h" - -void -config_write(Emphasis_Config *config) +void +set_defaults (void) { - char *str_port, *str_x, *str_y, *str_w, *str_h; - char *config_dir; - Eet_File *ef; - - config_dir = ecore_file_get_dir(config->file_path); - if (!ecore_file_exists(config_dir)) - ecore_file_mkdir(config_dir); - else if (!ecore_file_is_dir(config_dir)) - { - printf("Error %s is not a directory\n", config_dir); - return; - } - - asprintf(&str_port, "%i", config->port); - asprintf(&str_x, "%i", config->geometry.x); - asprintf(&str_y, "%i", config->geometry.y); - asprintf(&str_w, "%i", config->geometry.w); - asprintf(&str_h, "%i", config->geometry.h); - ef = eet_open(config->file_path, EET_FILE_MODE_WRITE); - if (ef) - { - eet_write(ef, "Hostname", config->hostname, strlen(config->hostname)+1, 0); - eet_write(ef, "Port", str_port, strlen(str_port)+1, 0); - if (config->password) - eet_write(ef, "Password", config->password, strlen(config->password)+1, 0); - eet_write(ef, "x", str_x, sizeof(int), 0); - eet_write(ef, "y", str_y, sizeof(int), 0); - eet_write(ef, "w", str_w, sizeof(int), 0); - eet_write(ef, "h", str_h, sizeof(int), 0); - eet_close(ef); - } - free(str_port); - free(str_x); - free(str_y); - free(str_w); - free(str_h); + ecore_config_string_default(MPD_HOSTNAME_KEY, "localhost"); + ecore_config_int_default(MPD_PORT_KEY, 6600); + ecore_config_string_default(MPD_PASSWORD_KEY, NULL); + ecore_config_int_default(MPD_CROSSFADE_KEY, 0); + + ecore_config_int_default(EMP_GEOMETRY_X_KEY, 0); + ecore_config_int_default(EMP_GEOMETRY_Y_KEY, 0); + ecore_config_int_default(EMP_GEOMETRY_W_KEY, 500); + ecore_config_int_default(EMP_GEOMETRY_H_KEY, 400); + + ecore_config_int_default(EMP_MODE_KEY, EMPHASIS_FULL); } -/** - * @brief Load the config file - * @return The data set into the config file or the default parameters for a mpd connection - */ Emphasis_Config * config_load(void) { Emphasis_Config *config; - Eet_File *ef; - char *hostname, *password, *file_path; - - config = config_new(); - - ef = eet_open(config->file_path, EET_FILE_MODE_READ); - if (ef) - { - hostname = eet_read(ef, "Hostname", 0); - config->port = atoi(eet_read(ef, "Port", 0)); - password = eet_read(ef, "Password", 0); - config->geometry.x = atoi(eet_read(ef, "x", 0)); - config->geometry.y = atoi(eet_read(ef, "y", 0)); - config->geometry.w = atoi(eet_read(ef, "w", 0)); - config->geometry.h = atoi(eet_read(ef, "h", 0)); - eet_close(ef); - - config_str_change(config, &(config->hostname), hostname); - config_str_change(config, &(config->password), password); - } - - return config; -} -Emphasis_Config * -config_new(void) -{ - Emphasis_Config *config; - char *hostname, *password, *file_path; - config = malloc(sizeof(Emphasis_Config)); - - config_str_change(config, &(config->user_home_path), strdup(getenv("HOME"))); - asprintf(&file_path, "%s/.e/emphasis/emphasis.cfg", config->user_home_path); - config->file_path = strdup(file_path); - config->hostname = strdup("localhost"); - config->port = 6600; - config->password = NULL; - config->crossfade = 0; - config->geometry.x = 0; - config->geometry.y = 0; - config->geometry.w = 500; - config->geometry.h = 400; - + set_defaults(); + ecore_config_load(); + + config->hostname = ecore_config_string_get(MPD_HOSTNAME_KEY); + config->port = ecore_config_int_get(MPD_PORT_KEY); + config->password = ecore_config_string_get(MPD_PASSWORD_KEY); + config->crossfade = ecore_config_int_get(MPD_CROSSFADE_KEY); + + config->geometry.x = ecore_config_int_get(EMP_GEOMETRY_X_KEY); + config->geometry.y = ecore_config_int_get(EMP_GEOMETRY_Y_KEY); + config->geometry.w = ecore_config_int_get(EMP_GEOMETRY_W_KEY); + config->geometry.h = ecore_config_int_get(EMP_GEOMETRY_H_KEY); + + config->mode = ecore_config_int_get(EMP_MODE_KEY); + return config; } - + void -config_str_change(Emphasis_Config *config, const char **str, const char *value) +config_save(Emphasis_Config *config) { - if (!value) - return; + ecore_config_string_set(MPD_HOSTNAME_KEY, config->hostname); + ecore_config_int_set(MPD_PORT_KEY, config->port); + ecore_config_string_set(MPD_PASSWORD_KEY, config->password); + ecore_config_int_set(MPD_CROSSFADE_KEY, config->crossfade); + + ecore_config_int_set(EMP_GEOMETRY_X_KEY, config->geometry.x); + ecore_config_int_set(EMP_GEOMETRY_Y_KEY, config->geometry.y); + ecore_config_int_set(EMP_GEOMETRY_W_KEY, config->geometry.w); + ecore_config_int_set(EMP_GEOMETRY_H_KEY, config->geometry.h); + + ecore_config_int_set(EMP_MODE_KEY, config->mode); - *str = strdup(value); + ecore_config_save(); } -void -config_gui_init(Emphasis_Config_Gui *gui) +Emphasis_Config_Gui * +config_gui_init(void) { + Emphasis_Config_Gui *gui; + gui = malloc(sizeof(Emphasis_Config_Gui)); + gui->window = etk_window_new(); etk_window_title_set(ETK_WINDOW(gui->window),"Emphasis Configuration"); etk_window_wmclass_set(ETK_WINDOW(gui->window), "Emphasis Configuration", "emphasis"); @@ -135,7 +90,7 @@ gui->port_label = etk_label_new("Port :"); // gui->port_spin = etk_spin_button_new(0, 65536, 1); etk_box_pack_start(ETK_BOX(gui->port_hbox), gui->port_label, ETK_TRUE, ETK_TRUE, 0); - etk_box_pack_start(ETK_BOX(gui->port_hbox), gui->port_spin, ETK_TRUE, ETK_TRUE, 0); +// etk_box_pack_start(ETK_BOX(gui->port_hbox), gui->port_spin, ETK_TRUE, ETK_TRUE, 0); etk_box_pack_start(ETK_BOX(gui->connection_vbox), gui->port_hbox, ETK_TRUE, ETK_TRUE, 5); gui->password_hbox = etk_hbox_new(ETK_TRUE, 0); @@ -157,7 +112,7 @@ gui->rowheight_label = etk_label_new("Row Height :"); // gui->rowheight_spin = etk_spin_button_new(0, 50, 1); etk_box_pack_start(ETK_BOX(gui->rowheight_hbox), gui->rowheight_label, ETK_TRUE, ETK_TRUE, 0); - etk_box_pack_start(ETK_BOX(gui->rowheight_hbox), gui->rowheight_spin, ETK_TRUE, ETK_TRUE, 0); +// etk_box_pack_start(ETK_BOX(gui->rowheight_hbox), gui->rowheight_spin, ETK_TRUE, ETK_TRUE, 0); etk_box_pack_start(ETK_BOX(gui->interface_vbox), gui->rowheight_hbox, ETK_TRUE, ETK_TRUE, 5); /**/ @@ -169,15 +124,25 @@ etk_box_pack_start(ETK_BOX(gui->buttons_box_hbox), gui->buttons_box_apply, ETK_TRUE, ETK_FALSE, 0); etk_box_pack_start(ETK_BOX(gui->buttons_box_hbox), gui->buttons_box_cancel, ETK_TRUE, ETK_FALSE, 0); etk_box_pack_start(ETK_BOX(gui->vbox), gui->buttons_box_hbox, ETK_FALSE, ETK_FALSE, 0); + + return gui; } void config_gui_set(Emphasis_Config_Gui *gui, Emphasis_Config *config) { - char *port; +// char *port; etk_entry_text_set(ETK_ENTRY(gui->hostname_entry), config->hostname); - asprintf(&port, "%d", config->port); - etk_entry_text_set(ETK_ENTRY(gui->port_spin), port); - if (config->password) +// asprintf(&port, "%d", config->port); +// etk_entry_text_set(ETK_ENTRY(gui->port_spin), port); + if (config->password != NULL && strlen(config->password) != 0) etk_entry_text_set(ETK_ENTRY(gui->password_entry), config->password); +} + +void +config_free(Emphasis_Config *config) +{ + if (config->hostname) { free(config->hostname); } + if (config->password) { free(config->password); } + free(config); } =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_config.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- emphasis_config.h 6 Jun 2006 11:22:15 -0000 1.1 +++ emphasis_config.h 8 Jul 2006 03:53:40 -0000 1.2 @@ -5,12 +5,30 @@ * @{ */ -typedef struct _Emphasis_Config { - const char *user_home_path; - const char *file_path; - const char *hostname; +#include <Ecore_Config.h> + +#define MPD_HOSTNAME_KEY "/mpd/hostname" +#define MPD_PORT_KEY "/mpd/port" +#define MPD_PASSWORD_KEY "/mpd/password" +#define MPD_CROSSFADE_KEY "/mpd/crossfade" /*TODO handle the crossfade */ + +#define EMP_GEOMETRY_X_KEY "/geometry/x" +#define EMP_GEOMETRY_Y_KEY "/geometry/y" +#define EMP_GEOMETRY_W_KEY "/geometry/w" +#define EMP_GEOMETRY_H_KEY "/geometry/h" +#define EMP_MODE_KEY "/emphasis/mode" + +typedef enum +{ + EMPHASIS_SMALL=0, + EMPHASIS_FULL=1 +} Emphasis_Mode; + +typedef struct _Emphasis_Config +{ + char *hostname; int port; - const char *password; + char *password; int crossfade; struct { @@ -20,12 +38,7 @@ int h; } geometry; - enum { - EMPHASIS_PLAYER, - EMPHASIS_PLAYLIST, - EMPHASIS_FULL - } display_mode; - + Emphasis_Mode mode; } Emphasis_Config; struct _Emphasis_Config_Gui { @@ -62,11 +75,12 @@ typedef struct _Emphasis_Config_Gui Emphasis_Config_Gui; -void config_write(Emphasis_Config *config); +void config_save(Emphasis_Config *config); Emphasis_Config *config_load(void); void config_str_change(Emphasis_Config *config, const char **str, const char *value); -void config_gui_init(Emphasis_Config_Gui *gui); +Emphasis_Config_Gui *config_gui_init(void); void config_gui_set(Emphasis_Config_Gui *gui, Emphasis_Config *config); Emphasis_Config *config_new(void); +void config_free(Emphasis_Config *config); /** @} */ #endif /*_CONFIG_H_*/ =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_gui.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- emphasis_gui.c 3 Jul 2006 02:33:26 -0000 1.4 +++ emphasis_gui.c 8 Jul 2006 03:53:40 -0000 1.5 @@ -225,7 +225,7 @@ emphasis_menu_append(gui->menu, "clear", ETK_STOCK_EDIT_CLEAR, cb_playlist_clear, NULL, "delete", ETK_STOCK_EDIT_DELETE, cb_playlist_delete, gui, "update", ETK_STOCK_VIEW_REFRESH, cb_database_update, gui, - /* "config", ETK_STOCK_PREFERENCES_SYSTEM, cb_config_show, gui, */ + "config", ETK_STOCK_PREFERENCES_SYSTEM, cb_config_show, gui, NULL); separator = etk_menu_item_separator_new(); etk_menu_shell_append(ETK_MENU_SHELL(gui->menu), ETK_MENU_ITEM(separator)); @@ -508,25 +508,31 @@ { char *info; + etk_textblock_clear(ETK_TEXT_VIEW(gui->song_info)->textblock); if (song) { char **table[] = {&(song->artist), &(song->title), &(song->album), NULL}; emphasis_unknow_if_null(table); - asprintf(&info, "<p><font_size=11> %s - %s</p><br> %s", song->artist, song->title, song->album); + asprintf(&info, "<b><font size=12>%s</font></b>\n \n" + "<i>by</i> <font size=11>%s</font> " + "<i>in</i> <font size=11>%s</font> ", + song->title, song->artist, song->album); if (msg) { asprintf(&info, "%s (%s)", info, msg); } -// etk_textblock_text_set(ETK_TEXT_VIEW(gui->song_info)->textblock, info); + etk_textblock_text_set(ETK_TEXT_VIEW(gui->song_info)->textblock, info, + ETK_TRUE); free(info); } else { if (msg) { - asprintf(&info, "<center><font_size=11>%s</></center>", msg); -// etk_textblock_text_set(ETK_TEXT_VIEW(gui->song_info)->textblock, info); + asprintf(&info, "%s", msg); + etk_textblock_text_set(ETK_TEXT_VIEW(gui->song_info)->textblock, info, + ETK_TRUE); free(info); } } =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_mpc.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- emphasis_mpc.c 3 Jul 2006 02:33:26 -0000 1.4 +++ emphasis_mpc.c 8 Jul 2006 03:53:40 -0000 1.5 @@ -18,12 +18,10 @@ if (!mpd_connect(mo)) { mpd_send_password(mo); - printf("MPD daemon found at %s:%d\n", hostname, port); timer = ecore_timer_add(0.2, mpc_update, NULL); } else { - printf("MPD daemon not found at %s:%d \n", hostname, port); timer = NULL; } @@ -157,14 +155,9 @@ { if (!connect) { - emphasis_player_info_set(NULL, "Not connected to MPD daemon", data); - // emphasis_clear(data); + emphasis_player_info_set(NULL, "Not connected to MPD", data); ecore_timer_del(((Emphasis_Gui*)data)->timer); ((Emphasis_Gui*)data)->timer = ecore_timer_add(0.2, emphasis_try_connect, data); - } - if (connect) - { - printf("platypus\n"); } } |
From: Enlightenment C. <no...@cv...> - 2006-07-07 22:54:15
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/emphasis Modified Files: README TODO configure.in Log Message: The config now use ecore_config. The textblock is fixed and display the current song or state. Small fix on the small/full mode. =================================================================== RCS file: /cvs/e/e17/proto/emphasis/README,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- README 6 Jun 2006 11:22:15 -0000 1.1 +++ README 8 Jul 2006 03:53:40 -0000 1.2 @@ -14,7 +14,6 @@ ##################################### State: - MoOm is currently rewriting the Etk_Textblock, so it has been desactivated. Etk_Spinner has been remove frome etk cvs so the config panel isn't usable. ##################################### =================================================================== RCS file: /cvs/e/e17/proto/emphasis/TODO,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- TODO 29 Jun 2006 15:41:06 -0000 1.2 +++ TODO 8 Jul 2006 03:53:40 -0000 1.3 @@ -1,4 +1,3 @@ -*Use ecore_config instead of eet *Add utf-8 support *Use Table in config frames *Put callback's on the spin button =================================================================== RCS file: /cvs/e/e17/proto/emphasis/configure.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- configure.in 11 Jun 2006 23:11:02 -0000 1.3 +++ configure.in 8 Jul 2006 03:53:40 -0000 1.4 @@ -74,23 +74,6 @@ ] ) -#check for EVAS -AC_PATH_EFL( - evas, - 0.9.9.022, - [ - AC_DEFINE(HAVE_EVAS, 1, have EVAS) - evas="EVAS " - AM_CONDITIONAL(HAVE_EVAS, true) - have_evas="yes" - evas_libs=`evas-config --libs` - evas_cflags=`evas-config --cflags` - ], - [ - AC_MSG_ERROR([No Evas, can't build.]) - ] -) - #check for ETK AC_PATH_EFL( etk, @@ -108,32 +91,22 @@ ] ) -#check for EET -AC_PATH_EFL( - eet, - 0.9.10.026, - [ - AC_DEFINE(HAVE_EET, 1, have EET) - eet="EET " - AM_CONDITIONAL(HAVE_EET, true) - have_eet="yes" - eet_libs=`eet-config --libs` - eet_cflags=`eet-config --cflags` - ], - [ - AC_DEFINE(HAVE_EET, 0, no EET) - AM_CONDITIONAL(HAVE_EET, false) - AC_MSG_WARN([No EET, can't build EET desktop support.]) - have_eet="no" - eet_libs="" - eet_cflags="" - ] -) - #check for libmpd PKG_CHECK_MODULES( [libmpd], - libmpd >= 0.12.0) + libmpd >= 0.12.0, + [ + AC_DEFINE(HAVE_LIBMPD, 1, have LIBMPD) + libmpd="libmpd" + AM_CONDITIONAL(HAVE_LIBMPD, true) + have_libmpd="yes" + libmpd_libs=`pkg-config --libs libmpd` + libmpd_cflags=`pkg-config --cflags libmpd` + ], + [ + AC_MSG_ERROR([libmpd not found.]) + ] +) dnl Set ETK_PACKAGE_DATA_DIR in config.h. etk_prefix="\"`etk-config --prefix`/share/etk\"" @@ -142,16 +115,14 @@ ecore_libs=`ecore-config --libs` ecore_cflags=`ecore-config --cflags` -evas_libs=`evas-config --libs` -evas_cflags=`evas-config --cflags` etk_libs=`etk-config --libs` etk_cflags=`etk-config --cflags` -eet_libs=`eet-config --libs` -eet_cflags=`eet-config --cflags` +libmpd_libs=`pkg-config --libs libmpd` +libmpd_cflags=`pkg-config --cflags libmpd` # add your required libs / include here -my_includes="$ecore_cflags $evas_cflags $etk_cflags $eet_cflags" -my_libs="$ecore_libs $evas_libs $etk_libs $eet_lib" +my_includes="$ecore_cflags $etk_cflags $libmpd_cflags" +my_libs="$ecore_libs $etk_libs $libmpd_libs" AC_SUBST(my_includes) AC_SUBST(my_libs) |
From: Enlightenment C. <no...@cv...> - 2006-07-09 13:27:45
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/emphasis/src/bin Modified Files: emphasis.c emphasis_callbacks.c emphasis_config.c emphasis_config.h emphasis_gui.c Log Message: the config keep the last width of playlist's columns. textblock fixed. =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- emphasis.c 8 Jul 2006 03:53:40 -0000 1.3 +++ emphasis.c 9 Jul 2006 18:27:39 -0000 1.4 @@ -42,7 +42,14 @@ gui = data; config = config_load(); + /* Set the last size of the window */ etk_window_resize(ETK_WINDOW(gui->window), config->geometry.w, config->geometry.h); + /* Set the last width of the playlist's columns */ + etk_tree_col_width_set(etk_tree_nth_col_get(ETK_TREE(gui->tree_pls), 0), config->colwidth.title); + etk_tree_col_width_set(etk_tree_nth_col_get(ETK_TREE(gui->tree_pls), 1), config->colwidth.time); + etk_tree_col_width_set(etk_tree_nth_col_get(ETK_TREE(gui->tree_pls), 2), config->colwidth.artist); + etk_tree_col_width_set(etk_tree_nth_col_get(ETK_TREE(gui->tree_pls), 3), config->colwidth.album); + emphasis_player_info_set(NULL, "Not connected to MPD", gui); config_free(config); =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_callbacks.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- emphasis_callbacks.c 8 Jul 2006 03:53:40 -0000 1.5 +++ emphasis_callbacks.c 9 Jul 2006 18:27:39 -0000 1.6 @@ -10,14 +10,22 @@ void cb_quit(Etk_Object *object, void *data) { + Emphasis_Gui *gui; Etk_Widget *window; Emphasis_Config *config; + gui = data; window = ETK_WIDGET(object); config = config_load(); + etk_widget_geometry_get(ETK_WIDGET(window), &(config->geometry.x), &(config->geometry.y), &(config->geometry.w), &(config->geometry.h)); + config->colwidth.title = etk_tree_col_width_get(etk_tree_nth_col_get(ETK_TREE(gui->tree_pls), 0)); + config->colwidth.time = etk_tree_col_width_get(etk_tree_nth_col_get(ETK_TREE(gui->tree_pls), 1)); + config->colwidth.artist = etk_tree_col_width_get(etk_tree_nth_col_get(ETK_TREE(gui->tree_pls), 2)); + config->colwidth.album = etk_tree_col_width_get(etk_tree_nth_col_get(ETK_TREE(gui->tree_pls), 3)); + config_save(config); config_free(config); @@ -198,7 +206,7 @@ types = calloc(1, sizeof(char)); num_types = 1; - types[0] = strdup("Evas_List"); + types[0] = strdup("Emphasis_Playlist"); etk_drag_types_set(drag, types, num_types); etk_drag_data_set(drag, playlist, 1); @@ -256,7 +264,7 @@ types = calloc(1, sizeof(char)); num_types = 1; - types[0] = strdup("Evas_List"); + types[0] = strdup("Emphasis_Playlist"); etk_drag_types_set(drag, types, num_types); etk_drag_data_set(drag, playlist, 1); @@ -302,7 +310,7 @@ types = calloc(1, sizeof(char)); num_types = 1; - types[0] = strdup("Evas_List"); + types[0] = strdup("Emphasis_Playlist"); etk_drag_types_set(drag, types, num_types); etk_drag_data_set(drag, playlist, 1); @@ -331,6 +339,13 @@ tree = ETK_TREE(object); drag = ETK_DRAG((ETK_WIDGET(data))->drag); + if (drag == NULL || + drag->types == NULL || + drag->types[0] == NULL || + strcmp("Emphasis_Playlist", drag->types[0])) + { + return; + } list = drag->data; mpc_playlist_add(list); =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_config.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- emphasis_config.c 8 Jul 2006 03:53:40 -0000 1.2 +++ emphasis_config.c 9 Jul 2006 18:27:39 -0000 1.3 @@ -11,10 +11,15 @@ ecore_config_int_default(EMP_GEOMETRY_X_KEY, 0); ecore_config_int_default(EMP_GEOMETRY_Y_KEY, 0); - ecore_config_int_default(EMP_GEOMETRY_W_KEY, 500); - ecore_config_int_default(EMP_GEOMETRY_H_KEY, 400); + ecore_config_int_default(EMP_GEOMETRY_W_KEY, 700); + ecore_config_int_default(EMP_GEOMETRY_H_KEY, 600); ecore_config_int_default(EMP_MODE_KEY, EMPHASIS_FULL); + + ecore_config_int_default(EMP_COLWIDTH_TITLE_KEY, 220); + ecore_config_int_default(EMP_COLWIDTH_TIME_KEY, 50); + ecore_config_int_default(EMP_COLWIDTH_ARTIST_KEY, 100); + ecore_config_int_default(EMP_COLWIDTH_ALBUM_KEY, 100); } Emphasis_Config * @@ -38,6 +43,11 @@ config->mode = ecore_config_int_get(EMP_MODE_KEY); + config->colwidth.title = ecore_config_int_get(EMP_COLWIDTH_TITLE_KEY); + config->colwidth.time = ecore_config_int_get(EMP_COLWIDTH_TIME_KEY); + config->colwidth.artist = ecore_config_int_get(EMP_COLWIDTH_ARTIST_KEY); + config->colwidth.album = ecore_config_int_get(EMP_COLWIDTH_ALBUM_KEY); + return config; } @@ -55,6 +65,11 @@ ecore_config_int_set(EMP_GEOMETRY_H_KEY, config->geometry.h); ecore_config_int_set(EMP_MODE_KEY, config->mode); + + ecore_config_int_set(EMP_COLWIDTH_TITLE_KEY, config->colwidth.title); + ecore_config_int_set(EMP_COLWIDTH_TIME_KEY, config->colwidth.time); + ecore_config_int_set(EMP_COLWIDTH_ARTIST_KEY, config->colwidth.artist); + ecore_config_int_set(EMP_COLWIDTH_ALBUM_KEY, config->colwidth.album); ecore_config_save(); } =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_config.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- emphasis_config.h 8 Jul 2006 03:53:40 -0000 1.2 +++ emphasis_config.h 9 Jul 2006 18:27:39 -0000 1.3 @@ -16,7 +16,12 @@ #define EMP_GEOMETRY_Y_KEY "/geometry/y" #define EMP_GEOMETRY_W_KEY "/geometry/w" #define EMP_GEOMETRY_H_KEY "/geometry/h" -#define EMP_MODE_KEY "/emphasis/mode" +#define EMP_MODE_KEY "/emphasis/mode" + +#define EMP_COLWIDTH_TITLE_KEY "/emphasis/colwidth/title" +#define EMP_COLWIDTH_TIME_KEY "/emphasis/colwidth/time" +#define EMP_COLWIDTH_ARTIST_KEY "/emphasis/colwidth/artist" +#define EMP_COLWIDTH_ALBUM_KEY "/emphasis/colwidth/album" typedef enum { @@ -37,6 +42,13 @@ int w; int h; } geometry; + + struct { + int title; + int time; + int artist; + int album; + } colwidth; Emphasis_Mode mode; } Emphasis_Config; =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_gui.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- emphasis_gui.c 8 Jul 2006 03:53:40 -0000 1.5 +++ emphasis_gui.c 9 Jul 2006 18:27:39 -0000 1.6 @@ -236,12 +236,18 @@ radio_item = etk_menu_item_radio_new_with_label_from_widget("small", ETK_MENU_ITEM_RADIO(radio_item)); etk_menu_shell_append(ETK_MENU_SHELL(gui->menu), ETK_MENU_ITEM(radio_item)); etk_signal_connect("activated", ETK_OBJECT(radio_item), ETK_CALLBACK(cb_switch_small), gui); - + + /* Do we need all this connect ? */ etk_signal_connect("mouse_down", ETK_OBJECT(gui->window), ETK_CALLBACK(cb_pls_contextual_menu), gui); etk_signal_connect("mouse_down", ETK_OBJECT(gui->tree_pls), ETK_CALLBACK(cb_pls_contextual_menu), gui); - + etk_signal_connect("mouse_down", ETK_OBJECT(gui->tree_artist), + ETK_CALLBACK(cb_pls_contextual_menu), gui); + etk_signal_connect("mouse_down", ETK_OBJECT(gui->tree_album), + ETK_CALLBACK(cb_pls_contextual_menu), gui); + etk_signal_connect("mouse_down", ETK_OBJECT(gui->tree_track), + ETK_CALLBACK(cb_pls_contextual_menu), gui); // etk_signal_connect("key_down", ETK_OBJECT(gui->window), // ETK_CALLBACK(cb_emphasis_bindings_key), gui); @@ -508,15 +514,14 @@ { char *info; - etk_textblock_clear(ETK_TEXT_VIEW(gui->song_info)->textblock); if (song) { char **table[] = {&(song->artist), &(song->title), &(song->album), NULL}; emphasis_unknow_if_null(table); - asprintf(&info, "<b><font size=12>%s</font></b>\n \n" + asprintf(&info, "\n<b><font size=12>%s</font></b> \n \n" "<i>by</i> <font size=11>%s</font> " - "<i>in</i> <font size=11>%s</font> ", + "<i>in</i> <font size=11>%s</font> \n \n", song->title, song->artist, song->album); if (msg) { @@ -524,6 +529,7 @@ } etk_textblock_text_set(ETK_TEXT_VIEW(gui->song_info)->textblock, info, ETK_TRUE); + free(info); } else |
From: Enlightenment C. <no...@cv...> - 2006-07-09 13:27:46
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/emphasis Modified Files: README Log Message: the config keep the last width of playlist's columns. textblock fixed. =================================================================== RCS file: /cvs/e/e17/proto/emphasis/README,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- README 8 Jul 2006 03:53:40 -0000 1.2 +++ README 9 Jul 2006 18:27:39 -0000 1.3 @@ -25,4 +25,7 @@ Depends: libmpd 0.12.0 ( svn co https://svn.musicpd.org/libmpd/trunk libmpd ) mpd 0.12.0 ( svn co https://svn.musicpd.org/mpd/trunk mpd ) - Etk ( Enlightenment DR17 cvs: ano...@an...:/var/cvs/e ) + A special debian repository for this version : + http://musicpd.org/~normalperson/debian/ + + Ecore and Etk ( Enlightenment DR17 cvs: ano...@an...:/var/cvs/e ) |
From: Enlightenment C. <no...@cv...> - 2006-07-18 17:04:48
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/etk/src/lib Modified Files: etk_tree.c Log Message: [Treeview] Bugfixes : select the row before send the "selected_row" signal increase the num_selected_rows on the select_all() =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_tree.c,v retrieving revision 1.65 retrieving revision 1.66 diff -u -3 -r1.65 -r1.66 --- etk_tree.c 4 Jul 2006 17:35:33 -0000 1.65 +++ etk_tree.c 18 Jul 2006 22:04:44 -0000 1.66 @@ -2860,10 +2860,12 @@ if (!row) return; - + + row->tree->num_selected_rows = 0; for (r = row->first_child; r; r = r->next) { r->selected = ETK_TRUE; + ++row->tree->num_selected_rows; if (r->expanded) _etk_tree_row_select_all(r); } @@ -2986,14 +2988,14 @@ { etk_tree_unselect_all(tree); tree->num_selected_rows = 1; + row->selected = ETK_TRUE; + tree->last_selected = row; if(tree->dnd_event) etk_widget_theme_object_signal_emit(ETK_WIDGET(tree), "row_selected"); else etk_signal_emit(_etk_tree_signals[ETK_TREE_ROW_SELECTED_SIGNAL], ETK_OBJECT(tree), NULL, row); } - - row->selected = ETK_TRUE; - tree->last_selected = row; + tree->last_selected = row; } } |
From: Enlightenment C. <no...@cv...> - 2006-07-20 23:05:29
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/emphasis/src/bin Modified Files: Makefile.am emphasis.c emphasis.h emphasis_callbacks.c emphasis_callbacks.h emphasis_config.c emphasis_config.h emphasis_gui.c emphasis_gui.h emphasis_misc.c emphasis_misc.h emphasis_mpc.c emphasis_mpc.h Added Files: emphasis_config_gui.c emphasis_config_gui.h emphasis_convert.c emphasis_convert.h emphasis_cover.c emphasis_cover.h emphasis_cover_db.c emphasis_cover_db.h emphasis_data_list.c emphasis_data_list.h emphasis_media.c emphasis_media.h emphasis_player.c emphasis_player.h Log Message: Cover support added. Emphasis now use enhance. Big code clean-up + bugfixes. =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/Makefile.am,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- Makefile.am 8 Jul 2006 03:53:40 -0000 1.3 +++ Makefile.am 21 Jul 2006 04:05:27 -0000 1.4 @@ -1,24 +1,38 @@ ## Process this file with automake to produce Makefile.in AM_CFLAGS = \ --Wall -g -Wno-unused -D_GNU_SOURCE $(my_includes) +-Wall -W -g -D_GNU_SOURCE $(my_includes) bin_PROGRAMS = emphasis emphasis_INCLUDES = \ emphasis.h \ emphasis_mpc.h \ +emphasis_player.h \ emphasis_config.h \ +emphasis_config_gui.h \ emphasis_gui.h \ +emphasis_media.h \ emphasis_callbacks.h \ -emphasis_misc.h +emphasis_misc.h \ +emphasis_cover.h \ +emphasis_cover_db.h \ +emphasis_convert.h \ +emphasis_data_list.h emphasis_SOURCES = \ emphasis.c \ emphasis_mpc.c \ +emphasis_player.c \ emphasis_config.c \ +emphasis_config_gui.c \ emphasis_gui.c \ +emphasis_media.c \ emphasis_callbacks.c \ -emphasis_misc.c +emphasis_misc.c \ +emphasis_cover.c \ +emphasis_cover_db.c \ +emphasis_convert.c \ +emphasis_data_list.c emphasis_LDADD = @my_libs@ =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- emphasis.c 9 Jul 2006 18:27:39 -0000 1.4 +++ emphasis.c 21 Jul 2006 04:05:27 -0000 1.5 @@ -1,99 +1,110 @@ #include "emphasis.h" int -main (int argc, char **argv) +main(int argc, char **argv) { - Emphasis_Gui *gui; + Emphasis_Gui *gui; + + /* void */ enhance_init(); + if (!etk_init(&argc, argv)) + { + fprintf(stderr, "Unable to init etk\n"); + return 1; + } + if (ecore_config_init("emphasis")) + { + fprintf(stderr, "Unable to init ecore_config\n"); + return 1; + } + + gui = malloc(sizeof(Emphasis_Gui)); + if (!gui) + { + fprintf(stderr, "Memory full\n"); + exit(1); + } + + emphasis_init_gui(gui); + emphasis_pref_init(gui); + emphasis_init_connect(gui); + emphasis_cover_init(gui); + emphasis_try_connect(gui); - if (!etk_init(&argc, argv)) - { - printf("Unable to init etk\n"); - return 1; - } - if (ecore_config_init(strdup("emphasis"))) - { - printf("Unable to init ecore_config\n"); - return 1; - } - - gui = malloc(sizeof(Emphasis_Gui)); - if (!gui) - { - printf("Memory full\n"); - exit(1); - } - - emphasis_init_gui(gui); - - emphasis_pref_init(gui); - emphasis_init_connect(gui); - emphasis_try_connect(gui); - - etk_main(); + etk_main(); - return 0; + /* enhance_free(gui->player->en); *HUM* *HUM* */ + + return 0; } + void emphasis_pref_init(void *data) { - Emphasis_Gui *gui; - Emphasis_Config *config; - - gui = data; - config = config_load(); - /* Set the last size of the window */ - etk_window_resize(ETK_WINDOW(gui->window), config->geometry.w, config->geometry.h); - /* Set the last width of the playlist's columns */ - etk_tree_col_width_set(etk_tree_nth_col_get(ETK_TREE(gui->tree_pls), 0), config->colwidth.title); - etk_tree_col_width_set(etk_tree_nth_col_get(ETK_TREE(gui->tree_pls), 1), config->colwidth.time); - etk_tree_col_width_set(etk_tree_nth_col_get(ETK_TREE(gui->tree_pls), 2), config->colwidth.artist); - etk_tree_col_width_set(etk_tree_nth_col_get(ETK_TREE(gui->tree_pls), 3), config->colwidth.album); + Emphasis_Gui *gui; + Emphasis_Player_Gui *player; + Emphasis_Config *config; + + gui = data; + player = gui->player; + config = config_load(); + + /* Set the last size of the window */ + etk_window_resize(ETK_WINDOW(player->full.window), config->geometry.w, + config->geometry.h); + /* Set the last width of the playlist's columns */ + etk_tree_col_width_set(ETK_TREE_COL_GET(player->media.pls, 0), + config->colwidth.title); + etk_tree_col_width_set(ETK_TREE_COL_GET(player->media.pls, 1), + config->colwidth.time); + etk_tree_col_width_set(ETK_TREE_COL_GET(player->media.pls, 2), + config->colwidth.artist); + etk_tree_col_width_set(ETK_TREE_COL_GET(player->media.pls, 3), + config->colwidth.album); - emphasis_player_info_set(NULL, "Not connected to MPD", gui); + emphasis_player_mode_set(player, config->mode); + emphasis_player_info_set(player, NULL, "Not connected to MPD"); - config_free(config); + config_free(config); } void emphasis_init_connect(Emphasis_Gui *gui) { - gui->timer = ecore_timer_add(0.2, emphasis_try_connect, gui); + gui->timer = ecore_timer_add(0.2, emphasis_try_connect, gui); } int emphasis_try_connect(void *data) { - Emphasis_Gui *gui; - Evas_List *artist_list; - Emphasis_Config *config; - Ecore_Timer *timer; - - gui = data; - config = config_load(); - -// etk_object_data_set(ETK_OBJECT(gui->window), "config", config); - - timer = mpc_init(config->hostname, config->port, config->password); - config_free(config); - - if (!timer) - { - emphasis_clear(gui); - return 1; - } - else - { - ecore_timer_del(gui->timer); - gui->timer = timer; - - artist_list = mpc_mlib_artist_get(); - Emphasis_Data *data; - data = evas_list_data(artist_list); - emphasis_tree_mlib_set(ETK_TREE(gui->tree_artist), artist_list, MPD_DATA_TYPE_TAG); - etk_tree_row_select(etk_tree_first_row_get(ETK_TREE(gui->tree_artist))); - - mpc_signal_connect_status_changed(gui); - return 0; - } + Emphasis_Gui *gui; + Emphasis_Config *config; + Evas_List *artist_list; + Ecore_Timer *timer; + + gui = data; + config = config_load(); + + timer = mpc_init(config->hostname, config->port, config->password); + config_free(config); + + if (!timer) + { + emphasis_clear(gui); + return 1; + } + else + { + ecore_timer_del(gui->timer); + gui->timer = timer; + + artist_list = mpc_mlib_artist_get(); + emphasis_tree_mlib_set(ETK_TREE(gui->player->media.artist), artist_list, + MPD_DATA_TYPE_TAG, NULL); + etk_tree_row_select(etk_tree_first_row_get + (ETK_TREE(gui->player->media.artist))); + + mpc_signal_connect_status_changed(gui); + return 0; + } } =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- emphasis.h 8 Jul 2006 03:53:40 -0000 1.3 +++ emphasis.h 21 Jul 2006 04:05:27 -0000 1.4 @@ -1,9 +1,10 @@ -#ifndef _EMPHASIS_H_ -#define _EMPHASIS_H_ +#ifndef EMPHASIS_H_ +#define EMPHASIS_H_ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <pthread.h> #include "config.h" #include <libmpd/libmpd.h> @@ -11,12 +12,24 @@ #include <Ecore.h> #include <Evas.h> #include <etk/Etk.h> +#include <Enhance.h> #include "emphasis_mpc.h" +#include "emphasis_player.h" #include "emphasis_config.h" +#include "emphasis_config_gui.h" #include "emphasis_gui.h" +#include "emphasis_media.h" +#include "emphasis_data_list.h" +#include "emphasis_convert.h" #include "emphasis_misc.h" #include "emphasis_callbacks.h" +#include "emphasis_cover.h" +#include "emphasis_cover_db.h" + +#define ETK_TREE_COL_GET(tree, num) etk_tree_nth_col_get(ETK_TREE(tree), num) +#define UNUSED(var) (void)(var); +#define UNUSED_CLICKED_PARAM (void)(object); (void)(data); extern MpdObj *mo; @@ -24,5 +37,4 @@ void emphasis_init_connect(Emphasis_Gui *gui); int emphasis_try_connect(void *data); -#endif /*_EMPHASIS_H_*/ - +#endif /* EMPHASIS_H_ */ =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_callbacks.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- emphasis_callbacks.c 9 Jul 2006 18:27:39 -0000 1.6 +++ emphasis_callbacks.c 21 Jul 2006 04:05:27 -0000 1.7 @@ -1,37 +1,60 @@ #include "emphasis.h" -#include "emphasis_gui.h" -#include "emphasis_misc.h" #include "emphasis_callbacks.h" -#include <Evas.h> +/* TODO : update doc */ /** * @brief Quit the main loop */ void cb_quit(Etk_Object *object, void *data) { - Emphasis_Gui *gui; - Etk_Widget *window; - Emphasis_Config *config; - - gui = data; - window = ETK_WIDGET(object); - config = config_load(); - - etk_widget_geometry_get(ETK_WIDGET(window), - &(config->geometry.x), &(config->geometry.y), - &(config->geometry.w), &(config->geometry.h)); - config->colwidth.title = etk_tree_col_width_get(etk_tree_nth_col_get(ETK_TREE(gui->tree_pls), 0)); - config->colwidth.time = etk_tree_col_width_get(etk_tree_nth_col_get(ETK_TREE(gui->tree_pls), 1)); - config->colwidth.artist = etk_tree_col_width_get(etk_tree_nth_col_get(ETK_TREE(gui->tree_pls), 2)); - config->colwidth.album = etk_tree_col_width_get(etk_tree_nth_col_get(ETK_TREE(gui->tree_pls), 3)); - - config_save(config); - - config_free(config); - mpc_disconnect(); - ecore_config_shutdown(); - etk_main_quit(); + /* TODO : + * config option : stop music on exit? + */ + UNUSED(object); + + Emphasis_Player_Gui *player; + Emphasis_Config *config; + + player = data; + + config = config_load(); + + /* TODO: maybe check emphasis' mode */ + etk_widget_geometry_get(ETK_WIDGET(player->full.window), + &(config->geometry.x), &(config->geometry.y), + &(config->geometry.w), &(config->geometry.h)); + + config->colwidth.title = + etk_tree_col_width_get(ETK_TREE_COL_GET(player->media.pls, 0)); + config->colwidth.time = + etk_tree_col_width_get(ETK_TREE_COL_GET(player->media.pls, 1)); + config->colwidth.artist = + etk_tree_col_width_get(ETK_TREE_COL_GET(player->media.pls, 2)); + config->colwidth.album = + etk_tree_col_width_get(ETK_TREE_COL_GET(player->media.pls, 3)); + + config->mode = player->state; + + config_save(config); + config_free(config); + + mpc_disconnect(); + /* ecore_config_shutdown() *HUM* *HUM* */ + etk_main_quit(); +} + +/* TODO : doc */ +Etk_Bool +cb_media_quit(Etk_Object *object, void *data) +{ + Emphasis_Player_Gui *player; + player = data; + + etk_toggle_button_toggle(ETK_TOGGLE_BUTTON(player->small.media)); + + etk_widget_hide(ETK_WIDGET(object)); + return ETK_TRUE; } /** @@ -40,7 +63,8 @@ void cb_button_stop_clicked(Etk_Object *object, void *data) { - mpc_stop(); + UNUSED_CLICKED_PARAM + mpc_stop(); } /** @@ -49,7 +73,8 @@ void cb_button_prev_clicked(Etk_Object *object, void *data) { - mpc_prev(); + UNUSED_CLICKED_PARAM + mpc_prev(); } /** @@ -58,7 +83,8 @@ void cb_button_play_clicked(Etk_Object *object, void *data) { - mpc_toggle_play_pause(); + UNUSED_CLICKED_PARAM + mpc_toggle_play_pause(); } /** @@ -67,7 +93,8 @@ void cb_button_next_clicked(Etk_Object *object, void *data) { - mpc_next(); + UNUSED_CLICKED_PARAM + mpc_next(); } /** @@ -76,7 +103,8 @@ void cb_toggle_random(Etk_Object *object, void *data) { - mpc_toggle_random(); + UNUSED_CLICKED_PARAM + mpc_toggle_random(); } /** @@ -85,76 +113,184 @@ void cb_toggle_repeat(Etk_Object *object, void *data) { - mpc_toggle_repeat(); + UNUSED_CLICKED_PARAM + mpc_toggle_repeat(); +} + +/* TODO : doc */ +void +cb_toggle_full(Etk_Object *object, void *data) +{ + Emphasis_Player_Gui *player; + player = data; + + if (player->state == EMPHASIS_FULL) + { + cb_switch_small(object, data); + } + else + { + cb_switch_full(object, data); + } +} + +/* TODO : doc */ +void +cb_toggle_media(Etk_Object *object, void *data) +{ + Emphasis_Player_Gui *player; + Etk_Bool checked; + player = data; + + checked = + etk_toggle_button_active_get(ETK_TOGGLE_BUTTON(object)); + + if(checked == ETK_TRUE) + { + etk_widget_show_all(player->media.window); + } + else + { + etk_widget_hide_all(player->media.window); + } } /** - * @brief Seek in the song the same percent position that was clicked on the progress bar + * @brief Seek in the song the same percent position than the progress bar click */ void cb_seek_time(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data) { - Etk_Widget *progress; - int x_click, widget_width; - - progress = ETK_WIDGET(object); - x_click = event->widget.x; - - etk_widget_geometry_get(progress, NULL, NULL, &widget_width, NULL); - - mpc_seek((float)x_click/widget_width); + UNUSED(data) + Etk_Widget *progress; + int x_click, widget_width; + + progress = ETK_WIDGET(object); + x_click = event->widget.x; + + etk_widget_geometry_get(progress, NULL, NULL, &widget_width, NULL); + + mpc_seek((float) x_click / widget_width); +} + +void +cb_vol_image_clicked(Etk_Object *object, + Etk_Event_Mouse_Up_Down *event, + void *data) +{ + UNUSED(event) + Emphasis_Player_Gui *player; + + player = data; + if (ETK_WIDGET(object) == player->full.sound_low || + ETK_WIDGET(object) == player->small.sound_low) + { + mpc_change_vol(mpc_get_vol() - 5); + } + else if (ETK_WIDGET(object) == player->full.sound_high || + ETK_WIDGET(object) == player->small.sound_high) + { + mpc_change_vol(mpc_get_vol() + 5); + } } /** - * @brief Get the name of the artist selected, search for his albums and set the album tree with it + * @brief Changed the mpd output volume level + */ +void +cb_vol_slider_value_changed(Etk_Object *object, double value, void *data) +{ + UNUSED(object) + UNUSED(data) + mpc_change_vol(value); +} + +/** + * @brief Get the name of the selected artists, search for his albums. + * And set the album tree with. */ void cb_tree_artist_selected(Etk_Object *object, Etk_Tree_Row *row, void *data) { - Etk_Tree *tree; - Evas_List *list=NULL; - char *artist; - Emphasis_Gui *gui; - - gui = data; - tree = ETK_TREE(gui->tree_album); - - artist = etk_tree_row_data_get(row); - if (artist) - list = mpc_mlib_album_get(artist); - else - list = mpc_mlib_album_get(""); - - emphasis_tree_mlib_set(tree, list, MPD_DATA_TYPE_TAG); - - ETK_TREE(gui->tree_artist)->last_selected = row; - etk_tree_row_select(etk_tree_first_row_get(tree)); + UNUSED(object) + UNUSED(row) + Emphasis_Player_Gui *player; + Evas_List *artist_sel; + char *artist; + + player = data; + + artist_sel = etk_tree_selected_rows_get(ETK_TREE(player->media.artist)); + artist = etk_tree_row_data_get(evas_list_data(artist_sel)); + + if (artist == NULL) + { + emphasis_tree_mlib_set(ETK_TREE(player->media.album), + mpc_mlib_album_get(NULL), + MPD_DATA_TYPE_TAG, NULL); + etk_tree_row_select + (etk_tree_first_row_get(ETK_TREE(player->media.album))); + + return; + } + emphasis_tree_mlib_set(ETK_TREE(player->media.album), NULL, + MPD_DATA_TYPE_TAG, NULL); + while (artist_sel) + { + artist = etk_tree_row_data_get(evas_list_data(artist_sel)); + emphasis_tree_mlib_append(ETK_TREE(player->media.album), + mpc_mlib_album_get(artist), + MPD_DATA_TYPE_TAG, artist); + artist_sel = evas_list_next(artist_sel); + } - etk_object_data_set(ETK_OBJECT(gui->tree_artist), "artist", artist); + etk_tree_row_select(etk_tree_first_row_get(ETK_TREE(player->media.album))); } /** - * @brief Get the album selected, search for songs matching this album and artist. - * Then set the tree track with it. + * @brief Get the selected albums and search for songs wich matches with these albums. + * Then set the tree track with that stuff. */ void cb_tree_album_selected(Etk_Object *object, Etk_Tree_Row *row, void *data) { - Emphasis_Gui *gui; - Etk_Tree *tree; - Evas_List *list; - char *album, *artist; - - tree = ETK_TREE(object); - album = etk_tree_row_data_get(row); - - gui = data; - row = ETK_TREE(gui->tree_artist)->last_selected; - - artist = etk_tree_row_data_get(row); - - list = mpc_mlib_track_get(artist, album); - emphasis_tree_mlib_set(ETK_TREE(gui->tree_track), list, MPD_DATA_TYPE_SONG); + UNUSED(object) + UNUSED(row) + Emphasis_Player_Gui *player; + Evas_List *artist_sel, *album_sel; + char **album_tag; + char *artist_tag; + + player = data; + + + album_sel = etk_tree_selected_rows_get(ETK_TREE(player->media.album)); + album_tag = etk_tree_row_data_get(evas_list_data(album_sel)); + + if (album_tag == NULL) + { + etk_tree_clear(ETK_TREE(player->media.track)); + artist_sel = etk_tree_selected_rows_get(ETK_TREE(player->media.artist)); + while (artist_sel) + { + artist_tag = etk_tree_row_data_get(evas_list_data(artist_sel)); + emphasis_tree_mlib_append(ETK_TREE(player->media.track), + mpc_mlib_track_get(artist_tag, NULL), + MPD_DATA_TYPE_SONG, NULL); + artist_sel = evas_list_next(artist_sel); + } + return; + } + + etk_tree_clear(ETK_TREE(player->media.track)); + while (album_sel) + { + album_tag = etk_tree_row_data_get(evas_list_data(album_sel)); + emphasis_tree_mlib_append(ETK_TREE(player->media.track), + mpc_mlib_track_get(album_tag[1], album_tag[0]), + MPD_DATA_TYPE_SONG, NULL); + album_sel = evas_list_next(album_sel); + } } /** @@ -164,55 +300,61 @@ void cb_drag_artist(Etk_Object *object, void *data) { - Etk_Widget *drag_menu, *menu_item; - Etk_Drag *drag; - Etk_Tree *tree; - Etk_Tree_Row *row; - Evas_List *rowlist, *next; - char *artist; - const char **types; - unsigned int num_types; - Evas_List *playlist=NULL, *tmplist; - - tree = ETK_TREE(object); - drag = ETK_DRAG((ETK_WIDGET(object))->drag); - rowlist = etk_tree_selected_rows_get(tree); - - drag_menu = etk_menu_new(); - - while (rowlist) - { - artist = etk_tree_row_data_get(evas_list_data(rowlist)); - tmplist = mpc_mlib_track_get(artist, NULL); - - if (artist) - menu_item = etk_menu_item_new_with_label(artist); - else - menu_item = etk_menu_item_new_with_label("All"); - - etk_menu_shell_append(ETK_MENU_SHELL(drag_menu), ETK_MENU_ITEM(menu_item)); - if (!playlist) - { - playlist = tmplist; - } - else - { - playlist = evas_list_concatenate(playlist, tmplist); - } - next = evas_list_next(rowlist); - rowlist = next; - } - evas_list_free(rowlist); - - types = calloc(1, sizeof(char)); - num_types = 1; - types[0] = strdup("Emphasis_Playlist"); - - etk_drag_types_set(drag, types, num_types); - etk_drag_data_set(drag, playlist, 1); + Etk_Widget *drag_menu, *menu_item; + Etk_Drag *drag; + Etk_Tree *tree; + Evas_List *rowlist, *next; + char *artist; + const char **types; + unsigned int num_types; + Evas_List *playlist = NULL, *tmplist; + + tree = ETK_TREE(object); + drag = ETK_DRAG((ETK_WIDGET(tree))->drag); + rowlist = etk_tree_selected_rows_get(tree); + + drag_menu = etk_menu_new(); + + while(rowlist) + { + artist = etk_tree_row_data_get(evas_list_data(rowlist)); + tmplist = mpc_mlib_track_get(artist, NULL); + + if(artist) + { + menu_item = etk_menu_item_new_with_label(artist); + } + else + { + menu_item = etk_menu_item_new_with_label("All"); + } + + etk_menu_shell_append(ETK_MENU_SHELL(drag_menu), + ETK_MENU_ITEM(menu_item)); + + if(!playlist) + { + playlist = tmplist; + } + else + { + playlist = evas_list_concatenate(playlist, tmplist); + } + + next = evas_list_next(rowlist); + rowlist = next; + } + evas_list_free(rowlist); + + types = calloc(1, sizeof(char)); + num_types = 1; + types[0] = strdup("Emphasis_Playlist"); + + etk_drag_types_set(drag, types, num_types); + etk_drag_data_set(drag, playlist, 1); - etk_container_add(ETK_CONTAINER(drag), drag_menu); - (ETK_WIDGET(data))->drag = ETK_WIDGET(drag); + etk_container_add(ETK_CONTAINER(drag), drag_menu); + ((Emphasis_Player_Gui*)data)->media.drag = ETK_WIDGET(drag); } /** @@ -222,56 +364,58 @@ void cb_drag_album(Etk_Object *object, void *data) { - Etk_Widget *drag_menu, *menu_item; - Etk_Drag *drag; - Etk_Tree *tree; - Evas_List *rowlist; - char *album, *artist; - const char **types; - unsigned int num_types; - Evas_List *playlist=NULL, *tmplist; - - tree = ETK_TREE(object); - drag = ETK_DRAG((ETK_WIDGET(object))->drag); - rowlist = etk_tree_selected_rows_get(tree); - - tree = ETK_TREE(((Emphasis_Gui *)data)->tree_artist); - artist = etk_tree_row_data_get(etk_tree_selected_row_get(tree)); - - drag_menu = etk_menu_new(); - - while (rowlist) - { - album = etk_tree_row_data_get(evas_list_data(rowlist)); - tmplist = mpc_mlib_track_get(artist, album); - - if (album) - menu_item = etk_menu_item_new_with_label(album); - else - menu_item = etk_menu_item_new_with_label("All"); - - etk_menu_shell_append(ETK_MENU_SHELL(drag_menu), ETK_MENU_ITEM(menu_item)); - if (!playlist) - { - playlist = tmplist; - } - else - { - playlist = evas_list_concatenate(playlist, tmplist); - } - rowlist = evas_list_next(rowlist); - } - - types = calloc(1, sizeof(char)); - num_types = 1; - types[0] = strdup("Emphasis_Playlist"); - - etk_drag_types_set(drag, types, num_types); - etk_drag_data_set(drag, playlist, 1); - - etk_container_add(ETK_CONTAINER(drag), drag_menu); + Etk_Widget *drag_menu, *menu_item; + Etk_Drag *drag; + Etk_Tree *tree; + Evas_List *rowlist; + char **album; + const char **types; + unsigned int num_types; + Evas_List *playlist = NULL, *tmplist; + + tree = ETK_TREE(object); + drag = ETK_DRAG((ETK_WIDGET(object))->drag); + rowlist = etk_tree_selected_rows_get(tree); + + drag_menu = etk_menu_new(); + + while (rowlist) + { + album = etk_tree_row_data_get(evas_list_data(rowlist)); + tmplist = mpc_mlib_track_get(album[1], album[0]); + + if (album[0]) + { + menu_item = etk_menu_item_new_with_label(album[0]); + } + else + { + menu_item = etk_menu_item_new_with_label("All"); + } + + etk_menu_shell_append(ETK_MENU_SHELL(drag_menu), + ETK_MENU_ITEM(menu_item)); + if (!playlist) + { + playlist = tmplist; + } + else + { + playlist = evas_list_concatenate(playlist, tmplist); + } + rowlist = evas_list_next(rowlist); + } + + types = calloc(1, sizeof(char)); + num_types = 1; + types[0] = strdup("Emphasis_Playlist"); + + etk_drag_types_set(drag, types, num_types); + etk_drag_data_set(drag, playlist, 1); - (ETK_WIDGET(((Emphasis_Gui *)data)->drag))->drag = ETK_WIDGET(drag); + etk_container_add(ETK_CONTAINER(drag), drag_menu); + + ((Emphasis_Player_Gui*)data)->media.drag = ETK_WIDGET(drag); } /** @@ -282,45 +426,47 @@ void cb_drag_track(Etk_Object *object, void *data) { - Etk_Widget *drag_menu, *menu_item; - Etk_Drag *drag; - Etk_Tree *tree; - Evas_List *rowlist; - char *title; - const char **types; - unsigned int num_types; - Evas_List *playlist; - - tree = ETK_TREE(object); - drag = ETK_DRAG((ETK_WIDGET(object))->drag); - - drag_menu = etk_menu_new(); - - rowlist = etk_tree_selected_rows_get(tree); - playlist = convert_rowlist_in_playlist_with_file(rowlist); - while (rowlist) - { - etk_tree_row_fields_get(evas_list_data(rowlist), etk_tree_nth_col_get(tree, 0), &title, NULL); - - menu_item = etk_menu_item_new_with_label(title); - etk_menu_shell_append(ETK_MENU_SHELL(drag_menu), ETK_MENU_ITEM(menu_item)); - - rowlist = evas_list_next(rowlist); - } - - types = calloc(1, sizeof(char)); - num_types = 1; - types[0] = strdup("Emphasis_Playlist"); - - etk_drag_types_set(drag, types, num_types); - etk_drag_data_set(drag, playlist, 1); - - etk_tree_row_fields_get(evas_list_data(rowlist), etk_tree_nth_col_get(tree, 0), &title, NULL); - - etk_container_add(ETK_CONTAINER(drag), drag_menu); + Etk_Widget *drag_menu, *menu_item; + Etk_Drag *drag; + Etk_Tree *tree; + Evas_List *rowlist; + char *title; + const char **types; + unsigned int num_types; + Evas_List *playlist; + + tree = ETK_TREE(object); + drag = ETK_DRAG((ETK_WIDGET(object))->drag); + + drag_menu = etk_menu_new(); + + rowlist = etk_tree_selected_rows_get(tree); + playlist = convert_rowlist_in_playlist_with_file(rowlist); + while (rowlist) + { + etk_tree_row_fields_get(evas_list_data(rowlist), + etk_tree_nth_col_get(tree, 0), &title, NULL); + + menu_item = etk_menu_item_new_with_label(title); + etk_menu_shell_append(ETK_MENU_SHELL(drag_menu), + ETK_MENU_ITEM(menu_item)); + + rowlist = evas_list_next(rowlist); + } + + types = calloc(1, sizeof(char)); + num_types = 1; + types[0] = strdup("Emphasis_Playlist"); + + etk_drag_types_set(drag, types, num_types); + etk_drag_data_set(drag, playlist, 1); + + etk_tree_row_fields_get(evas_list_data(rowlist), + etk_tree_nth_col_get(tree, 0), &title, NULL); - (ETK_WIDGET(data))->drag = ETK_WIDGET(drag); + etk_container_add(ETK_CONTAINER(drag), drag_menu); + ((Emphasis_Player_Gui*)data)->media.drag = ETK_WIDGET(drag); } /** @@ -331,262 +477,306 @@ void cb_drop_song(Etk_Object *object, void *event, void *data) { - Etk_Tree *tree; - Etk_Tree_Row *row; - Etk_Drag *drag; - Evas_List *list; - - tree = ETK_TREE(object); - - drag = ETK_DRAG((ETK_WIDGET(data))->drag); - if (drag == NULL || - drag->types == NULL || - drag->types[0] == NULL || - strcmp("Emphasis_Playlist", drag->types[0])) - { - return; - } - list = drag->data; - mpc_playlist_add(list); - - free(drag->types[0]); - free(drag->types); - - /* - Etk_Widget *wid; - Evas_List *evaslist; - evaslist = etk_container_children_get(ETK_CONTAINER(drag)); - while (evaslist) - { - etk_container_remove(ETK_CONTAINER(drag), evas_list_data(evaslist)); - etk_object_destroy(ETK_OBJECT(evas_list_data(evaslist))); - evaslist = evas_list_next(evaslist); - } - */ + UNUSED(event) + Etk_Tree *tree; + Etk_Drag *drag; + Evas_List *list; + + tree = ETK_TREE(object); + + drag = ETK_DRAG(((Emphasis_Player_Gui*)data)->media.drag); + if (drag == NULL || + drag->types == NULL || + drag->types[0] == NULL || + strcmp("Emphasis_Playlist", drag->types[0])) + { + return; + } + + list = drag->data; + mpc_playlist_add(list); + + free(drag->types[0]); + free(drag->types); + + /* + Etk_Widget *wid; + Evas_List *evaslist; + evaslist = etk_container_children_get(ETK_CONTAINER(drag)); + while (evaslist) + { + etk_container_remove(ETK_CONTAINER(drag), evas_list_data(evaslist)); + etk_object_destroy(ETK_OBJECT(evas_list_data(evaslist))); + evaslist = evas_list_next(evaslist); + } + */ } /** * @brief Double-click on a row add the artist's song to the playlist */ void -cb_tree_mlib_clicked(Etk_Object *object, Etk_Tree_Row *row, Etk_Event_Mouse_Up_Down *event, void *data) +cb_tree_mlib_clicked(Etk_Object *object, Etk_Tree_Row *row, + Etk_Event_Mouse_Up_Down *event, void *data) { - Etk_Widget *widget, *tree; - char *str; + Etk_Widget *widget, *tree; + char *str; - if ((event->button == 1) && (event->flags & EVAS_BUTTON_DOUBLE_CLICK)) - { - emphasis_playlist_append_selected(ETK_TREE(object), (Emphasis_Type)data); - mpc_play_if_stopped(); - } - if ((event->button == 3) && (event->flags & EVAS_BUTTON_DOUBLE_CLICK)) - { - widget = etk_widget_parent_get(ETK_WIDGET(object)); - widget = etk_widget_parent_get(ETK_WIDGET(widget)); - tree = etk_paned_child2_get(ETK_PANED(widget)); - - etk_tree_row_fields_get(row, etk_tree_nth_col_get(ETK_TREE(object), 0), &str, NULL); - - emphasis_playlist_search_and_delete(ETK_TREE(tree), str, (Emphasis_Type)data); - } + if ((event->button == 1) && (event->flags & EVAS_BUTTON_DOUBLE_CLICK)) + { + emphasis_playlist_append_selected(ETK_TREE(object), + (Emphasis_Type) data); + mpc_play_if_stopped(); + } + if (event->button == 2) + { + widget = etk_widget_parent_get(ETK_WIDGET(object)); + widget = etk_widget_parent_get(ETK_WIDGET(widget)); + tree = etk_paned_child2_get(ETK_PANED(widget)); + + etk_tree_row_fields_get(row, etk_tree_nth_col_get(ETK_TREE(object), 0), + &str, NULL); + + emphasis_playlist_search_and_delete(ETK_TREE(tree), str, + (Emphasis_Type) data); + } } /** * @brief Play the song double-clicked */ void -cb_tree_pls_clicked(Etk_Object *object, Etk_Tree_Row *row, Etk_Event_Mouse_Up_Down *event, void *data) +cb_tree_pls_clicked(Etk_Object *object, Etk_Tree_Row *row, + Etk_Event_Mouse_Up_Down *event, void *data) { - int id; - - if ((event->button == 1) && (event->flags & EVAS_BUTTON_DOUBLE_CLICK)) - { - id = (int)etk_tree_row_data_get(row); - mpc_play_id(id); - } - if (event->button == 1) - { - ETK_TREE(object)->last_selected = row; - } + UNUSED(data) + int id; + + if ((event->button == 1) && (event->flags & EVAS_BUTTON_DOUBLE_CLICK)) + { + id = (int) etk_tree_row_data_get(row); + mpc_play_id(id); + } + if (event->button == 1) + { + ETK_TREE(object)->last_selected = row; + } } void -cb_emphasis_bindings_key(Etk_Object *object, Etk_Event_Key_Up_Down *event, void *data) -{ - if (!strcmp(event->key, "z")) - { - cb_toggle_random(NULL, NULL); - return; - } - if (!strcmp(event->key, "r")) - { - cb_toggle_repeat(NULL, NULL); - return; - } - if (!strcmp(event->key, "s")) - { - cb_button_stop_clicked(NULL, NULL); - return; - } - if (!strcmp(event->key, "p")) - { - cb_button_play_clicked(NULL, NULL); - return; - } - if (!strcmp(event->key, "greater")) - { - cb_button_next_clicked(NULL, NULL); - return; - } - if (!strcmp(event->key, "less")) - { - cb_button_prev_clicked(NULL, NULL); - return; - } +cb_emphasis_bindings_key(Etk_Object *object, Etk_Event_Key_Up_Down *event, + void *data) +{ + UNUSED(data) + UNUSED(object) + if (!strcmp(event->key, "z")) + { + cb_toggle_random(NULL, NULL); + return; + } + if (!strcmp(event->key, "r")) + { + cb_toggle_repeat(NULL, NULL); + return; + } + if (!strcmp(event->key, "s")) + { + cb_button_stop_clicked(NULL, NULL); + return; + } + if (!strcmp(event->key, "p")) + { + cb_button_play_clicked(NULL, NULL); + return; + } + if (!strcmp(event->key, "greater")) + { + cb_button_next_clicked(NULL, NULL); + return; + } + if (!strcmp(event->key, "less")) + { + cb_button_prev_clicked(NULL, NULL); + return; + } } /** * @brief Fast find in mlib tree */ void -cb_mlib_bindings_key(Etk_Object *object, Etk_Event_Key_Up_Down *event, void *data) +cb_mlib_bindings_key(Etk_Object *object, Etk_Event_Key_Up_Down *event, + void *data) { - Etk_Tree *tree; - Etk_Tree_Row *row, *row_next; - Etk_Tree_Col *col; - char *str; - - if (!event->string) - return; - - tree = ETK_TREE(object); - - if (!strcmp(event->key, "a") && evas_key_modifier_is_set(event->modifiers, "Control")) - { - etk_tree_select_all(tree); - return; - } - - col = etk_tree_nth_col_get(tree, 0); - -/**/ - const char *cur_title, *base_title; - char *title, *filter=NULL; - int length; - Emphasis_Type type; - - base_title = etk_object_data_get(ETK_OBJECT(tree), "title"); /*get the base title of the tree */ - cur_title = etk_tree_col_title_get(col); /*get the current title of tree */ - type = (Emphasis_Type)etk_object_data_get(ETK_OBJECT(tree), "Emphasis_Type"); - - if (!strcmp(base_title, cur_title)) - { - if (!strcmp("BackSpace", event->keyname) || - !strcmp("Escape", event->keyname) || - !strcmp("Return", event->keyname)) - return; - - asprintf(&title, "%s starting with : %s", base_title, event->string); - } - else - { - if (!strcmp("BackSpace", event->keyname)) - { - title = strdup(cur_title); - title[strlen(title)-1] = '\0'; - emphasis_tree_mlib_init(data, type); - if (strlen(title) == strlen(base_title)+17) - { - etk_tree_col_title_set(col, base_title); - return; - } - } - else if (!strcmp("Escape", event->keyname)) - { - emphasis_tree_mlib_init(data, type); - etk_tree_col_title_set(col, base_title); - return; - } - else if (!strcmp("Return", event->keyname)) - { - etk_tree_col_title_set(col, base_title); - return; - } - else - asprintf(&title, "%s%s", cur_title, event->string); - } - - etk_tree_col_title_set(etk_tree_nth_col_get(tree, 0), title); - length = strlen(base_title) + 17; /*18 == strlen(" starting with : ") + 1*/ - filter = strdup(&title[length]); - length = strlen(filter); -/**/ - - row = etk_tree_first_row_get(tree); - while (row) - { - row_next = etk_tree_next_row_get(row, ETK_FALSE, ETK_FALSE); - etk_tree_row_fields_get(row, col, &str, NULL); - if (!strncasecmp("The ", str, 4)) - { - str = str+4; - } - if (!strcmp("All", str) || (strncasecmp(filter, str, length) !=0)) - etk_tree_row_del(row); - row = row_next; - } - - free(title); - free(filter); + Etk_Tree *tree; + Etk_Tree_Row *row, *row_next; + Etk_Tree_Col *col; + Emphasis_Player_Gui *player; + char *str; + + if (!event->string) + return; + + tree = ETK_TREE(object); + player = data; + + if (!strcmp(event->key, "a") + && evas_key_modifier_is_set(event->modifiers, "Control")) + { + etk_tree_select_all(tree); + + if (object == ETK_OBJECT(player->media.track)) + return; + + row = etk_tree_first_row_get(tree); + etk_tree_row_unselect(row); + if (object == ETK_OBJECT(player->media.artist)) + { + cb_tree_artist_selected(object, row, data); + } + if (object == ETK_OBJECT(player->media.album)) + { + cb_tree_album_selected(object, row, data); + } + + return; + } + + if (!strcmp(event->key, "Tab") + || evas_key_modifier_is_set(event->modifiers, "Control")) + return; + + col = etk_tree_nth_col_get(tree, 0); + +/**/ + const char *cur_title, *base_title; + char *title, *filter = NULL; + int length; + Emphasis_Type type; + + /*get the base title of the tree */ + base_title = etk_object_data_get(ETK_OBJECT(tree), "title"); + /*get the current title of tree */ + cur_title = etk_tree_col_title_get(col); + type = (Emphasis_Type) etk_object_data_get(ETK_OBJECT(tree), "Emphasis_Type"); + + if (!strcmp(base_title, cur_title)) + { + if (!strcmp("BackSpace", event->keyname) || + !strcmp("Escape", event->keyname) || + !strcmp("Return", event->keyname)) + return; + + asprintf(&title, "%s starting with : %s", base_title, event->string); + } + else + { + if (!strcmp("BackSpace", event->keyname)) + { + title = strdup(cur_title); + title[strlen(title) - 1] = '\0'; + emphasis_tree_mlib_init(player, type); + if (strlen(title) == strlen(base_title) + 17) + { + etk_tree_col_title_set(col, base_title); + return; + } + } + else if (!strcmp("Escape", event->keyname)) + { + emphasis_tree_mlib_init(player, type); + etk_tree_col_title_set(col, base_title); + return; + } + else if (!strcmp("Return", event->keyname)) + { + etk_tree_col_title_set(col, base_title); + return; + } + else + asprintf(&title, "%s%s", cur_title, event->string); + } + + etk_tree_col_title_set(etk_tree_nth_col_get(tree, 0), title); + length = strlen(base_title) + 17; + filter = strdup(&title[length]); + length = strlen(filter); +/**/ + + row = etk_tree_first_row_get(tree); + while (row) + { + row_next = etk_tree_next_row_get(row, ETK_FALSE, ETK_FALSE); + etk_tree_row_fields_get(row, col, &str, NULL); + if (!strncasecmp("The ", str, 4)) + { + str = str + 4; + } + if (!strcmp("All", str) || (strncasecmp(filter, str, length) != 0)) + etk_tree_row_del(row); + row = row_next; + } + + etk_tree_row_select(etk_tree_first_row_get(tree)); + free(title); + free(filter); } /** * @brief If right-clicked: popdown the contextual menu on the playlist */ void -cb_pls_contextual_menu(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data) +cb_pls_contextual_menu(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, + void *data) { - Emphasis_Gui *gui; + UNUSED(object) + Emphasis_Gui *gui; - gui = data; - if (event->button == 3) - { - etk_menu_popup(ETK_MENU(gui->menu)); - } + gui = data; + if (event->button == 3) + { + etk_menu_popup(ETK_MENU(gui->menu)); + } } /** * @brief Clear the playlist */ void -cb_playlist_clear(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data) +cb_playlist_clear(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, + void *data) { - mpc_playlist_clear(); + UNUSED(object) + UNUSED(event) + UNUSED(data) + + mpc_playlist_clear(); } /** * @brief Callback function of bindings key on the playlist */ void -cb_pls_bindings_key(Etk_Object *object, Etk_Event_Key_Up_Down *event, void *data) +cb_pls_bindings_key(Etk_Object *object, Etk_Event_Key_Up_Down *event, + void *data) { - Emphasis_Gui *gui; - Etk_Tree_Row *row; - Evas_List *rowlist; - Evas_List *list; - - gui = (Emphasis_Gui *)data; - - if (!strcmp(event->key,"d") || !strcmp(event->key,"Delete")) - { - rowlist = etk_tree_selected_rows_get(ETK_TREE(gui->tree_pls)); - if (rowlist) - { - list = convert_rowlist_in_playlist_with_id(rowlist); - mpc_playlist_delete(list); - } - } - etk_widget_redraw_queue(ETK_WIDGET(gui->tree_pls)); + UNUSED(object) + Emphasis_Player_Gui *player; + Evas_List *rowlist; + Evas_List *list; + + player = data; + + if (!strcmp(event->key, "d") || !strcmp(event->key, "Delete")) + { + rowlist = etk_tree_selected_rows_get(ETK_TREE(player->media.pls)); + if (rowlist) + { + list = convert_rowlist_in_playlist_with_id(rowlist); + mpc_playlist_delete(list); + } + } + etk_widget_redraw_queue(ETK_WIDGET(player->media.pls)); } /** @@ -595,42 +785,17 @@ void cb_playlist_delete(Etk_Object *object, void *data) { - Emphasis_Gui *gui; - Etk_Tree_Row *row; - Evas_List *rowlist; - Evas_List *list; - - gui = (Emphasis_Gui *)data; - - rowlist = etk_tree_selected_rows_get(ETK_TREE(gui->tree_pls)); - list = convert_rowlist_in_playlist_with_id(rowlist); - - mpc_playlist_delete(list); -} + UNUSED(object) + Emphasis_Player_Gui *player; + Evas_List *rowlist; + Evas_List *list; -void -cb_vol_image_clicked(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data) -{ - Emphasis_Gui *gui; - - gui = data; - if (ETK_WIDGET(object) == gui->vol_imagel) - { - mpc_change_vol(mpc_get_vol()-5); - } - else if (ETK_WIDGET(object) == gui->vol_imager) - { - mpc_change_vol(mpc_get_vol()+5); - } -} + player = data; -/** - * @brief Changed the mpd output volume level - */ -void -cb_vol_slider_value_changed(Etk_Object *object, double value, void *data) -{ - mpc_change_vol(value); + rowlist = etk_tree_selected_rows_get(ETK_TREE(player->media.pls)); + list = convert_rowlist_in_playlist_with_id(rowlist); + + mpc_playlist_delete(list); } /** @@ -639,110 +804,66 @@ void cb_database_update(Etk_Object *object, void *data) { - Emphasis_Gui *gui; - const char *tree_title; - - mpc_database_update("/"); - emphasis_tree_mlib_init(data, EMPHASIS_ARTIST); - - /* Clear old search */ - gui = data; - etk_tree_col_title_set(etk_tree_nth_col_get(ETK_TREE(gui->tree_artist), 0), "Artist"); - etk_tree_col_title_set(etk_tree_nth_col_get(ETK_TREE(gui->tree_album), 0), "Album"); - etk_tree_col_title_set(etk_tree_nth_col_get(ETK_TREE(gui->tree_track), 0), "Track"); - + UNUSED(object) + Emphasis_Player_Gui *player; + player = data; + + mpc_database_update(); + emphasis_tree_mlib_init(player, EMPHASIS_ARTIST); + + /* Clear old search */ + etk_tree_col_title_set(ETK_TREE_COL_GET(player->media.artist, 0), "Artist"); + etk_tree_col_title_set(ETK_TREE_COL_GET(player->media.album , 0), "Album"); + etk_tree_col_title_set(ETK_TREE_COL_GET(player->media.track , 0), "Track"); } void -cb_config_show(Etk_Object *object, void *data) +cb_switch_full(Etk_Object *object, void *data) { - Emphasis_Gui *gui; - Emphasis_Config *config; + /* TODO : this function ;) */ + UNUSED(object); - gui = data; - gui->config_gui = config_gui_init(); - config = config_load(); - config_gui_set(gui->config_gui, config); - etk_widget_show_all(gui->config_gui->window); + Emphasis_Player_Gui *player; + player = data; - etk_signal_connect("clicked", ETK_OBJECT(gui->config_gui->buttons_box_ok), - ETK_CALLBACK(cb_config_write), gui); - etk_signal_connect("clicked", ETK_OBJECT(gui->config_gui->buttons_box_apply), - ETK_CALLBACK(cb_config_write), gui); - etk_signal_connect("clicked", ETK_OBJECT(gui->config_gui->buttons_box_cancel), - ETK_CALLBACK(cb_config_hide), gui->config_gui); -} + if(player->state == EMPHASIS_FULL) + { + return; + } + player->state = EMPHASIS_FULL; + + etk_widget_hide_all(player->small.window); + etk_widget_hide_all(player->media.window); + + etk_container_remove(ETK_CONTAINER(player->media.window), player->media.root); + etk_box_pack_start(ETK_BOX(player->full.root), + player->media.root, + ETK_TRUE, ETK_TRUE, 0); + + emphasis_player_toggle_full(player, ETK_TRUE); -void -cb_config_hide(Etk_Object *object, void *data) -{ - Emphasis_Config_Gui *gui; - - gui = data; - etk_widget_hide(ETK_WIDGET(gui->window)); + etk_widget_show_all(player->full.window); } void -cb_config_write(Etk_Object *object, void *data) +cb_switch_small(Etk_Object *object, void *data) { - Emphasis_Config *config; - Emphasis_Gui *gui; -// const char *port; - - config = config_load(); - gui = data; - - config->hostname = (char *)etk_entry_text_get(ETK_ENTRY(gui->config_gui->hostname_entry)); -// port = etk_entry_text_get(ETK_ENTRY(gui->config_gui->port_spin)); -// config->port = atoi(port); - config->password = (char *)etk_entry_text_get(ETK_ENTRY(gui->config_gui->password_entry)); - - config_save(config); - cb_config_hide(NULL, gui->config_gui); - emphasis_try_connect(gui); -} + /* TODO : this function ;) */ + UNUSED(object); -void -cb_switch_full(Etk_Object *object, void *data) -{ - Emphasis_Gui *gui; - Emphasis_Config *config; - - gui=data; - -// config = etk_object_data_get(ETK_OBJECT(gui->window), "config"); - config = config_load(); - - etk_container_border_width_set(ETK_CONTAINER(gui->window), 6); - etk_widget_show_all(gui->vpaned); - etk_window_resize(ETK_WINDOW(gui->window), config->geometry.w, config->geometry.h); + Emphasis_Player_Gui *player; + player = data; - config_free(config); -} + player->state = EMPHASIS_SMALL; -void -cb_switch_small(Etk_Object *object, void *data) -{ - Emphasis_Gui *gui; - Emphasis_Config *config; - int w,h; - - gui=data; - - if (etk_widget_is_visible(gui->tree_pls) == ETK_FALSE) - { - return; - } - - etk_widget_geometry_get(gui->window, NULL, NULL, &w, &h); - config = config_load(); - config->geometry.w = w; - config->geometry.h = h; - - etk_container_border_width_set(ETK_CONTAINER(gui->window), 0); - etk_widget_hide_all(gui->vpaned); - etk_window_resize(ETK_WINDOW(gui->window), 0, 0); + etk_widget_hide_all(player->full.window); + + etk_container_add(ETK_CONTAINER(player->media.window), player->media.root); + emphasis_player_toggle_full(player, ETK_FALSE); - config_save(config); - config_free(config); + if(etk_toggle_button_active_get(ETK_TOGGLE_BUTTON(player->small.media))) + { + etk_widget_show_all(player->media.window); + } + etk_widget_show_all(player->small.window); } =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_callbacks.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- emphasis_callbacks.h 3 Jul 2006 02:33:26 -0000 1.3 +++ emphasis_callbacks.h 21 Jul 2006 04:05:27 -0000 1.4 @@ -1,12 +1,13 @@ /** @file emphasis_callbacks.h */ -#ifndef _CALLBACKS_H_ -#define _CALLBACKS_H_ +#ifndef EMPHASIS_CALLBACKS_H_ +#define EMPHASIS_CALLBACKS_H_ /** * @defgroup callbacks * @{ */ void cb_quit(Etk_Object *object, void *data); +Etk_Bool cb_media_quit(Etk_Object *object, void *data); void cb_button_stop_clicked(Etk_Object *object, void *data); void cb_button_prev_clicked(Etk_Object *object, void *data); @@ -14,7 +15,14 @@ void cb_button_next_clicked(Etk_Object *object, void *data); void cb_toggle_random(Etk_Object *object, void *data); void cb_toggle_repeat(Etk_Object *object, void *data); -void cb_seek_time(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data); +void cb_toggle_full(Etk_Object *object, void *data); +void cb_toggle_media(Etk_Object *object, void *data); +void cb_seek_time(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, + void *data); +void cb_vol_image_clicked(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, + void *data); +void cb_vol_slider_value_changed(Etk_Object *object, double value, + void *data); void cb_tree_artist_selected(Etk_Object *object, Etk_Tree_Row *row, void *data); void cb_tree_album_selected(Etk_Object *object, Etk_Tree_Row *row, void *data); @@ -24,25 +32,28 @@ void cb_drag_track(Etk_Object *object, void *data); void cb_drop_song(Etk_Object *object, void *event, void *data); -void cb_tree_mlib_clicked(Etk_Object *object, Etk_Tree_Row *row, Etk_Event_Mouse_Up_Down *event, void *data); -void cb_tree_pls_clicked(Etk_Object *object, Etk_Tree_Row *row, Etk_Event_Mouse_Up_Down *event, void *data); - -void cb_emphasis_bindings_key(Etk_Object *object, Etk_Event_Key_Up_Down *event, void *data); -void cb_mlib_bindings_key(Etk_Object *object, Etk_Event_Key_Up_Down *event, void *data); -void cb_pls_contextual_menu(Etk_Object *object, Etk_Event_Mouse_Up_Down *event_info, void *data); -void cb_playlist_clear(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data); -void cb_pls_bindings_key(Etk_Object *object, Etk_Event_Key_Up_Down *event, void *data); +void cb_tree_mlib_clicked(Etk_Object *object, Etk_Tree_Row *row, + Etk_Event_Mouse_Up_Down *event, void *data); +void cb_tree_pls_clicked(Etk_Object *object, Etk_Tree_Row *row, + Etk_Event_Mouse_Up_Down *event, void *data); + +void cb_emphasis_bindings_key(Etk_Object *object, Etk_Event_Key_Up_Down *event, + void *data); +void cb_mlib_bindings_key(Etk_Object *object, Etk_Event_Key_Up_Down *event, + void *data); + + +void cb_pls_contextual_menu(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, + void *data); +void cb_playlist_clear(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, + void *data); +void cb_pls_bindings_key(Etk_Object *object, Etk_Event_Key_Up_Down *event, + void *data); void cb_playlist_delete(Etk_Object *object, void *data); - -void cb_vol_image_clicked(Etk_Object *object, Etk_Event_Mouse_Up_Down *event, void *data); -void cb_vol_slider_value_changed(Etk_Object *object, double value, void *data); void cb_database_update(Etk_Object *object, void *data); -void cb_config_show(Etk_Object *object, void *data); -void cb_config_hide(Etk_Object *object, void *data); -void cb_config_write(Etk_Object *object, void *data); void cb_switch_small(Etk_Object *object, void *data); void cb_switch_full(Etk_Object *object, void *data); /** @} */ -#endif /*_CALLBACKS_H_*/ +#endif /* EMPHASIS_CALLBACKS_H_ */ =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_config.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- emphasis_config.c 9 Jul 2006 18:27:39 -0000 1.3 +++ emphasis_config.c 21 Jul 2006 04:05:27 -0000 1.4 @@ -1,163 +1,90 @@ #include "emphasis.h" #include "emphasis_config.h" +/* TODO: add emphasis state */ void -set_defaults (void) +set_defaults(void) { - ecore_config_string_default(MPD_HOSTNAME_KEY, "localhost"); - ecore_config_int_default(MPD_PORT_KEY, 6600); - ecore_config_string_default(MPD_PASSWORD_KEY, NULL); - ecore_config_int_default(MPD_CROSSFADE_KEY, 0); - - ecore_config_int_default(EMP_GEOMETRY_X_KEY, 0); - ecore_config_int_default(EMP_GEOMETRY_Y_KEY, 0); - ecore_config_int_default(EMP_GEOMETRY_W_KEY, 700); - ecore_config_int_default(EMP_GEOMETRY_H_KEY, 600); - - ecore_config_int_default(EMP_MODE_KEY, EMPHASIS_FULL); - - ecore_config_int_default(EMP_COLWIDTH_TITLE_KEY, 220); - ecore_config_int_default(EMP_COLWIDTH_TIME_KEY, 50); - ecore_config_int_default(EMP_COLWIDTH_ARTIST_KEY, 100); - ecore_config_int_default(EMP_COLWIDTH_ALBUM_KEY, 100); + ecore_config_string_default(MPD_HOSTNAME_KEY, "localhost"); + ecore_config_int_default(MPD_PORT_KEY, 6600); + ecore_config_string_default(MPD_PASSWORD_KEY, NULL); + ecore_config_int_default(MPD_CROSSFADE_KEY, 0); + + ecore_config_int_default(EMP_GEOMETRY_X_KEY, 0); + ecore_config_int_default(EMP_GEOMETRY_Y_KEY, 0); + ecore_config_int_default(EMP_GEOMETRY_W_KEY, 700); + ecore_config_int_default(EMP_GEOMETRY_H_KEY, 600); + + ecore_config_int_default(EMP_MODE_KEY, EMPHASIS_FULL); + + ecore_config_int_default(EMP_COLWIDTH_TITLE_KEY, 220); + ecore_config_int_default(EMP_COLWIDTH_TIME_KEY, 50); + ecore_config_int_default(EMP_COLWIDTH_ARTIST_KEY, 100); + ecore_config_int_default(EMP_COLWIDTH_ALBUM_KEY, 100); } Emphasis_Config * config_load(void) { - Emphasis_Config *config; + Emphasis_Config *config; - config = malloc(sizeof(Emphasis_Config)); - set_defaults(); - ecore_config_load(); - - config->hostname = ecore_config_string_get(MPD_HOSTNAME_KEY); - config->port = ecore_config_int_get(MPD_PORT_KEY); - config->password = ecore_config_string_get(MPD_PASSWORD_KEY); - config->crossfade = ecore_config_int_get(MPD_CROSSFADE_KEY); - - config->geometry.x = ecore_config_int_get(EMP_GEOMETRY_X_KEY); - config->geometry.y = ecore_config_int_get(EMP_GEOMETRY_Y_KEY); - config->geometry.w = ecore_config_int_get(EMP_GEOMETRY_W_KEY); - config->geometry.h = ecore_config_int_get(EMP_GEOMETRY_H_KEY); - - config->mode = ecore_config_int_get(EMP_MODE_KEY); - - config->colwidth.title = ecore_config_int_get(EMP_COLWIDTH_TITLE_KEY); - config->colwidth.time = ecore_config_int_get(EMP_COLWIDTH_TIME_KEY); - config->colwidth.artist = ecore_config_int_get(EMP_COLWIDTH_ARTIST_KEY); - config->colwidth.album = ecore_config_int_get(EMP_COLWIDTH_ALBUM_KEY); + config = malloc(sizeof(Emphasis_Config)); + set_defaults(); + ecore_config_load(); + + config->hostname = ecore_config_string_get(MPD_HOSTNAME_KEY); + config->port = ecore_config_int_get(MPD_PORT_KEY); + config->password = ecore_config_string_get(MPD_PASSWORD_KEY); + config->crossfade = ecore_config_int_get(MPD_CROSSFADE_KEY); + + config->geometry.x = ecore_config_int_get(EMP_GEOMETRY_X_KEY); + config->geometry.y = ecore_config_int_get(EMP_GEOMETRY_Y_KEY); + config->geometry.w = ecore_config_int_get(EMP_GEOMETRY_W_KEY); + config->geometry.h = ecore_config_int_get(EMP_GEOMETRY_H_KEY); + + config->mode = ecore_config_int_get(EMP_MODE_KEY); + + config->colwidth.title = ecore_config_int_get(EMP_COLWIDTH_TITLE_KEY); + config->colwidth.time = ecore_config_int_get(EMP_COLWIDTH_TIME_KEY); + config->colwidth.artist = ecore_config_int_get(EMP_COLWIDTH_ARTIST_KEY); + config->colwidth.album = ecore_config_int_get(EMP_COLWIDTH_ALBUM_KEY); - return config; + return config; } void config_save(Emphasis_Config *config) { - ecore_config_string_set(MPD_HOSTNAME_KEY, config->hostname); - ecore_config_int_set(MPD_PORT_KEY, config->port); - ecore_config_string_set(MPD_PASSWORD_KEY, config->password); - ecore_config_int_set(MPD_CROSSFADE_KEY, config->crossfade); - - ecore_config_int_set(EMP_GEOMETRY_X_KEY, config->geometry.x); - ecore_config_int_set(EMP_GEOMETRY_Y_KEY, config->geometry.y); - ecore_config_int_set(EMP_GEOMETRY_W_KEY, config->geometry.w); - ecore_config_int_set(EMP_GEOMETRY_H_KEY, config->geometry.h); - - ecore_config_int_set(EMP_MODE_KEY, config->mode); - - ecore_config_int_set(EMP_COLWIDTH_TITLE_KEY, config->colwidth.title); - ecore_config_int_set(EMP_COLWIDTH_TIME_KEY, config->colwidth.time); - ecore_config_int_set(EMP_COLWIDTH_ARTIST_KEY, config->colwidth.artist); - ecore_config_int_set(EMP_COLWIDTH_ALBUM_KEY, config->colwidth.album); + ecore_config_string_set(MPD_HOSTNAME_KEY, config->hostname); + ecore_config_int_set(MPD_PORT_KEY, config->port); + ecore_config_string_set(MPD_PASSWORD_KEY, config->password); + ecore_config_int_set(MPD_CROSSFADE_KEY, config->crossfade); + + ecore_config_int_set(EMP_GEOMETRY_X_KEY, config->geometry.x); + ecore_config_int_set(EMP_GEOMETRY_Y_KEY, config->geometry.y); + ecore_config_int_set(EMP_GEOMETRY_W_KEY, config->geometry.w); + ecore_config_int_set(EMP_GEOMETRY_H_KEY, config->geometry.h); + + ecore_config_int_set(EMP_MODE_KEY, config->mode); + + ecore_config_int_set(EMP_COLWIDTH_TITLE_KEY, config->colwidth.title); + ecore_config_int_set(EMP_COLWIDTH_TIME_KEY, config->colwidth.time); + ecore_config_int_set(EMP_COLWIDTH_ARTIST_KEY, config->colwidth.artist); + ecore_config_int_set(EMP_COLWIDTH_ALBUM_KEY, config->colwidth.album); - ecore_config_save(); -} - -Emphasis_Config_Gui * -config_gui_init(void) -{ - Emphasis_Config_Gui *gui; - gui = malloc(sizeof(Emphasis_Config_Gui)); - - gui->window = etk_window_new(); - etk_window_title_set(ETK_WINDOW(gui->window),"Emphasis Configuration"); - etk_window_wmclass_set(ETK_WINDOW(gui->window), "Emphasis Configuration", "emphasis"); - etk_container_border_width_set(ETK_CONTAINER(gui->window), 2); - - gui->vbox = etk_vbox_new(ETK_FALSE, 0); - etk_container_add(ETK_CONTAINER(gui->window), gui->vbox); - - gui->connection_frame = etk_frame_new("Connection settings"); - etk_box_pack_start(ETK_BOX(gui->vbox), gui->connection_frame, ETK_TRUE, ETK_TRUE, 0); - - gui->connection_vbox = etk_vbox_new(ETK_TRUE, 5); - etk_container_add(ETK_CONTAINER(gui->connection_frame), gui->connection_vbox); - - gui->hostname_hbox = etk_hbox_new(ETK_TRUE, 0); - gui->hostname_label = etk_label_new("Hostname :"); - gui->hostname_entry = etk_entry_new(); - etk_box_pack_start(ETK_BOX(gui->hostname_hbox), gui->hostname_label, ETK_TRUE, ETK_TRUE, 0); - etk_box_pack_start(ETK_BOX(gui->hostname_hbox), gui->hostname_entry, ETK_TRUE, ETK_TRUE, 0); - etk_box_pack_start(ETK_BOX(gui->connection_vbox), gui->hostname_hbox, ETK_TRUE, ETK_TRUE, 5); - - gui->port_hbox = etk_hbox_new(ETK_TRUE, 0); - gui->port_label = etk_label_new("Port :"); -// gui->port_spin = etk_spin_button_new(0, 65536, 1); - etk_box_pack_start(ETK_BOX(gui->port_hbox), gui->port_label, ETK_TRUE, ETK_TRUE, 0); -// etk_box_pack_start(ETK_BOX(gui->port_hbox), gui->port_spin, ETK_TRUE, ETK_TRUE, 0); - etk_box_pack_start(ETK_BOX(gui->connection_vbox), gui->port_hbox, ETK_TRUE, ETK_TRUE, 5); - - gui->password_hbox = etk_hbox_new(ETK_TRUE, 0); - gui->password_label = etk_label_new("password :"); - gui->password_entry = etk_entry_new(); - etk_entry_password_set(ETK_ENTRY(gui->password_entry), ETK_TRUE); - etk_box_pack_start(ETK_BOX(gui->password_hbox), gui->password_label, ETK_TRUE, ETK_TRUE, 0); - etk_box_pack_start(ETK_BOX(gui->password_hbox), gui->password_entry, ETK_TRUE, ETK_TRUE, 0); - etk_box_pack_start(ETK_BOX(gui->connection_vbox), gui->password_hbox, ETK_TRUE, ETK_TRUE, 5); - - /**/ - gui->interface_frame = etk_frame_new("Interface settings"); - etk_box_pack_start(ETK_BOX(gui->vbox), gui->interface_frame, ETK_TRUE, ETK_TRUE, 0); - - gui->interface_vbox = etk_vbox_new(ETK_TRUE, 5); - etk_container_add(ETK_CONTAINER(gui->interface_frame), gui->interface_vbox); - - gui->rowheight_hbox = etk_hbox_new(ETK_TRUE, 0); - gui->rowheight_label = etk_label_new("Row Height :"); -// gui->rowheight_spin = etk_spin_button_new(0, 50, 1); - etk_box_pack_start(ETK_BOX(gui->rowheight_hbox), gui->rowheight_label, ETK_TRUE, ETK_TRUE, 0); -// etk_box_pack_start(ETK_BOX(gui->rowheight_hbox), gui->rowheight_spin, ETK_TRUE, ETK_TRUE, 0); - etk_box_pack_start(ETK_BOX(gui->interface_vbox), gui->rowheight_hbox, ETK_TRUE, ETK_TRUE, 5); - /**/ - - gui->buttons_box_hbox = etk_hbox_new(ETK_TRUE, 5); - gui->buttons_box_ok = etk_button_new_with_label("Ok"); - gui->buttons_box_apply = etk_button_new_with_label("Apply"); - gui->buttons_box_cancel = etk_button_new_with_label("Cancel"); - etk_box_pack_start(ETK_BOX(gui->buttons_box_hbox), gui->buttons_box_ok, ETK_TRUE, ETK_FALSE, 0); - etk_box_pack_start(ETK_BOX(gui->buttons_box_hbox), gui->buttons_box_apply, ETK_TRUE, ETK_FALSE, 0); - etk_box_pack_start(ETK_BOX(gui->buttons_box_hbox), gui->buttons_box_cancel, ETK_TRUE, ETK_FALSE, 0); - etk_box_pack_start(ETK_BOX(gui->vbox), gui->buttons_box_hbox, ETK_FALSE, ETK_FALSE, 0); - - return gui; -} - -void -config_gui_set(Emphasis_Config_Gui *gui, Emphasis_Config *config) -{ -// char *port; - etk_entry_text_set(ETK_ENTRY(gui->hostname_entry), config->hostname); -// asprintf(&port, "%d", config->port); -// etk_entry_text_set(ETK_ENTRY(gui->port_spin), port); - if (config->password != NULL && strlen(config->password) != 0) - etk_entry_text_set(ETK_ENTRY(gui->password_entry), config->password); + ecore_config_save(); } void config_free(Emphasis_Config *config) { - if (config->hostname) { free(config->hostname); } - if (config->password) { free(config->password); } - free(config); + if (config->hostname) + { + free(config->hostname); + } + if (config->password) + { + free(config->password); + } + free(config); } =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis_config.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- emphasis_config.h 9 Jul 2006 18:27:39 -0000 1.3 +++ emphasis_config.h 21 Jul 2006 04:05:27 -0000 1.4 @@ -1,5 +1,5 @@ -#ifndef _CONFIG_H_ -#define _CONFIG_H_ +#ifndef EMPHASIS_CONFIG_H_ +#define EMPHASIS_CONFIG_H_ /** * @defgroup config * @{ @@ -10,7 +10,7 @@ #define MPD_HOSTNAME_KEY "/mpd/hostname" #define MPD_PORT_KEY "/mpd/port" #define MPD_PASSWORD_KEY "/mpd/password" -#define MPD_CROSSFADE_KEY "/mpd/crossfade" /*TODO handle the crossfade */ +#define MPD_CROSSFADE_KEY "/mpd/crossfade" /*TODO handle the crossfade */ #define EMP_GEOMETRY_X_KEY "/geometry/x" #define EMP_GEOMETRY_Y_KEY "/geometry/y" @@ -23,76 +23,37 @@ #define EMP_COLWIDTH_ARTIST_KEY "/emphasis/colwidth/artist" #define EMP_COLWIDTH_ALBUM_KEY "/emphasis/colwidth/album" -typedef enum +typedef struct _Emphasis_Config Emphasis_Config; +struct _Emphasis_Config { - EMPHASIS_SMALL=0, - EMPHASIS_FULL=1 -} Emphasis_Mode; + char *hostname; + int port; + char *password; + int crossfade; + + struct + { + int x; + int y; + int w; + int h; + } geometry; + + struct + { + int title; + int time; + int artist; + int album; + } colwidth; -typedef struct _Emphasis_Config -{ - char *hostname; - int port; - char *password; - int crossfade; - - struct { - int x; - int y; - int w; - int h; - } geometry; - - struct { - int title; - int time; - int artist; - int album; - } colwidth; - - Emphasis_Mode mode; -} Emphasis_Config; - -str... [truncated message content] |
From: Enlightenment C. <no...@cv...> - 2006-07-20 23:05:58
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/emphasis/data Modified Files: Makefile.am Log Message: Cover support added. Emphasis now use enhance. Big code clean-up + bugfixes. =================================================================== RCS file: /cvs/e/e17/proto/emphasis/data/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- Makefile.am 6 Jun 2006 11:22:15 -0000 1.1 +++ Makefile.am 21 Jul 2006 04:05:27 -0000 1.2 @@ -1 +1,8 @@ +FILES = \ +emphasis.glade + +filesdir = $(pkgdatadir) +files_DATA = $(FILES) +EXTRA_DIST = $(FILES) + SUBDIRS = images |
From: Enlightenment C. <no...@cv...> - 2006-07-20 23:05:58
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/emphasis/data/images Modified Files: Makefile.am Log Message: Cover support added. Emphasis now use enhance. Big code clean-up + bugfixes. =================================================================== RCS file: /cvs/e/e17/proto/emphasis/data/images/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- Makefile.am 6 Jun 2006 11:22:15 -0000 1.1 +++ Makefile.am 21 Jul 2006 04:05:27 -0000 1.2 @@ -1,7 +1,8 @@ FILES = \ note.png \ sound_low.png \ -sound_high.png +sound_high.png \ +haricot_musique-grrrr.png filesdir = $(pkgdatadir)/images files_DATA = $(FILES) |
From: Enlightenment C. <no...@cv...> - 2006-07-20 23:05:58
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/emphasis Modified Files: AUTHORS README TODO configure.in Log Message: Cover support added. Emphasis now use enhance. Big code clean-up + bugfixes. =================================================================== RCS file: /cvs/e/e17/proto/emphasis/AUTHORS,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- AUTHORS 6 Jun 2006 11:22:15 -0000 1.1 +++ AUTHORS 21 Jul 2006 04:05:27 -0000 1.2 @@ -1,9 +1,7 @@ Main author: ============ Samuel 'lok' Mendes <hek...@gm...> - -Contributions: -============== +Jonathan 'aji' Aberman <?> Floris 'any' Chabert <?> Thanks: =================================================================== RCS file: /cvs/e/e17/proto/emphasis/README,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- README 9 Jul 2006 18:27:39 -0000 1.3 +++ README 21 Jul 2006 04:05:27 -0000 1.4 @@ -1,20 +1,16 @@ --== Emphasis ==-- ##################################### -Usage: +Features: Drag and drop between medialib treeview and playlist is supported. Double left click on a row of medialib treeview add it with a search to the playlist, and play it if the server is on status "stop". ex : double left click on an album row will add all this album - Double right click remove them on the same principe, + Double middle click remove them on the same principe, Select a row in the playlist and push "d" to delete it from the playlist. - Right click on the playlist open a contextual menu. (need to be completed). + Right click open a contextual menu. A click on the progress bar seek the right time on the song. Select a medialib tree and type some letters will search for "pattern.*", Esc to cancel - -##################################### -State: - Etk_Spinner has been remove frome etk cvs so the config panel isn't usable. ##################################### Description: =================================================================== RCS file: /cvs/e/e17/proto/emphasis/TODO,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- TODO 8 Jul 2006 03:53:40 -0000 1.3 +++ TODO 21 Jul 2006 04:05:27 -0000 1.4 @@ -1,12 +1,10 @@ -*Add utf-8 support -*Use Table in config frames -*Put callback's on the spin button +*put the config dialog in the glade file *Add crossfade config *Add a drag and drop to order the tree_pls *Make an OSD at song change *Make a special panel for stream support *Make a special panel for advanced search +*Add bindings keys --- One Day -- -#use enhance -#massive code clean-up +== Later == +*Support XMMS 2 =================================================================== RCS file: /cvs/e/e17/proto/emphasis/configure.in,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- configure.in 8 Jul 2006 17:04:59 -0000 1.5 +++ configure.in 21 Jul 2006 04:05:27 -0000 1.6 @@ -91,6 +91,23 @@ ] ) +#check for Enhance +AC_PATH_EFL( + enhance, + 0.0.1, + [ + AC_DEFINE(HAVE_ENHANCE, 1, have ENHANCE) + enhance="ENHANCE " + AM_CONDITIONAL(HAVE_ENHANCE, true) + have_enhance="yes" + enhance_libs=`enhance-config --libs` + enhance_cflags=`enhance-config --cflags` + ], + [ + AC_MSG_ERROR([No Enhance, can't build.]) + ] +) + #check for libmpd PKG_CHECK_MODULES( [libmpd], @@ -108,6 +125,9 @@ ] ) +PKG_CHECK_MODULES(XML2, libxml-2.0) +AC_CHECK_LIB(pthread, pthread_create) + dnl Set ETK_PACKAGE_DATA_DIR in config.h. etk_prefix="\"`etk-config --prefix`/share/etk\"" AC_DEFINE_UNQUOTED(ETK_PACKAGE_DATA_DIR, $etk_prefix, [Data dir for etk lib.]) @@ -117,12 +137,16 @@ ecore_cflags=`ecore-config --cflags` etk_libs=`etk-config --libs` etk_cflags=`etk-config --cflags` +enhance_libs=`enhance-config --libs` +enhance_flags=`enhance-config --cflags` libmpd_libs=`pkg-config --libs libmpd` libmpd_cflags=`pkg-config --cflags libmpd` +libxml2_libs=`xml2-config --libs` +libxml2_cflags=`xml2-config --cflags` # add your required libs / include here -my_includes="$ecore_cflags $etk_cflags $libmpd_cflags" -my_libs="$ecore_libs $etk_libs $libmpd_libs" +my_includes="$ecore_cflags $etk_cflags $enhance_cflags $libmpd_cflags $libxml2_cflags" +my_libs="$ecore_libs $etk_libs $enhance_libs $libmpd_libs $libxml2_libs -lpthread" AC_SUBST(my_includes) AC_SUBST(my_libs) |
From: Enlightenment C. <no...@cv...> - 2006-07-21 10:18:41
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/emphasis/data Added Files: emphasis.glade Log Message: oups I've forgot the glade |
From: Enlightenment C. <no...@cv...> - 2006-07-21 10:19:30
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/emphasis/data/images Added Files: haricot_musique-grrrr.png Log Message: and another |
From: Enlightenment C. <no...@cv...> - 2006-07-27 22:32:55
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/emphasis/src/bin Modified Files: emphasis.c Log Message: Work with latest etk =================================================================== RCS file: /cvs/e/e17/proto/emphasis/src/bin/emphasis.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- emphasis.c 21 Jul 2006 04:05:27 -0000 1.5 +++ emphasis.c 27 Jul 2006 02:03:05 -0000 1.6 @@ -6,7 +6,7 @@ Emphasis_Gui *gui; /* void */ enhance_init(); - if (!etk_init(&argc, argv)) + if (!etk_init("ecore_evas_software_x11")) { fprintf(stderr, "Unable to init etk\n"); return 1; |
From: Enlightenment C. <no...@cv...> - 2006-07-31 15:07:02
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/enhance/src/lib Modified Files: enhance.c enhance_widget.c Log Message: Iconview support added. Notebook "show_tabs" properties support added. =================================================================== RCS file: /cvs/e/e17/proto/enhance/src/lib/enhance.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- enhance.c 21 Jul 2006 15:59:24 -0000 1.11 +++ enhance.c 31 Jul 2006 20:06:55 -0000 1.12 @@ -674,6 +674,15 @@ value); } } + + else if(!strcmp(name, "show_tabs")) + { + IF_PARENT_CLASS("GtkNotebook") + { + PROPERTY_BOOL; + etk_notebook_show_tabs_set(ETK_NOTEBOOK(wid->wid), value); + } + } } void =================================================================== RCS file: /cvs/e/e17/proto/enhance/src/lib/enhance_widget.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- enhance_widget.c 21 Jul 2006 15:59:24 -0000 1.12 +++ enhance_widget.c 31 Jul 2006 20:06:55 -0000 1.13 @@ -32,6 +32,8 @@ static E_Widget *_e_widget_hslider_handle(Enhance *en, EXML_Node *node); static E_Widget *_e_widget_vslider_handle(Enhance *en, EXML_Node *node); static E_Widget *_e_widget_textview_handle(Enhance *en, EXML_Node *node); +static E_Widget *_e_widget_filechooser_widget_handle(Enhance *en, EXML_Node *node); +static E_Widget *_e_widget_iconview_handle(Enhance *en, EXML_Node *node); static EXML_Node *find_node(EXML_Node *node, char *key, char *value) { @@ -681,6 +683,21 @@ return filechooser; } +static E_Widget * +_e_widget_iconview_handle(Enhance *en, EXML_Node *node) +{ + E_Widget *iconbox; + char *id; + + id = ecore_hash_get(node->attributes, "id"); + if(!id) return NULL; + + iconbox = _e_widget_new(en, node, etk_iconbox_new(), id); +// etk_iconbox_model_new(ETK_ICONBOX(iconbox)); + + return iconbox; +} + E_Widget * _e_widget_handle(Enhance *en, EXML_Node *node) { @@ -763,6 +780,8 @@ return _e_widget_textview_handle(en, node); else if(!strcmp(class, "GtkFileChooserWidget")) return _e_widget_filechooser_widget_handle(en, node); + else if(!strcmp(class, "GtkIconView")) + return _e_widget_iconview_handle(en, node); return NULL; } |
From: Enlightenment C. <no...@cv...> - 2006-07-31 15:08:07
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/etk/src/lib Modified Files: etk_notebook.c etk_notebook.h Log Message: [Notebook] etk_notebook_show_tabs_set/get added. =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_notebook.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -3 -r1.21 -r1.22 --- etk_notebook.c 26 Jul 2006 14:57:18 -0000 1.21 +++ etk_notebook.c 31 Jul 2006 20:08:00 -0000 1.22 @@ -379,6 +379,33 @@ return etk_bin_child_get(ETK_BIN(page->frame)); } +/** + * @brief Sets the visibility of the tab bar + * @param notebook a notebook + * @param show_tabs if show_tabs is ETK_FALSE, then the tab bar will be hidden + */ +void etk_notebook_show_tabs_set(Etk_Notebook *notebook, Etk_Bool show_tabs) +{ + if (show_tabs == ETK_FALSE) + { + etk_widget_hide(notebook->tab_bar); + } + else if (show_tabs == ETK_TRUE) + { + etk_widget_show(notebook->tab_bar); + } +} + +/** + * @brief Gets the visibility of the tab bar + * @param notebook a notebook + * @return Returns ETK_TRUE if the tab bar is visible, ETK_FALSE otherwise + */ +Etk_Bool etk_notebook_show_tabs_get(Etk_Notebook *notebook) +{ + return etk_widget_is_visible(ETK_NOTEBOOK(notebook)->tab_bar); +} + /************************** * * Etk specific functions =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_notebook.h,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- etk_notebook.h 28 May 2006 14:16:32 -0000 1.13 +++ etk_notebook.h 31 Jul 2006 20:08:00 -0000 1.14 @@ -74,6 +74,8 @@ void etk_notebook_page_child_set(Etk_Notebook *notebook, int page_num, Etk_Widget *child); Etk_Widget *etk_notebook_page_child_get(Etk_Notebook *notebook, int page_num); +void etk_notebook_show_tabs_set(Etk_Notebook *notebook, Etk_Bool show_tabs); +Etk_Bool etk_notebook_show_tabs_get(Etk_Notebook *notebook); /** @} */ #endif |
From: Enlightenment C. <no...@cv...> - 2006-08-01 00:41:00
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/etk/src/lib Modified Files: etk_notebook.c etk_notebook.h Log Message: [Etk_Notebook] the frame border of the notebook is now show/hide with the tabs =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_notebook.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- etk_notebook.c 31 Jul 2006 20:08:00 -0000 1.22 +++ etk_notebook.c 1 Aug 2006 05:40:57 -0000 1.23 @@ -27,6 +27,7 @@ static void _etk_notebook_child_add(Etk_Container *container, Etk_Widget *widget); static void _etk_notebook_child_remove(Etk_Container *container, Etk_Widget *widget); static Evas_List *_etk_notebook_children_get(Etk_Container *container); +static void _etk_notebook_show_frame_borders_set(Etk_Notebook_Page *page, Etk_Bool tab_bar_visible); static void _etk_notebook_tab_toggled_cb(Etk_Object *object, void *data); static void _etk_notebook_tab_bar_focused_cb(Etk_Object *object, void *data); @@ -386,13 +387,27 @@ */ void etk_notebook_show_tabs_set(Etk_Notebook *notebook, Etk_Bool show_tabs) { - if (show_tabs == ETK_FALSE) + Evas_List *page = NULL; + + if (notebook == NULL) + return; + + notebook->tab_bar_visible = show_tabs; + if (notebook->tab_bar) { - etk_widget_hide(notebook->tab_bar); + show_tabs ? etk_widget_show(notebook->tab_bar) : etk_widget_hide(notebook->tab_bar); } - else if (show_tabs == ETK_TRUE) + if (notebook->pages) { - etk_widget_show(notebook->tab_bar); + page = notebook->pages; + while (page) + { + if (page->data) + { + _etk_notebook_show_frame_borders_set(page->data, show_tabs); + } + page = evas_list_next(page); + } } } @@ -403,7 +418,7 @@ */ Etk_Bool etk_notebook_show_tabs_get(Etk_Notebook *notebook) { - return etk_widget_is_visible(ETK_NOTEBOOK(notebook)->tab_bar); + return notebook->tab_bar_visible; } /************************** @@ -421,6 +436,7 @@ notebook->pages = NULL; notebook->current_page = NULL; notebook->tab_bar_focused = ETK_FALSE; + notebook->tab_bar_focused = ETK_TRUE; _etk_notebook_tab_bar_create(notebook); @@ -601,6 +617,19 @@ return children; } +/* Set the frame borders visible if tab_bar_visible is true */ +static void _etk_notebook_show_frame_borders_set(Etk_Notebook_Page *page, Etk_Bool tab_bar_visible) +{ + if (tab_bar_visible == ETK_TRUE) + { + etk_widget_theme_group_set(page->frame, "frame"); + } + else + { + etk_widget_theme_group_set(page->frame, NULL); + } +} + /************************** * * Callbacks and handlers @@ -738,7 +767,10 @@ etk_widget_show(new_page->tab); etk_signal_connect("toggled", ETK_OBJECT(new_page->tab), ETK_CALLBACK(_etk_notebook_tab_toggled_cb), notebook); - new_page->frame = etk_widget_new(ETK_BIN_TYPE, "theme_group", "frame", NULL); + if (notebook->tab_bar_visible) + new_page->frame = etk_widget_new(ETK_BIN_TYPE, "theme_group", "frame", NULL); + else + new_page->frame = etk_widget_new(ETK_BIN_TYPE, "theme_group", NULL, NULL); etk_widget_parent_set(new_page->frame, ETK_WIDGET(notebook)); etk_widget_visibility_locked_set(new_page->frame, ETK_TRUE); etk_widget_hide(new_page->frame); @@ -749,6 +781,7 @@ _etk_notebook_page_switch(notebook, new_page); etk_widget_size_recalc_queue(ETK_WIDGET(notebook)); + return new_page; } =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_notebook.h,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- etk_notebook.h 31 Jul 2006 20:08:00 -0000 1.14 +++ etk_notebook.h 1 Aug 2006 05:40:57 -0000 1.15 @@ -45,6 +45,7 @@ Etk_Widget *tab_bar; Etk_Bool tab_bar_focused; + Etk_Bool tab_bar_visible; Evas_List *pages; Etk_Notebook_Page *current_page; |
From: Enlightenment C. <no...@cv...> - 2006-08-06 21:10:14
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/enhance/src/lib Modified Files: enhance_widget.c Log Message: Bugfix on image buttons. =================================================================== RCS file: /cvs/e/e17/proto/enhance/src/lib/enhance_widget.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- enhance_widget.c 31 Jul 2006 20:06:55 -0000 1.13 +++ enhance_widget.c 7 Aug 2006 02:10:10 -0000 1.14 @@ -1060,5 +1060,7 @@ { if(ETK_IS_IMAGE(child->wid)) etk_button_image_set(ETK_BUTTON(parent->wid), ETK_IMAGE(child->wid)); + else + etk_container_add(ETK_CONTAINER(parent->wid), child->wid); } } |
From: Enlightenment C. <no...@cv...> - 2006-08-06 22:40:48
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/enhance/src/lib Modified Files: enhance.c Log Message: icon_name property added. =================================================================== RCS file: /cvs/e/e17/proto/enhance/src/lib/enhance.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- enhance.c 5 Aug 2006 17:11:18 -0000 1.14 +++ enhance.c 7 Aug 2006 03:40:34 -0000 1.15 @@ -612,6 +612,16 @@ etk_object_properties_set(ETK_OBJECT(wid->wid), "stock_size", id, NULL); } + else if(!strcmp(name, "icon_name")) + { + Etk_Stock_Id id; + PROPERTY_STR; + + _en_stock_items_hash_init(); + id = (Etk_Stock_Id)ecore_hash_get(_en_stock_items_hash, value); + etk_object_properties_set(ETK_OBJECT(wid->wid), "stock_id", (Etk_Stock_Id)id, NULL); + } + else if(!strcmp(name, "use_stock")) { PROPERTY_BOOL; |
From: Enlightenment C. <no...@cv...> - 2006-08-08 16:45:45
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/enhance/src/lib Modified Files: enhance.c Log Message: notebook tabs_visible property restored. =================================================================== RCS file: /cvs/e/e17/proto/enhance/src/lib/enhance.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- enhance.c 8 Aug 2006 19:02:42 -0000 1.17 +++ enhance.c 8 Aug 2006 21:45:42 -0000 1.18 @@ -690,11 +690,7 @@ IF_PARENT_CLASS("GtkNotebook") { PROPERTY_BOOL; - /* FIXME: Simon removed this. - * lok, wanna implement again without issues? - * - * etk_notebook_show_tabs_set(ETK_NOTEBOOK(wid->wid), value); - */ + etk_notebook_tabs_visible_set(ETK_NOTEBOOK(wid->wid), value); } } } |
From: Enlightenment C. <no...@cv...> - 2006-08-14 19:50:41
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/enhance/src/lib Modified Files: enhance.c enhance_widget.c Log Message: small bugfixes =================================================================== RCS file: /cvs/e/e17/proto/enhance/src/lib/enhance.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- enhance.c 14 Aug 2006 09:11:31 -0000 1.19 +++ enhance.c 14 Aug 2006 19:50:38 -0000 1.20 @@ -418,7 +418,7 @@ if(!strcmp(name, "response_id")) { PROPERTY_STR; - etk_object_data_set(ETK_OBJECT(wid->wid), "response_id", strdup(value)); + etk_object_data_set(ETK_OBJECT(wid->wid), "response_id", value); } else if(!strcmp(name, "visible")) @@ -1129,7 +1129,7 @@ const char* enhance_widgets_next(Enhance *en, Enhance_Widgets_Enumerator* enumerator) { - Evas_List *list,*prev; + Evas_List *list; char* data; if (enumerator == NULL) return NULL; @@ -1137,10 +1137,9 @@ if (list == NULL) return NULL; data = evas_list_data(list); - prev = evas_list_prev(list); - if (prev == NULL) enhance_widgets_end(en, enumerator); + if (!evas_list_prev(list)) enhance_widgets_end(en, enumerator); - *enumerator = prev; + *enumerator = evas_list_prev(list); return data; } @@ -1152,7 +1151,7 @@ if (enumerator == NULL) return; list = *enumerator; - if (list != NULL) evas_list_free(list); + evas_list_free(list); *enumerator = NULL; } @@ -1195,6 +1194,7 @@ item = evas_list_data(signals); E_FREE(item); } + signals = data; evas_list_free(signals); return 1; @@ -1212,6 +1212,8 @@ evas_hash_foreach(en->signals, _e_signal_hash_free, en); evas_hash_free(en->signals); + evas_hash_free(en->callback_data); + ecore_hash_destroy(_en_stock_items_hash); E_FREE(en->main_window); =================================================================== RCS file: /cvs/e/e17/proto/enhance/src/lib/enhance_widget.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- enhance_widget.c 7 Aug 2006 02:10:10 -0000 1.14 +++ enhance_widget.c 14 Aug 2006 19:50:38 -0000 1.15 @@ -1062,5 +1062,7 @@ etk_button_image_set(ETK_BUTTON(parent->wid), ETK_IMAGE(child->wid)); else etk_container_add(ETK_CONTAINER(parent->wid), child->wid); + + etk_widget_pass_mouse_events_set(child->wid, ETK_TRUE); } } |
From: Enlightenment C. <no...@cv...> - 2006-08-14 19:51:11
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/enhance/examples Modified Files: enhance_test.c Log Message: small bugfixes =================================================================== RCS file: /cvs/e/e17/proto/enhance/examples/enhance_test.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- enhance_test.c 5 Aug 2006 16:18:43 -0000 1.9 +++ enhance_test.c 14 Aug 2006 19:50:37 -0000 1.10 @@ -48,7 +48,11 @@ etk_shutdown(); enhance_free(en); + + free(string1); + free(string2); enhance_shutdown(); + etk_shutdown(); return 0; } |
From: Enlightenment C. <no...@cv...> - 2006-08-14 20:09:20
|
Enlightenment CVS committal Author : lok Project : e17 Module : proto Dir : e17/proto/enhance/src/lib Modified Files: enhance.c Log Message: Last one. Now valgrind is quiet. =================================================================== RCS file: /cvs/e/e17/proto/enhance/src/lib/enhance.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- enhance.c 14 Aug 2006 19:50:38 -0000 1.20 +++ enhance.c 14 Aug 2006 20:09:17 -0000 1.21 @@ -1212,9 +1212,10 @@ evas_hash_foreach(en->signals, _e_signal_hash_free, en); evas_hash_free(en->signals); - evas_hash_free(en->callback_data); + if (en->callback_data) evas_hash_free(en->callback_data); + if (en->radio_groups) evas_hash_free(en->radio_groups); - ecore_hash_destroy(_en_stock_items_hash); + if (_en_stock_items_hash) ecore_hash_destroy(_en_stock_items_hash); E_FREE(en->main_window); E_FREE(en); |