Etk_Bool bootpanel_ethlist_checkbox_change_cb(Etk_Object *object, Etk_Tree_Row *row, void *data) { Etk_Tree_Col* col; char* interface; Etk_Bool checked; boot_panel *pnl; pnl = (boot_panel*) data; col = ETK_TREE_COL(object); EXALT_ASSERT_RETURN(col!=NULL); EXALT_ASSERT_RETURN(row!=NULL); EXALT_ASSERT_RETURN(pnl!=NULL); etk_tree_row_fields_get(row, col, NULL, &interface, NULL); etk_tree_row_fields_get(row, col, &checked, NULL, NULL); //we change the state of the checkbox because it will be update when the daemon will update the configuration (see main_window.c::mainwindow_notify_cb()) bootpanel_update_interface(interface, pnl); if(checked) exalt_dbus_bootprocess_iface_add(exalt_conn,interface); else exalt_dbus_bootprocess_iface_remove(exalt_conn,interface); return ETK_TRUE; }
int tree_sort(Etk_Tree *tree, Etk_Tree_Row *r1, Etk_Tree_Row *r2, Etk_Tree_Col *col, void *data) { char *k1 = NULL; char *k2 = NULL; etk_tree_row_fields_get(r1, col, &k1, NULL); etk_tree_row_fields_get(r2, col, &k2, NULL); return strcoll(k1, k2); }
/* Used to sort the first column of the tree... */ static int _etk_test_tree_compare_cb(Etk_Tree_Col *col, Etk_Tree_Row *row1, Etk_Tree_Row *row2, void *data) { int str1, str2; etk_tree_row_fields_get(row1, col, &str1, NULL); etk_tree_row_fields_get(row2, col, &str2, NULL); if (str1 < str2) return -1; else if (str1 > str2) return 1; else return 0; }
static int _entropy_etk_file_cache_dialog_listener_compare_cb (Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data) { int val1, val2; etk_tree_row_fields_get(row1, col, &val1, NULL); etk_tree_row_fields_get(row2, col, &val2, NULL); if (val1 < val2) return 1; else if (val1 > val2) return -1; else return 0; }
/* Data Windows Callbacks */ Etk_Bool _data_list_row_selected_cb(Etk_Tree *tree, Etk_Tree_Row *row, void *data) { Etk_Tree_Col *col1, *col2; const char *name, *value; col1 = etk_tree_nth_col_get(ETK_TREE(UI_DataList), 0); col2 = etk_tree_nth_col_get(ETK_TREE(UI_DataList), 1); etk_tree_row_fields_get(row, col1, &name, NULL); etk_tree_row_fields_get(row, col2, &value, NULL); etk_entry_text_set(ETK_ENTRY(UI_DataNameEntry), name); etk_entry_text_set(ETK_ENTRY(UI_DataValueEntry), value); etk_widget_disabled_set(UI_DataApplyButton, ETK_FALSE); return ETK_TRUE; }
/* callback for engines list */ static void _etk_prefs_engine_row_selected_cb(Etk_Object *object, Etk_Tree_Row *row) { Etk_Tree *tree; char *icol_string; tree = ETK_TREE(object); etk_tree_row_fields_get(row, etk_tree_nth_col_get(tree, 0), &icol_string, NULL, NULL, NULL); free(_etk_prefs_engine); _etk_prefs_engine = strdup(icol_string); }
/* callback for theme list */ static void _etk_prefs_theme_row_selected_cb(Etk_Object *object, Etk_Tree_Row *row, void *data) { Etk_Widget *child = NULL; Etk_Tree *tree; char *icol_string; Etk_Widget *preview; tree = ETK_TREE(object); preview = data; etk_tree_row_fields_get(row, etk_tree_nth_col_get(tree, 0), &icol_string, NULL, NULL, NULL); child = _etk_prefs_theme_preview_get(icol_string); etk_container_add(ETK_CONTAINER(preview), child); etk_widget_show_all(child); }
/* Called when a checkbox of the tree is toggled: we display its new state in the statusbar */ static Etk_Bool _etk_test_tree_checkbox_toggled_cb(Etk_Object *object, Etk_Tree_Row *row, void *data) { Etk_Tree *tree; Etk_Tree_Col *col; Etk_Statusbar *statusbar; Etk_Bool checked; char *row_name; char message[1024]; if (!(col = ETK_TREE_COL(object)) || !(statusbar = ETK_STATUSBAR(data)) || !row) return ETK_TRUE; tree = etk_tree_col_tree_get(col); /* We retrieve the name of the row: see _etk_test_tree_row_clicked_cb() for more info*/ etk_tree_row_fields_get(row, etk_tree_nth_col_get(tree, 0), NULL, NULL, &row_name, NULL); /* We then retrieve the new state of the checkbox */ etk_tree_row_fields_get(row, col, &checked, NULL); sprintf(message, "Row \"%s\" has been %s", row_name, checked ? "checked" : "unchecked"); etk_statusbar_message_push(statusbar, message, 0); return ETK_TRUE; }
/* Image Frame Callbacks */ Etk_Bool _image_TweenList_row_selected_cb(Etk_Object *object, Etk_Tree_Row *row, void *data) { Etk_Tree_Col *col; char *selected = NULL; printf("Row selected signal on ImageTweenList EMITTED\n"); col = etk_tree_nth_col_get(ETK_TREE(UI_ImageTweenList), 0); etk_tree_row_fields_get(row, col, NULL, NULL, &selected, NULL); if (!selected) return ETK_TRUE; Cur.tween = etk_string_set(Cur.tween, selected); etk_widget_disabled_set(UI_DeleteTweenButton, FALSE); // etk_widget_disabled_set(UI_MoveDownTweenButton, FALSE); // etk_widget_disabled_set(UI_MoveUpTweenButton, FALSE); return ETK_TRUE; }
Etk_Tree_Row * mainWindow_findrow(main_window* win, exalt_ethernet* eth) {/*{{{*/ Etk_Tree_Row* row; char* row_name; row = etk_tree_first_row_get(ETK_TREE(win->eth_list)); //the first row is "General", we can jump it row = etk_tree_row_next_get(row); while(row) { etk_tree_row_fields_get(row, win->eth_col0, NULL, NULL, &row_name, NULL); if(strcmp(row_name,exalt_eth_get_name(eth))==0) return row; row = etk_tree_row_next_get(row); } return NULL; }/*}}}*/
Etk_Tree_Row * bootpanel_findrow(char* interface, boot_panel* pnl) { Etk_Tree_Row* row; char* row_name; EXALT_ASSERT_RETURN(interface!=NULL); EXALT_ASSERT_RETURN(pnl!=NULL); row = etk_tree_first_row_get(ETK_TREE(pnl->eth_list)); while(row) { etk_tree_row_fields_get(row, pnl->eth_col0, NULL, &row_name, NULL); if(strcmp(row_name,interface)==0) return row; row = etk_tree_row_next_get(row); } return NULL; }
void mainWindow_ethList_row_clicked_cb(Etk_Object *object, Etk_Tree_Row *row, Etk_Event_Mouse_Up *event, void *data) {/*{{{*/ Etk_Tree *tree; char *row_name; main_window* win; exalt_ethernet* eth; if (!(tree = ETK_TREE(object)) || !row || !event || !data) return; win = (main_window*)data; etk_tree_row_fields_get(row, etk_tree_nth_col_get(tree, 0), NULL, NULL, &row_name, NULL); if(strcmp(row_name,_("General")) == 0 ) { wirelesspanel_hide(win->wireless_panel); ethpanel_hide(win->eth_panel); generalpanel_show(win->general_panel); } else { eth = exalt_eth_get_ethernet_byname(row_name); if(!exalt_eth_is_wireless(eth)) { ethpanel_set_eth(win->eth_panel,eth); wirelesspanel_hide(win->wireless_panel); generalpanel_hide(win->general_panel); ethpanel_show(win->eth_panel); } else { wirelesspanel_set_eth(win->wireless_panel,eth); ethpanel_hide(win->eth_panel); generalpanel_hide(win->general_panel); wirelesspanel_show(win->wireless_panel); } } }/*}}}*//*}}}*//*}}}*/
void change_cover_path(char *cover_path) { Etk_Tree_Row *row; Cover_Entry *ce; char *key; row = etk_tree_selected_row_get(ETK_TREE(tree)); if (!row) { return; } ce = malloc(sizeof(Cover_Entry)); etk_tree_row_fields_get(row, etk_tree_nth_col_get(ETK_TREE(tree), 0), &key, NULL); ce->key = strdup(key); ce->path = strdup(cover_path); cover_changed = eina_list_append(cover_changed, ce); }
/* TODO: sometimes it's a Etk_Event_Mouse_Up, sometimes a Etk_Event_Mouse_Down... */ static Etk_Bool _etk_test_tree_row_clicked_cb(Etk_Object *object, Etk_Tree_Row *row, Etk_Event_Mouse_Up *event, void *data) { Etk_Tree *tree; Etk_Statusbar *statusbar; char *row_name; char message[1024]; if (!(tree = ETK_TREE(object)) || !(statusbar = ETK_STATUSBAR(data)) || !row || !event) return ETK_TRUE; /* We retrieve the name of the row: this information is located in the first column, * and it corresponds to the third param of the model (the two first params correspond * to the icon used, we ignore them here (that's why there are two NULL params)). * etk_tree_row_fields_get() has to be terminated by NULL */ etk_tree_row_fields_get(row, etk_tree_nth_col_get(tree, 0), NULL, NULL, &row_name, NULL); sprintf(message, "Row \"%s\" clicked (%s)", row_name, (event->flags & ETK_MOUSE_TRIPLE_CLICK) ? "Triple" : ((event->flags & ETK_MOUSE_DOUBLE_CLICK) ? "Double" : "Single")); etk_statusbar_message_push(statusbar, message, 0); return ETK_TRUE; }
Etk_Bool _data_apply_button_click_cb(Etk_Button *button, void *data) { Etk_Tree_Col *col1, *col2; Etk_Tree_Row *row; const char *name, *value, *new_name, *new_value; col1 = etk_tree_nth_col_get(ETK_TREE(UI_DataList), 0); col2 = etk_tree_nth_col_get(ETK_TREE(UI_DataList), 1); row = etk_tree_selected_row_get(ETK_TREE(UI_DataList)); etk_tree_row_fields_get(row, col1, &name, col2, &value, NULL); new_name = etk_entry_text_get(ETK_ENTRY(UI_DataNameEntry)); new_value = etk_entry_text_get(ETK_ENTRY(UI_DataValueEntry)); if (strcmp(value, new_value)) edje_edit_data_value_set(edje_o, name, new_value); if (strcmp(name, new_name)) edje_edit_data_name_set(edje_o, name, new_name); etk_tree_row_fields_set(row, ETK_FALSE, col1, new_name, col2, new_value, NULL); return ETK_TRUE; }
int mainWindow_eth_state_timer(void* data) {/*{{{*/ main_window* win = (main_window*)data; Etk_Tree_Row *row; char* row_name; exalt_ethernet* eth; row = etk_tree_first_row_get(ETK_TREE(win->eth_list)); //the first row is "General", we can jump it row = etk_tree_row_next_get(row); while(row!=NULL) { etk_tree_row_fields_get(row, win->eth_col0, NULL, NULL, &row_name, NULL); eth=exalt_eth_get_ethernet_byname(row_name); if(eth) { if(exalt_eth_is_wireless(eth)) { short radio; exalt_wireless_load_radio_button(eth); radio = exalt_wireless_raddiobutton_ison(exalt_eth_get_wireless(eth)); if(radio && exalt_eth_is_activate(eth)) etk_tree_row_fields_set(row, 0, win->eth_col0,PACKAGE_DATA_DIR ICONS_WIRELESS_ACTIVATE,NULL,row_name, NULL); else etk_tree_row_fields_set(row, 0, win->eth_col0,PACKAGE_DATA_DIR ICONS_WIRELESS_NOT_ACTIVATE,NULL,row_name, NULL); } else if(exalt_eth_is_activate(eth)) etk_tree_row_fields_set(row, 0, win->eth_col0,PACKAGE_DATA_DIR ICONS_ETHERNET_ACTIVATE,NULL,row_name, NULL); else etk_tree_row_fields_set(row, 0, win->eth_col0,PACKAGE_DATA_DIR ICONS_ETHERNET_NOT_ACTIVATE,NULL,row_name, NULL); } row = etk_tree_row_next_get(row); } return 1; }/*}}}*/
static void _ex_tab_tree_drag_begin_cb(Etk_Object *object, void *data) { Ex_Tab *tab; Etk_Tree *tree; Etk_Tree_Row *row; Etk_Widget *drag; Etk_Widget *image; Eina_List *rows; char *icol1_string; char *icol2_string; char *drag_data; const char **types; unsigned int num_types; tab = data; tree = ETK_TREE(object); /* TODO: reimplement dnd when it is reimplemented in Etk drag = (ETK_WIDGET(tree))->drag; */ drag = NULL; rows = etk_tree_selected_rows_get(tree); types = calloc(1, sizeof(char*)); num_types = 1; types[0] = strdup("text/uri-list"); if (eina_list_count(rows) > 1) { Eina_List *ll; Etk_Widget *table; int i = 0, l = 0, r = 0, t = 0, b = 0, row_num; if (eina_list_count(rows) >= EX_DND_COL_NUM) row_num = eina_list_count(rows) / EX_DND_COL_NUM; else row_num = 1; table = etk_table_new(EX_DND_COL_NUM, row_num + 1, ETK_TABLE_HOMOGENEOUS); drag_data = calloc(PATH_MAX * eina_list_count(rows), sizeof(char)); EINA_LIST_FOREACH(rows, ll, row) { char tmp[PATH_MAX]; etk_tree_row_fields_get(row, etk_tree_nth_col_get(tree, 0), &icol1_string, &icol2_string, etk_tree_nth_col_get(tree, 1),NULL); snprintf(tmp, PATH_MAX * sizeof(char), "file://%s%s\r\n", tab->dir, icol2_string); strncat(drag_data, tmp, PATH_MAX * eina_list_count(rows)); if (i <= EX_DND_MAX_NUM * EX_DND_MAX_NUM) { image = etk_image_new_from_file(icol1_string, NULL); etk_image_keep_aspect_set(ETK_IMAGE(image), ETK_TRUE); etk_widget_size_request_set(image, 48, 48); etk_table_attach(ETK_TABLE(table), image, l, r, t, b, ETK_TABLE_NONE, 3, 3); ++l; ++r; if (l == EX_DND_COL_NUM) { l = r = 0; ++t; ++b; } } ++i; }