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

Reply via email to