Enlightenment CVS committal
Author : dj2
Project : e17
Module : libs/ewl
Dir : e17/libs/ewl/src/bin/tests/mvc
Modified Files:
ewl_mvc.c
Log Message:
- add mvc range selection rm
- add multiselect capabilities to ewl_list
- add single and multiselect capabilities to ewl_tree2, both row and cell based
- doxy fixes
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/bin/tests/mvc/ewl_mvc.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- ewl_mvc.c 17 Oct 2006 15:35:37 -0000 1.2
+++ ewl_mvc.c 18 Oct 2006 16:28:08 -0000 1.3
@@ -6,8 +6,6 @@
static int selected_set(char *buf, int len);
static int selected_get(char *buf, int len);
-static int selected_list_set(char *buf, int len);
-static int selected_list_get(char *buf, int len);
static int selected_range_single_add(char *buf, int len);
static int selected_range_multi_add(char *buf, int len);
static int selected_count_get(char *buf, int len);
@@ -18,6 +16,11 @@
static int selected_clear(char *buf, int len);
static int selected_rm_idx(char *buf, int len);
+static int selected_rm_unselected_idx(char *buf, int len);
+static int selected_rm_2x1_bottom(char *buf, int len);
+static int selected_rm_2x1_top(char *buf, int len);
+static int selected_rm_1x2_left(char *buf, int len);
+static int selected_rm_1x2_right(char *buf, int len);
static int selected_rm_from_range_top_left_point(char *buf, int len);
static int selected_rm_from_range_bottom_right_point(char *buf, int len);
static int selected_rm_from_range_middle_point(char *buf, int len);
@@ -26,11 +29,15 @@
static int selected_rm_from_range_top_edge_point(char *buf, int len);
static int selected_rm_from_range_bottom_edge_point(char *buf, int len);
+static int ewl_mvc_is_index(char *buf, int len, Ewl_Selection *sel,
+ int row, int column);
+static int ewl_mvc_is_range(char *buf, int len, Ewl_Selection *sel,
+ int srow, int scolumn,
+ int erow, int ecolumn);
+
static Ewl_Unit_Test mvc_unit_tests[] = {
{"Set selected", selected_set},
{"Get selected", selected_get},
- {"List set selected", selected_list_set},
- {"List get selected", selected_list_get},
{"Range (single select) add", selected_range_single_add},
{"Range (multi select) add", selected_range_multi_add},
{"Count get", selected_count_get},
@@ -40,6 +47,11 @@
{"Is not selected (range)", selected_is_not_range},
{"Selected clear", selected_clear},
{"Remove index", selected_rm_idx},
+ {"Remove non-selected index", selected_rm_unselected_idx},
+ {"Remove bottom from 2x1", selected_rm_2x1_bottom},
+ {"Remove top from 2x1", selected_rm_2x1_top},
+ {"Remove left from 1x2", selected_rm_1x2_left},
+ {"Remove right from 1x2", selected_rm_1x2_right},
{"Remove from range, top left point",
selected_rm_from_range_top_left_point},
{"Remove from range, bottom right point",
@@ -127,18 +139,6 @@
}
static int
-selected_list_set(char *buf, int len)
-{
- return FALSE;
-}
-
-static int
-selected_list_get(char *buf, int len)
-{
- return FALSE;
-}
-
-static int
selected_range_single_add(char *buf, int len)
{
Ewl_Widget *t;
@@ -340,50 +340,561 @@
static int
selected_rm_idx(char *buf, int len)
{
- return FALSE;
+ Ewl_Widget *t;
+ Ewl_MVC *m;
+
+ t = ewl_tree2_new();
+ m = EWL_MVC(t);
+
+ ewl_mvc_selection_mode_set(m, EWL_SELECTION_MODE_MULTI);
+ ewl_mvc_selected_set(m, 6, 8);
+ ewl_mvc_selected_add(m, 3, 0);
+ ewl_mvc_selected_add(m, 9, 1);
+ ewl_mvc_selected_add(m, 1, 2);
+ ewl_mvc_selected_range_add(m, 6, 8, 1, 2);
+
+ ewl_mvc_selected_rm(m, 9, 1);
+ if (ewl_mvc_selected_is(m, 9, 1))
+ {
+ snprintf(buf, len, "Index still selected");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static int
+selected_rm_unselected_idx(char *buf, int len)
+{
+ Ewl_Widget *t;
+ Ewl_MVC *m;
+
+ t = ewl_tree2_new();
+ m = EWL_MVC(t);
+
+ ewl_mvc_selection_mode_set(m, EWL_SELECTION_MODE_MULTI);
+ ewl_mvc_selected_set(m, 6, 8);
+ ewl_mvc_selected_add(m, 3, 0);
+ ewl_mvc_selected_add(m, 9, 1);
+ ewl_mvc_selected_add(m, 1, 2);
+ ewl_mvc_selected_range_add(m, 6, 8, 1, 2);
+
+ ewl_mvc_selected_rm(m, 10, 2);
+ if (ewl_mvc_selected_is(m, 10, 2))
+ {
+ snprintf(buf, len, "Index still selected");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static int
+selected_rm_2x1_bottom(char *buf, int len)
+{
+ Ewl_Widget *t;
+ Ewl_MVC *m;
+ Ewl_Selection *sel;
+
+ t = ewl_tree2_new();
+ m = EWL_MVC(t);
+
+ ewl_mvc_selection_mode_set(m, EWL_SELECTION_MODE_MULTI);
+ ewl_mvc_selected_range_add(m, 1, 1, 2, 1);
+
+ ewl_mvc_selected_rm(m, 2, 1);
+ if (ewl_mvc_selected_is(m, 2, 1))
+ {
+ snprintf(buf, len, "Index still selected");
+ return FALSE;
+ }
+
+ if (ewl_mvc_selected_count_get(m) != 1)
+ {
+ snprintf(buf, len, "Incorrect number of selected items");
+ return FALSE;
+ }
+
+ sel = ecore_list_goto_first(m->selected);
+
+ /* should have 1 index [(1,1)] */
+ if (!ewl_mvc_is_index(buf, len, sel, 1, 1))
+ return FALSE;
+
+ return TRUE;
+}
+
+static int
+selected_rm_2x1_top(char *buf, int len)
+{
+ Ewl_Widget *t;
+ Ewl_MVC *m;
+ Ewl_Selection *sel;
+
+ t = ewl_tree2_new();
+ m = EWL_MVC(t);
+
+ ewl_mvc_selection_mode_set(m, EWL_SELECTION_MODE_MULTI);
+ ewl_mvc_selected_range_add(m, 1, 1, 2, 1);
+
+ ewl_mvc_selected_rm(m, 1, 1);
+ if (ewl_mvc_selected_is(m, 1, 1))
+ {
+ snprintf(buf, len, "Index still selected");
+ return FALSE;
+ }
+
+ if (ewl_mvc_selected_count_get(m) != 1)
+ {
+ snprintf(buf, len, "Incorrect number of selected items");
+ return FALSE;
+ }
+
+ sel = ecore_list_goto_first(m->selected);
+
+ /* should have 1 index [(2,1)] */
+ if (!ewl_mvc_is_index(buf, len, sel, 2, 1))
+ return FALSE;
+
+ return TRUE;
+}
+
+static int
+selected_rm_1x2_left(char *buf, int len)
+{
+ Ewl_Widget *t;
+ Ewl_MVC *m;
+ Ewl_Selection *sel;
+
+ t = ewl_tree2_new();
+ m = EWL_MVC(t);
+
+ ewl_mvc_selection_mode_set(m, EWL_SELECTION_MODE_MULTI);
+ ewl_mvc_selected_range_add(m, 1, 1, 1, 2);
+
+ ewl_mvc_selected_rm(m, 1, 1);
+ if (ewl_mvc_selected_is(m, 1, 1))
+ {
+ snprintf(buf, len, "Index still selected");
+ return FALSE;
+ }
+
+ if (ewl_mvc_selected_count_get(m) != 1)
+ {
+ snprintf(buf, len, "Incorrect number of selected items");
+ return FALSE;
+ }
+
+ sel = ecore_list_goto_first(m->selected);
+
+ /* should have 1 index [(1,2)] */
+ if (!ewl_mvc_is_index(buf, len, sel, 1, 2))
+ return FALSE;
+
+ return TRUE;
+}
+
+static int
+selected_rm_1x2_right(char *buf, int len)
+{
+ Ewl_Widget *t;
+ Ewl_MVC *m;
+ Ewl_Selection *sel;
+
+ t = ewl_tree2_new();
+ m = EWL_MVC(t);
+
+ ewl_mvc_selection_mode_set(m, EWL_SELECTION_MODE_MULTI);
+ ewl_mvc_selected_range_add(m, 1, 1, 1, 2);
+
+ ewl_mvc_selected_rm(m, 1, 2);
+ if (ewl_mvc_selected_is(m, 1, 2))
+ {
+ snprintf(buf, len, "Index still selected");
+ return FALSE;
+ }
+
+ if (ewl_mvc_selected_count_get(m) != 1)
+ {
+ snprintf(buf, len, "Incorrect number of selected items");
+ return FALSE;
+ }
+
+ sel = ecore_list_goto_first(m->selected);
+
+ /* should have 1 index [(1,1)] */
+ if (!ewl_mvc_is_index(buf, len, sel, 1, 1))
+ return FALSE;
+
+ return TRUE;
}
static int
selected_rm_from_range_top_left_point(char *buf, int len)
{
- return FALSE;
+ Ewl_Widget *t;
+ Ewl_MVC *m;
+ Ewl_Selection *sel;
+
+ t = ewl_tree2_new();
+ m = EWL_MVC(t);
+
+ ewl_mvc_selection_mode_set(m, EWL_SELECTION_MODE_MULTI);
+ ewl_mvc_selected_range_add(m, 6, 8, 1, 2);
+
+ ewl_mvc_selected_rm(m, 1, 2);
+ if (ewl_mvc_selected_is(m, 1, 2))
+ {
+ snprintf(buf, len, "Index still selected");
+ return FALSE;
+ }
+
+ if (ewl_mvc_selected_count_get(m) != 41)
+ {
+ snprintf(buf, len, "Incorrect number of selected items: %d",
+ ewl_mvc_selected_count_get(m));
+ return FALSE;
+ }
+
+ /* should have 2 ranges [(1,3)(6,8)] [(2,2)(6,2)] */
+ sel = ecore_list_goto_index(m->selected, 0);
+ if (!ewl_mvc_is_range(buf, len, sel, 1, 3, 6, 8))
+ return FALSE;
+
+ sel = ecore_list_goto_index(m->selected, 1);
+ if (!ewl_mvc_is_range(buf, len, sel, 2, 2, 6, 2))
+ return FALSE;
+
+ return TRUE;
}
static int
selected_rm_from_range_bottom_right_point(char *buf, int len)
{
- return FALSE;
+ Ewl_Widget *t;
+ Ewl_MVC *m;
+ Ewl_Selection *sel;
+
+ t = ewl_tree2_new();
+ m = EWL_MVC(t);
+
+ ewl_mvc_selection_mode_set(m, EWL_SELECTION_MODE_MULTI);
+ ewl_mvc_selected_range_add(m, 6, 8, 1, 2);
+
+ ewl_mvc_selected_rm(m, 6, 8);
+ if (ewl_mvc_selected_is(m, 6, 8))
+ {
+ snprintf(buf, len, "Index still selected");
+ return FALSE;
+ }
+
+ if (ewl_mvc_selected_count_get(m) != 41)
+ {
+ snprintf(buf, len, "Incorrect number of selected items: %d",
+ ewl_mvc_selected_count_get(m));
+ return FALSE;
+ }
+
+ /* should have 2 ranges [(1,2)(5,8)] [(6,2)(6,7)] */
+ sel = ecore_list_goto_index(m->selected, 0);
+ if (!ewl_mvc_is_range(buf, len, sel, 1, 2, 5, 8))
+ return FALSE;
+
+ sel = ecore_list_goto_index(m->selected, 1);
+ if (!ewl_mvc_is_range(buf, len, sel, 6, 2, 6, 7))
+ return FALSE;
+
+ return TRUE;
}
static int
selected_rm_from_range_middle_point(char *buf, int len)
{
- return FALSE;
+ Ewl_Widget *t;
+ Ewl_MVC *m;
+ Ewl_Selection *sel;
+
+ t = ewl_tree2_new();
+ m = EWL_MVC(t);
+
+ ewl_mvc_selection_mode_set(m, EWL_SELECTION_MODE_MULTI);
+ ewl_mvc_selected_range_add(m, 6, 8, 1, 2);
+
+ ewl_mvc_selected_rm(m, 4, 5);
+ if (ewl_mvc_selected_is(m, 4, 5))
+ {
+ snprintf(buf, len, "Index still selected");
+ return FALSE;
+ }
+
+ if (ewl_mvc_selected_count_get(m) != 41)
+ {
+ snprintf(buf, len, "Incorrect number of selected items: %d",
+ ewl_mvc_selected_count_get(m));
+ return FALSE;
+ }
+
+ /* should have 4 ranges: [(1,2)(3,8)]
+ [(4,2)(6,4)]
+ [(4,6)(6,8)]
+ [(5,5)(6,5)] */
+ sel = ecore_list_goto_index(m->selected, 0);
+ if (!ewl_mvc_is_range(buf, len, sel, 1, 2, 3, 8))
+ return FALSE;
+
+ sel = ecore_list_goto_index(m->selected, 1);
+ if (!ewl_mvc_is_range(buf, len, sel, 4, 2, 6, 4))
+ return FALSE;
+
+ sel = ecore_list_goto_index(m->selected, 2);
+ if (!ewl_mvc_is_range(buf, len, sel, 4, 6, 6, 8))
+ return FALSE;
+
+ sel = ecore_list_goto_index(m->selected, 3);
+ if (!ewl_mvc_is_range(buf, len, sel, 5, 5, 6, 5))
+ return FALSE;
+
+ return TRUE;
}
static int
selected_rm_from_range_left_edge_point(char *buf, int len)
{
- return FALSE;
+ Ewl_Widget *t;
+ Ewl_MVC *m;
+ Ewl_Selection *sel;
+
+ t = ewl_tree2_new();
+ m = EWL_MVC(t);
+
+ ewl_mvc_selection_mode_set(m, EWL_SELECTION_MODE_MULTI);
+ ewl_mvc_selected_range_add(m, 6, 8, 1, 2);
+
+ ewl_mvc_selected_rm(m, 4, 2);
+ if (ewl_mvc_selected_is(m, 4, 2))
+ {
+ snprintf(buf, len, "Index still selected");
+ return FALSE;
+ }
+
+ if (ewl_mvc_selected_count_get(m) != 41)
+ {
+ snprintf(buf, len, "Incorrect number of selected items: %d",
+ ewl_mvc_selected_count_get(m));
+ return FALSE;
+ }
+
+ /* should have 3 ranges: [(1,2)(3,8)]
+ [(4,3)(6,8)]
+ [(5,2)(6,2)] */
+ sel = ecore_list_goto_index(m->selected, 0);
+ if (!ewl_mvc_is_range(buf, len, sel, 1, 2, 3, 8))
+ return FALSE;
+
+ sel = ecore_list_goto_index(m->selected, 1);
+ if (!ewl_mvc_is_range(buf, len, sel, 4, 3, 6, 8))
+ return FALSE;
+
+ sel = ecore_list_goto_index(m->selected, 2);
+ if (!ewl_mvc_is_range(buf, len, sel, 5, 2, 6, 2))
+ return FALSE;
+
+ return TRUE;
}
static int
selected_rm_from_range_right_edge_point(char *buf, int len)
{
- return FALSE;
+ Ewl_Widget *t;
+ Ewl_MVC *m;
+ Ewl_Selection *sel;
+
+ t = ewl_tree2_new();
+ m = EWL_MVC(t);
+
+ ewl_mvc_selection_mode_set(m, EWL_SELECTION_MODE_MULTI);
+ ewl_mvc_selected_range_add(m, 6, 8, 1, 2);
+
+ ewl_mvc_selected_rm(m, 3, 8);
+ if (ewl_mvc_selected_is(m, 3, 8))
+ {
+ snprintf(buf, len, "Index still selected");
+ return FALSE;
+ }
+
+ if (ewl_mvc_selected_count_get(m) != 41)
+ {
+ snprintf(buf, len, "Incorrect number of selected items: %d",
+ ewl_mvc_selected_count_get(m));
+ return FALSE;
+ }
+
+ /* should have 3 ranges: [(1,2)(2,8)]
+ [(3,2)(6,7)]
+ [(4,8)(6,8)] */
+ sel = ecore_list_goto_index(m->selected, 0);
+ if (!ewl_mvc_is_range(buf, len, sel, 1, 2, 2, 8))
+ return FALSE;
+
+ sel = ecore_list_goto_index(m->selected, 1);
+ if (!ewl_mvc_is_range(buf, len, sel, 3, 2, 6, 7))
+ return FALSE;
+
+ sel = ecore_list_goto_index(m->selected, 2);
+ if (!ewl_mvc_is_range(buf, len, sel, 4, 8, 6, 8))
+ return FALSE;
+
+ return TRUE;
}
static int
selected_rm_from_range_top_edge_point(char *buf, int len)
{
- return FALSE;
+ Ewl_Widget *t;
+ Ewl_MVC *m;
+ Ewl_Selection *sel;
+
+ t = ewl_tree2_new();
+ m = EWL_MVC(t);
+
+ ewl_mvc_selection_mode_set(m, EWL_SELECTION_MODE_MULTI);
+ ewl_mvc_selected_range_add(m, 6, 8, 1, 2);
+
+ ewl_mvc_selected_rm(m, 1, 5);
+ if (ewl_mvc_selected_is(m, 1, 5))
+ {
+ snprintf(buf, len, "Index still selected");
+ return FALSE;
+ }
+
+ if (ewl_mvc_selected_count_get(m) != 41)
+ {
+ snprintf(buf, len, "Incorrect number of selected items: %d",
+ ewl_mvc_selected_count_get(m));
+ return FALSE;
+ }
+
+ /* should have 3 ranges: [(1,2)(6,4)]
+ [(1,6)(6,8)]
+ [(2,5)(6,5)] */
+ sel = ecore_list_goto_index(m->selected, 0);
+ if (!ewl_mvc_is_range(buf, len, sel, 1, 2, 6, 4))
+ return FALSE;
+
+ sel = ecore_list_goto_index(m->selected, 1);
+ if (!ewl_mvc_is_range(buf, len, sel, 1, 6, 6, 8))
+ return FALSE;
+
+ sel = ecore_list_goto_index(m->selected, 2);
+ if (!ewl_mvc_is_range(buf, len, sel, 2, 5, 6, 5))
+ return FALSE;
+
+ return TRUE;
}
static int
selected_rm_from_range_bottom_edge_point(char *buf, int len)
{
- return FALSE;
+ Ewl_Widget *t;
+ Ewl_MVC *m;
+ Ewl_Selection *sel;
+
+ t = ewl_tree2_new();
+ m = EWL_MVC(t);
+
+ ewl_mvc_selection_mode_set(m, EWL_SELECTION_MODE_MULTI);
+ ewl_mvc_selected_range_add(m, 6, 8, 1, 2);
+
+ ewl_mvc_selected_rm(m, 6, 3);
+ if (ewl_mvc_selected_is(m, 6, 3))
+ {
+ snprintf(buf, len, "Index still selected");
+ return FALSE;
+ }
+
+ if (ewl_mvc_selected_count_get(m) != 41)
+ {
+ snprintf(buf, len, "Incorrect number of selected items: %d",
+ ewl_mvc_selected_count_get(m));
+ return FALSE;
+ }
+
+ /* should have 3 ranges: [(1,2)(5,8)]
+ [(2,6)]
+ [(6,4)(6,8)] */
+ sel = ecore_list_goto_index(m->selected, 0);
+ if (!ewl_mvc_is_range(buf, len, sel, 1, 2, 5, 8))
+ return FALSE;
+
+ sel = ecore_list_goto_index(m->selected, 1);
+ if (!ewl_mvc_is_index(buf, len, sel, 6, 2))
+ return FALSE;
+
+ sel = ecore_list_goto_index(m->selected, 2);
+ if (!ewl_mvc_is_range(buf, len, sel, 6, 4, 6, 8))
+ return FALSE;
+
+ return TRUE;
+}
+
+static int
+ewl_mvc_is_index(char *buf, int len, Ewl_Selection *sel,
+ int row, int column)
+{
+ Ewl_Selection_Idx *idx;
+
+ if (sel->type != EWL_SELECTION_TYPE_INDEX)
+ {
+ snprintf(buf, len, "Incorrect selection type");
+ return FALSE;
+ }
+
+ idx = EWL_SELECTION_IDX(sel);
+ if ((idx->row != row) || (idx->column != column))
+ {
+ snprintf(buf, len, "Incorrect indices in index "
+ "([%d %d] vs [%d %d])",
+ idx->row, idx->column,
+ row, column);
+ return FALSE;
+ }
+
+ return TRUE;
}
+static int
+ewl_mvc_is_range(char *buf, int len, Ewl_Selection *sel,
+ int srow, int scolumn,
+ int erow, int ecolumn)
+{
+ Ewl_Selection_Range *rng;
+
+ if (sel->type != EWL_SELECTION_TYPE_RANGE)
+ {
+ snprintf(buf, len, "Incorrect selection type");
+ return FALSE;
+ }
+
+ rng = EWL_SELECTION_RANGE(sel);
+ if ((rng->start.row != srow) || (rng->start.column != scolumn))
+ {
+ snprintf(buf, len, "Start row/column incorrect "
+ "([%d %d] vs [%d %d])",
+ rng->start.row, rng->start.column,
+ srow, scolumn);
+ return FALSE;
+ }
+
+ if ((rng->end.row != erow) || (rng->end.column != ecolumn))
+ {
+ snprintf(buf, len, "End row/column incorrect "
+ "([%d %d] vs [%d %d])",
+ rng->end.row, rng->end.column,
+ erow, ecolumn);
+ return FALSE;
+ }
+
+ return TRUE;
+}
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs