Enlightenment CVS committal

Author  : dj2
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/lib


Modified Files:
        ewl_tree2.c 


Log Message:
- only show the expansion node if the model is expandable

===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_tree2.c,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -3 -r1.64 -r1.65
--- ewl_tree2.c 12 Mar 2007 22:23:02 -0000      1.64
+++ ewl_tree2.c 12 Mar 2007 22:36:28 -0000      1.65
@@ -1261,10 +1261,15 @@
 void
 ewl_tree2_node_expandable_set(Ewl_Tree2_Node *node, void *data)
 {
+       Ewl_Model *model;
+
        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR("node", node);
 
-       if (!node->handle)
+       model = ewl_mvc_model_get(EWL_MVC(node));
+       /* we only create the handle if it doesn't exist and the model has
+        * a function to query for expandability */
+       if (!node->handle && model->expansion.is)
        {
                node->handle = ewl_expansion_new();
                ewl_object_fill_policy_set(EWL_OBJECT(node->handle),
@@ -1274,19 +1279,23 @@
                ewl_container_child_prepend(EWL_CONTAINER(node), node->handle);
                ewl_widget_show(node->handle);
        }
-       if (data)
-       {
-               ewl_callback_append(node->handle, EWL_CALLBACK_VALUE_CHANGED,
-                                               ewl_tree2_cb_node_toggle, node);
-               ewl_widget_enable(node->handle);
-               ewl_expansion_expandable_set(EWL_EXPANSION(node->handle), TRUE);
-       }
-       else if (node->handle && !data)
+
+       if (node->handle)
        {
-               ewl_callback_del(node->handle, EWL_CALLBACK_VALUE_CHANGED,
-                                               ewl_tree2_cb_node_toggle);
-               ewl_widget_disable(node->handle);
-               ewl_expansion_expandable_set(EWL_EXPANSION(node->handle), 
FALSE);
+               if (data)
+               {
+                       ewl_callback_append(node->handle, 
EWL_CALLBACK_VALUE_CHANGED,
+                                                       
ewl_tree2_cb_node_toggle, node);
+                       ewl_widget_enable(node->handle);
+                       
ewl_expansion_expandable_set(EWL_EXPANSION(node->handle), TRUE);
+               }
+               else 
+               {
+                       ewl_callback_del(node->handle, 
EWL_CALLBACK_VALUE_CHANGED,
+                                                       
ewl_tree2_cb_node_toggle);
+                       ewl_widget_disable(node->handle);
+                       
ewl_expansion_expandable_set(EWL_EXPANSION(node->handle), FALSE);
+               }
        }
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);



-------------------------------------------------------------------------
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