Enlightenment CVS committal Author : chaos Project : e17 Module : proto/entropy
Dir : e17/proto/entropy/src/dialogs Modified Files: etk_efolder_dialog.c Log Message: eFolder creation dialog =================================================================== RCS file: /cvs/e/e17/proto/entropy/src/dialogs/etk_efolder_dialog.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- etk_efolder_dialog.c 30 Aug 2007 13:07:02 -0000 1.2 +++ etk_efolder_dialog.c 1 Sep 2007 12:13:14 -0000 1.3 @@ -1,5 +1,6 @@ #include <Etk.h> #include "entropy.h" +#include <evfs/evfs.h> typedef struct _Entropy_Etk_Efolder_Object { char* name; @@ -12,24 +13,78 @@ Etk_Widget* radio_tag; Etk_Widget* radio_meta; Etk_Widget* cmb_meta; + Etk_Widget* text_name; Etk_Widget* text_value; Etk_Widget* button_add; Etk_Widget* button_ok; Etk_Widget* button_cancel; + + Etk_Tree_Col* col1; + Etk_Tree_Col* col2; + Etk_Tree_Col* col3; } Entropy_Etk_Efolder_Dialog; static Entropy_Etk_Efolder_Dialog* eeed = NULL; void entropy_etk_efolder_dialog_close(Etk_Object* obj, void* data) { - //if (!((int)data ==1)) etk_widget_hide(_entropy_etk_efolder_dialog); + Evas_List* l = NULL; + EvfsVfolderEntry* v; + Etk_Tree_Row* iter; + + char* type; + char* key; + char* value; + + if (((int)data ==1)) { + char* name = (char*)etk_entry_text_get(ETK_ENTRY(eeed->text_name)); + + for (iter = etk_tree_first_row_get(ETK_TREE(eeed->tree)); iter; + iter = etk_tree_row_walk_next(iter, ETK_TRUE)) { + + etk_tree_row_fields_get(iter, + etk_tree_nth_col_get(ETK_TREE(eeed->tree),0), &type, + etk_tree_nth_col_get(ETK_TREE(eeed->tree),1),&key, + etk_tree_nth_col_get(ETK_TREE(eeed->tree),2),&value, + NULL); + + v= calloc(1,sizeof(EvfsVfolderEntry)); + v->type = type[0]; + v->name = key; + v->value = value; + + l = evas_list_append(l,v); + } + entropy_plugin_filesystem_vfolder_create(name,l); + } etk_widget_hide(eeed->dialog); } +void _etk_efolder_dialog_add_cb(Etk_Object* obj, void* data) +{ + char* type; + if (etk_toggle_button_active_get(ETK_TOGGLE_BUTTON(eeed->radio_meta)) == ETK_TRUE) { + type = "Metadata"; + } else { + type = "Tag"; + } + + etk_tree_row_append(ETK_TREE(eeed->tree), NULL, + eeed->col1, type, + eeed->col2, + (char*)etk_combobox_item_field_get(etk_combobox_active_item_get(ETK_COMBOBOX(eeed->cmb_meta)),0), + eeed->col3, etk_entry_text_get(ETK_ENTRY(eeed->text_value)), + NULL + ); + + etk_entry_clear(ETK_ENTRY(eeed->text_value)); +} + void entropy_etk_efolder_dialog_create() { Etk_Tree_Col* col; Etk_Widget* vbox; Etk_Widget* hbox; + Etk_Widget* label; if (!eeed) { eeed = entropy_malloc(sizeof(Entropy_Etk_Efolder_Dialog)); @@ -38,18 +93,26 @@ eeed->tree = etk_tree_new(); etk_tree_mode_set(ETK_TREE(eeed->tree), ETK_TREE_MODE_LIST); - col = etk_tree_col_new(ETK_TREE(eeed->tree), _("Type"), 150,0.0); - etk_tree_col_model_add(col, etk_tree_model_text_new()); + eeed->col1 = etk_tree_col_new(ETK_TREE(eeed->tree), _("Type"), 150,0.0); + etk_tree_col_model_add(eeed->col1, etk_tree_model_text_new()); - col = etk_tree_col_new(ETK_TREE(eeed->tree), _("Key"), 150,0.0); - etk_tree_col_model_add(col, etk_tree_model_text_new()); + eeed->col2 = etk_tree_col_new(ETK_TREE(eeed->tree), _("Key"), 150,0.0); + etk_tree_col_model_add(eeed->col2, etk_tree_model_text_new()); - col = etk_tree_col_new(ETK_TREE(eeed->tree), _("Value (if applicable)"), 150,0.0); - etk_tree_col_model_add(col, etk_tree_model_text_new()); + eeed->col3 = etk_tree_col_new(ETK_TREE(eeed->tree), _("Value (if applicable)"), 150,0.0); + etk_tree_col_model_add(eeed->col3, etk_tree_model_text_new()); vbox = etk_vbox_new(ETK_FALSE,0); etk_container_add(ETK_CONTAINER(eeed->dialog), vbox); etk_box_append(ETK_BOX(vbox), eeed->tree, ETK_BOX_START,ETK_BOX_EXPAND_FILL,0); + + hbox = etk_hbox_new(ETK_TRUE,1); + etk_box_append(ETK_BOX(vbox), hbox, ETK_BOX_END,ETK_BOX_NONE,0); + + label = etk_label_new("eFolder Name"); + etk_box_append(ETK_BOX(hbox), label, ETK_BOX_START,ETK_BOX_NONE,0); + eeed->text_name = etk_entry_new(); + etk_box_append(ETK_BOX(hbox), eeed->text_name, ETK_BOX_START,ETK_BOX_NONE,0); hbox = etk_hbox_new(ETK_TRUE,1); etk_box_append(ETK_BOX(vbox), hbox, ETK_BOX_END,ETK_BOX_NONE,0); @@ -59,29 +122,46 @@ eeed->radio_tag = etk_radio_button_new_with_label_from_widget("Tag", ETK_RADIO_BUTTON(eeed->radio_meta)); etk_box_append(ETK_BOX(hbox), eeed->radio_tag, ETK_BOX_START,ETK_BOX_NONE,0); + eeed->cmb_meta = etk_combobox_new_default(); + etk_box_append(ETK_BOX(hbox), eeed->cmb_meta, ETK_BOX_START,ETK_BOX_NONE,0); + eeed->text_value = etk_entry_new(); etk_box_append(ETK_BOX(hbox), eeed->text_value, ETK_BOX_START,ETK_BOX_NONE,0); - eeed->cmb_meta = etk_combobox_new(); - etk_box_append(ETK_BOX(hbox), eeed->cmb_meta, ETK_BOX_START,ETK_BOX_NONE,0); + eeed->button_add = etk_button_new_with_label("Add"); + etk_box_append(ETK_BOX(hbox), eeed->button_add, ETK_BOX_START,ETK_BOX_NONE,0); + etk_signal_connect("pressed", ETK_OBJECT(eeed->button_add), _etk_efolder_dialog_add_cb,NULL); hbox = etk_hbox_new(ETK_TRUE,1); etk_box_append(ETK_BOX(vbox), hbox, ETK_BOX_END,ETK_BOX_NONE,0); eeed->button_ok = etk_button_new_from_stock(ETK_STOCK_DIALOG_OK); + etk_signal_connect("pressed", ETK_OBJECT(eeed->button_ok), entropy_etk_efolder_dialog_close,(int*)1); etk_box_append(ETK_BOX(hbox), eeed->button_ok, ETK_BOX_START,ETK_BOX_NONE,0); eeed->button_cancel = etk_button_new_from_stock(ETK_STOCK_DIALOG_CANCEL); etk_box_append(ETK_BOX(hbox), eeed->button_cancel, ETK_BOX_START,ETK_BOX_NONE,0); + + etk_tree_build(ETK_TREE(eeed->tree)); } } -void entropy_etk_efolder_dialog_show() +void entropy_etk_efolder_dialog_show(Evas_List* l) { + EvfsMetaObject* o; + Evas_List* i; + if (!eeed) { entropy_etk_efolder_dialog_create(); + } + + etk_combobox_clear(ETK_COMBOBOX(eeed->cmb_meta)); + for (i=l;i;) { + o = i->data; + etk_combobox_item_append(ETK_COMBOBOX(eeed->cmb_meta), o->key); + i=i->next; } etk_widget_show_all(eeed->dialog); ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs