Enlightenment CVS committal
Author : rbdpngn
Project : e17
Module : libs/ewl
Dir : e17/libs/ewl/src/lib
Modified Files:
ewl_tree2.h
Log Message:
Move the model and view into their own namespace and fill out some of the API.
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_tree2.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- ewl_tree2.h 4 Nov 2005 15:50:49 -0000 1.4
+++ ewl_tree2.h 8 Nov 2005 16:53:14 -0000 1.5
@@ -56,21 +56,46 @@
* @themekey /tree/group
*/
-typedef void *(*data_get)(void *data, int row, int column) Ewl_Tree2_Cell_Data;
-typedef void *(*child_data_get)(void *data, int row) Ewl_Tree2_Child_Data;
-typedef int (*column_sort)(void *data, int column) Ewl_Tree2_Column_Sort;
-typedef int (*row_count)(void *data) Ewl_Tree2_Row_Count;
+typedef void *(*data_get)(void *data, int row, int column) Ewl_Model_Data_Get;
-typedef struct Ewl_Tree2_Model Ewl_Tree2_Model;
+#define EWL_MODEL_DATA_GET(f) ((Ewl_Model_Data_Get *)d)
-struct Ewl_Tree2_Model
+typedef int (*data_sort)(void *data, int column) Ewl_Model_Data_Sort;
+
+#define EWL_MODEL_DATA_SORT(f) ((Ewl_Model_Data_Sort *)d)
+
+typedef int (*data_count)(void *data) Ewl_Model_Data_Count;
+
+#define EWL_MODEL_DATA_COUNT(f) ((Ewl_Model_Data_Count *)d)
+
+/**
+ * @def EWL_MODEL(t)
+ * Typecasts a pointer to an Ewl_Model pointer.
+ */
+#define EWL_MODEL(model) ((Ewl_Model *)model)
+
+typedef struct Ewl_Model Ewl_Model;
+
+struct Ewl_Model
{
- void *data; /**< Data provided to the tree */
+ Ewl_Model_Data_Get data_get; /**< Retrieve data for a cell */
+ Ewl_Model_Data_Get subdata_get; /**< Check for subdata */
+ Ewl_Model_Data_Sort column_sort; /**< Trigger sort on column */
+ Ewl_Model_Data_Count row_count; /**< Count of data items */
+};
+
+/**
+ * @def EWL_VIEW(t)
+ * Typecasts a pointer to an Ewl_View pointer.
+ */
+#define EWL_VIEW(view) ((Ewl_View *)view)
- Ewl_Tree2_Cell_Data cell_data_get; /**< Retrieve data for a cell */
- Ewl_Tree2_Child_Data child_data_get; /**< Check if a row expands */
- Ewl_Tree2_Column_Sort column_sort; /**< Trigger sort on column */
- Ewl_Tree2_Row_Count row_count; /**< Count of rows in data */
+typedef struct Ewl_View Ewl_View;
+
+struct Ewl_View
+{
+ Ewl_View_Constructor constructor; /**< Create a widget for display */
+ Ewl_View_Data_Assign data_set; /**< Assign data to a widget */
};
typedef struct Ewl_Tree2 Ewl_Tree2;
@@ -88,12 +113,13 @@
*/
struct Ewl_Tree2
{
- Ewl_Container container; /**< Inherit from container. */
+ Ewl_Container container; /**< Inherit from container. */
- Ewl_Tree2_Model *model; /**< Current data model for the tree. */
+ Ewl_Model *models; /**< Data models for the tree columns. */
- int *rowcache; /**< Cache of row sizes */
- int fixed; /**< Rows are fixed height */
+ void *data; /**< Data provided to the tree */
+ int *rowcache; /**< Cache of row sizes */
+ int fixed; /**< Rows are fixed height */
};
/*
@@ -102,6 +128,13 @@
Ewl_Widget *ewl_tree2_new();
int ewl_tree2_init(Ewl_Tree *tree);
+void ewl_tree2_data_set(Ewl_Tree2 *m, void *data);
+void *ewl_tree2_data_get(Ewl_Tree2 *m);
+
+void ewl_tree2_column_append(Ewl_Tree2 *t, Ewl_Model *m,
Ewl_Tree2_View *v);
+void ewl_tree2_column_prepend(Ewl_Tree2 *t, Ewl_Model *m,
Ewl_Tree2_View *v);
+void ewl_tree2_column_remove(Ewl_Tree2 *t, Ewl_Model *m,
Ewl_Tree2_View *v);
+
void ewl_tree2_headers_visible_set(Ewl_Tree *tree,
unsigned char visible);
unsigned int ewl_tree2_headers_visible_get(Ewl_Tree *tree);
@@ -116,18 +149,18 @@
int ewl_tree2_fixed_rows_get(Ewl_Tree2 *tree);
/*
- * Tree model manipulation.
+ * Model manipulation.
*/
-Ewl_Tree2_Model *ewl_tree2_model_new();
+Ewl_Model *ewl_model_new();
-void ewl_tree2_model_data_set(Ewl_Tree2_Model *m, void *data);
-void *ewl_tree2_model_data_get(Ewl_Tree2_Model *m);
+void ewl_model_data_get_set(Ewl_Model *m, Ewl_Tree2_Cell_Data
get);
+Ewl_Model_Data_Get ewl_model_data_get_get(Ewl_Model *m);
-void ewl_tree2_model_cell_data_get_set(Ewl_Tree2_Model *m,
Ewl_Tree2_Cell_Data get);
-Ewl_Tree2_Cell_Data ewl_tree2_model_cell_data_get_get(Ewl_Tree2_Model *m);
+void ewl_model_subdata_get_set(Ewl_Model *m,
Ewl_Model_Data_Get get);
+Ewl_Model_Data_Get ewl_model_subdata_get_get(Ewl_Model *m);
-void ewl_tree2_model_column_sort_set(Ewl_Tree2_Model *m,
Ewl_Tree2_Column_Sort sort);
-Ewl_Tree2_Column_Sort ewl_tree2_model_column_sort_get(Ewl_Tree2_Model *m);
+void ewl_model_data_sort_set(Ewl_Model *m,
Ewl_Tree2_Column_Sort sort);
+Ewl_Tree2_Column_Sort ewl_model_data_sort_get(Ewl_Model *m);
/**
* @}
-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs