Enlightenment CVS committal Author : lok Project : e17 Module : proto
Dir : e17/proto/enhance/src/lib Modified Files: enhance.c enhance_widget.c Log Message: Toolbar and ToolButton supported. =================================================================== RCS file: /cvs/e/e17/proto/enhance/src/lib/enhance.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- enhance.c 16 Aug 2006 13:35:33 -0000 1.23 +++ enhance.c 16 Aug 2006 17:35:55 -0000 1.24 @@ -600,7 +600,33 @@ _en_stock_items_hash_init(); id = (Etk_Stock_Id)ecore_hash_get(_en_stock_items_hash, value); - etk_object_properties_set(ETK_OBJECT(wid->wid), "stock_id", (Etk_Stock_Id)id, NULL); + etk_object_properties_set(ETK_OBJECT(wid->wid), "stock_id", id, NULL); + } + + else if(!strcmp(name, "stock_id")) + { + Etk_Stock_Id id; + PROPERTY_STR; + + _en_stock_items_hash_init(); + id = (Etk_Stock_Id)ecore_hash_get(_en_stock_items_hash, value); + + IF_PARENT_CLASS("GtkToolButton") + { + if (etk_button_label_get(ETK_BUTTON(wid->wid)) + && strcmp(" ", etk_button_label_get(ETK_BUTTON(wid->wid)))) + { + Etk_Widget *image; + image = etk_image_new_from_stock(id, ETK_STOCK_SMALL); + etk_button_image_set(ETK_BUTTON(wid->wid), ETK_IMAGE(image)); + etk_widget_show(image); + etk_widget_visibility_locked_set(image, ETK_TRUE); + } + else + { + etk_button_set_from_stock(ETK_BUTTON(wid->wid), id); + } + } } else if(!strcmp(name, "icon_size")) @@ -619,7 +645,26 @@ _en_stock_items_hash_init(); id = (Etk_Stock_Id)ecore_hash_get(_en_stock_items_hash, value); - etk_object_properties_set(ETK_OBJECT(wid->wid), "stock_id", (Etk_Stock_Id)id, NULL); + IF_PARENT_CLASS("GtkImage") + { + etk_object_properties_set(ETK_OBJECT(wid->wid), "stock_id", id, NULL); + } + IF_PARENT_CLASS("GtkToolButton") + { + if (etk_button_label_get(ETK_BUTTON(wid->wid)) + && strcmp(" ", etk_button_label_get(ETK_BUTTON(wid->wid)))) + { + Etk_Widget *image; + image = etk_image_new_from_stock(id, ETK_STOCK_SMALL); + etk_button_image_set(ETK_BUTTON(wid->wid), ETK_IMAGE(image)); + etk_widget_show(image); + etk_widget_visibility_locked_set(image, ETK_TRUE); + } + else + { + etk_button_set_from_stock(ETK_BUTTON(wid->wid), id); + } + } } else if(!strcmp(name, "use_stock")) @@ -637,7 +682,7 @@ label = (char *)etk_button_label_get(ETK_BUTTON(wid->wid)); id = (Etk_Stock_Id)ecore_hash_get(_en_stock_items_hash, label); if (id != ETK_STOCK_NO_STOCK) - etk_button_set_from_stock(ETK_BUTTON(wid->wid), (Etk_Stock_Id)id); + etk_button_set_from_stock(ETK_BUTTON(wid->wid), id); } IF_PARENT_CLASS("GtkImageMenuItem") { @@ -646,7 +691,7 @@ label = (char *)etk_menu_item_label_get(ETK_MENU_ITEM(wid->wid)); id = (Etk_Stock_Id)ecore_hash_get(_en_stock_items_hash, label); if (id != ETK_STOCK_NO_STOCK) - etk_menu_item_set_from_stock(ETK_MENU_ITEM(wid->wid), (Etk_Stock_Id)id); + etk_menu_item_set_from_stock(ETK_MENU_ITEM(wid->wid), id); } } } =================================================================== RCS file: /cvs/e/e17/proto/enhance/src/lib/enhance_widget.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- enhance_widget.c 16 Aug 2006 14:36:52 -0000 1.19 +++ enhance_widget.c 16 Aug 2006 17:35:55 -0000 1.20 @@ -34,6 +34,8 @@ static E_Widget *_e_widget_textview_handle(Enhance *en, EXML_Node *node); static E_Widget *_e_widget_filechooser_widget_handle(Enhance *en, EXML_Node *node); static E_Widget *_e_widget_iconview_handle(Enhance *en, EXML_Node *node); +static E_Widget *_e_widget_toolbar_handle(Enhance *en, EXML_Node *node); +static E_Widget *_e_widget_tool_button_handle(Enhance *en, EXML_Node *node); static EXML_Node *find_node(EXML_Node *node, char *key, char *value) { @@ -693,11 +695,38 @@ if(!id) return NULL; iconbox = _e_widget_new(en, node, etk_iconbox_new(), id); -// etk_iconbox_model_new(ETK_ICONBOX(iconbox)); return iconbox; } +static E_Widget * +_e_widget_toolbar_handle(Enhance *en, EXML_Node *node) +{ + E_Widget *toolbar; + char *id; + + id = ecore_hash_get(node->attributes, "id"); + if(!id) return NULL; + + toolbar = _e_widget_new(en, node, etk_toolbar_new(), id); + + return toolbar; +} + +static E_Widget * +_e_widget_tool_button_handle(Enhance *en, EXML_Node *node) +{ + E_Widget *tool_button; + char *id; + + id = ecore_hash_get(node->attributes, "id"); + if(!id) return NULL; + + tool_button = _e_widget_new(en, node, etk_tool_button_new(), id); + + return tool_button; +} + E_Widget * _e_widget_handle(Enhance *en, EXML_Node *node) { @@ -782,6 +811,10 @@ return _e_widget_filechooser_widget_handle(en, node); else if(!strcmp(class, "GtkIconView")) return _e_widget_iconview_handle(en, node); + else if(!strcmp(class, "GtkToolbar")) + return _e_widget_toolbar_handle(en, node); + else if(!strcmp(class, "GtkToolButton")) + return _e_widget_tool_button_handle(en, node); return NULL; } @@ -1074,4 +1107,8 @@ etk_widget_pass_mouse_events_set(child->wid, ETK_TRUE); } + else if(!strcmp(parent_class, "GtkToolbar")) + { + etk_toolbar_append(ETK_TOOLBAR(parent->wid), child->wid); + } } ------------------------------------------------------------------------- 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 enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs