Enlightenment CVS committal Author : moom Project : e17 Module : proto
Dir : e17/proto/etk/src/bin Modified Files: etk_scrolled_view_test.c etk_tree2_test.c Log Message: Lib: ---- * [Etk_Fixed] A new container that allows you to position widgets at fixed coords (see the test app of the scrolled view in etk_test for an example) * [Etk_Tree2] More work on Etk_Tree2: deletion and selection has been implemented Misc: ----- * [Theme] The sliders now look like those of e17 * [Theme] The theme of the rows have been improved (better colors imho) * [Autofoo] make dist is fixed =================================================================== RCS file: /cvs/e/e17/proto/etk/src/bin/etk_scrolled_view_test.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- etk_scrolled_view_test.c 15 Aug 2006 15:59:01 -0000 1.4 +++ etk_scrolled_view_test.c 9 Dec 2006 09:56:32 -0000 1.5 @@ -1,11 +1,19 @@ #include "etk_test.h" +#define BUTTON_WIDTH 150 +#define BUTTON_HEIGHT 40 +#define SPACING 5 +#define NUM_COLS 5 +#define NUM_ROWS 15 + /* Creates the window for the scrolled view test */ void etk_test_scrolled_view_window_create(void *data) { static Etk_Widget *win = NULL; Etk_Widget *scrolled_view; + Etk_Widget *fixed; Etk_Widget *button; + int i, j; if (win) { @@ -20,10 +28,19 @@ scrolled_view = etk_scrolled_view_new(); etk_container_add(ETK_CONTAINER(win), scrolled_view); + + fixed = etk_fixed_new(); + etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(scrolled_view), fixed); - button = etk_button_new_with_label("Scrolled View Test"); - etk_widget_size_request_set(button, 300, 300); - etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(scrolled_view), button); + for (i = 0; i < NUM_COLS; i++) + { + for (j = 0; j < NUM_ROWS; j++) + { + button = etk_button_new_with_label("Scrolled View Test"); + etk_widget_size_request_set(button, BUTTON_WIDTH, BUTTON_HEIGHT); + etk_fixed_put(ETK_FIXED(fixed), button, (BUTTON_WIDTH + SPACING) * i, (BUTTON_HEIGHT + SPACING) * j); + } + } etk_widget_show_all(win); } =================================================================== RCS file: /cvs/e/e17/proto/etk/src/bin/etk_tree2_test.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- etk_tree2_test.c 28 Nov 2006 21:40:07 -0000 1.1 +++ etk_tree2_test.c 9 Dec 2006 09:56:32 -0000 1.2 @@ -1,13 +1,14 @@ #include "etk_test.h" -#include <string.h> #include <stdlib.h> +#include <string.h> #include "config.h" +static void _etk_test_tree2_key_down_cb(Etk_Object *object, Etk_Event_Key_Down *event, void *data); + /* Creates the window for the tree test */ void etk_test_tree2_window_create(void *data) { static Etk_Widget *win = NULL; - Etk_Widget *hpaned; Etk_Widget *tree; Etk_Tree2_Col *col1, *col2, *col3, *col4; Etk_Tree2_Row *row; @@ -22,13 +23,12 @@ win = etk_window_new(); etk_container_border_width_set(ETK_CONTAINER(win), 5); etk_window_title_set(ETK_WINDOW(win), "Etk Tree Test"); + etk_window_resize(ETK_WINDOW(win), 440, 500); etk_signal_connect("delete_event", ETK_OBJECT(win), ETK_CALLBACK(etk_window_hide_on_delete), NULL); - - hpaned = etk_hpaned_new(); - etk_container_add(ETK_CONTAINER(win), hpaned); tree = etk_tree2_new(); - etk_paned_child1_set(ETK_PANED(hpaned), tree, ETK_TRUE); + etk_container_add(ETK_CONTAINER(win), tree); + etk_signal_connect("key_down", ETK_OBJECT(tree), ETK_CALLBACK(_etk_test_tree2_key_down_cb), NULL); etk_tree2_mode_set(ETK_TREE2(tree), ETK_TREE2_MODE_TREE); etk_tree2_multiple_select_set(ETK_TREE2(tree), ETK_TRUE); @@ -50,16 +50,47 @@ } etk_tree2_thaw(ETK_TREE2(tree)); - /*tree = etk_tree2_new(); - etk_paned_child2_set(ETK_PANED(hpaned), tree, ETK_TRUE); + etk_widget_show_all(win); +} - etk_tree2_mode_set(ETK_TREE2(tree), ETK_TREE2_MODE_TREE); - etk_tree2_multiple_select_set(ETK_TREE2(tree), ETK_TRUE); - col1 = etk_tree2_col_new(ETK_TREE2(tree), "Column 1", etk_tree2_model_icon_text_new(ETK_TREE2(tree), ETK_TREE_FROM_EDJE), 90); - col2 = etk_tree2_col_new(ETK_TREE2(tree), "Column 2", etk_tree2_model_double_new(ETK_TREE2(tree)), 60); - col3 = etk_tree2_col_new(ETK_TREE2(tree), "Column 3", etk_tree2_model_image_new(ETK_TREE2(tree), ETK_TREE_FROM_FILE), 60); - col4 = etk_tree2_col_new(ETK_TREE2(tree), "Column 4", etk_tree2_model_checkbox_new(ETK_TREE2(tree)), 90); - etk_tree2_build(ETK_TREE2(tree));*/ +/* Called when a key is pressed while the tree is focused: + * we use this to delete the selected rows if "DEL" is pressed */ +static void _etk_test_tree2_key_down_cb(Etk_Object *object, Etk_Event_Key_Down *event, void *data) +{ + Etk_Tree2 *tree; + Etk_Tree2_Row *r; - etk_widget_show_all(win); + if (!(tree = ETK_TREE2(object))) + return; + + if (strcmp(event->keyname, "Delete") == 0) + { + /* We walk through all the rows of the tree, and we delete those which are selected */ + for (r = etk_tree2_first_row_get(tree); r; ) + { + if (etk_tree2_row_is_selected(r)) + etk_tree2_row_delete(r); + + /* Gets the next row, even if the row is folded. Note that we can safely manipulate + * "r" here, even if we have called etk_tree2_row_delete() on it because etk_tree2_row_delete() + * just mark the row as deleted, but the row is not effectively deleted immediately */ + if (etk_tree2_row_first_child_get(r)) + r = etk_tree2_row_first_child_get(r); + else + { + while (r) + { + if (etk_tree2_row_next_get(r)) + { + r = etk_tree2_row_next_get(r); + break; + } + else + r = etk_tree2_row_parent_get(r); + } + } + } + + etk_signal_stop(); + } } ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs