Enlightenment CVS committal

Author  : lordchaos
Project : e17
Module  : proto

Dir     : e17/proto/entropy/src/dialogs


Modified Files:
        etk_location_add_dialog.c etk_mime_dialog_main.c 
Added Files:
        etk_file_cache_debug_dialog.c 


Log Message:
* ETK mime dialog

===================================================================
RCS file: 
/cvsroot/enlightenment/e17/proto/entropy/src/dialogs/etk_location_add_dialog.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- etk_location_add_dialog.c   2 Mar 2006 02:44:19 -0000       1.7
+++ etk_location_add_dialog.c   5 Mar 2006 23:57:56 -0000       1.8
@@ -290,20 +290,20 @@
        hbox = etk_hbox_new(ETK_FALSE,0);
        
        dialog_button = etk_button_new_with_label("Back");
-       etk_box_pack_start(ETK_BOX(hbox), dialog_button, ETK_TRUE, ETK_TRUE, 5);
+       etk_box_pack_start(ETK_BOX(hbox), dialog_button, ETK_FALSE, ETK_FALSE, 
5);
        
 
        dialog_button = etk_button_new_with_label("Next >");
-       etk_box_pack_start(ETK_BOX(hbox), dialog_button, ETK_TRUE, ETK_TRUE, 5);
+       etk_box_pack_start(ETK_BOX(hbox), dialog_button, ETK_FALSE, ETK_FALSE, 
5);
        etk_signal_connect("clicked", ETK_OBJECT(dialog_button), 
ETK_CALLBACK(_location_add_next_cb), dialog);
 
        dialog_button = etk_button_new_with_label("Cancel");
        etk_signal_connect("clicked", ETK_OBJECT(dialog_button), 
ETK_CALLBACK(_entropy_etk_location_cancel_cb), dialog);
-       etk_box_pack_start(ETK_BOX(hbox), dialog_button, ETK_TRUE, ETK_TRUE, 5);
+       etk_box_pack_start(ETK_BOX(hbox), dialog_button, ETK_FALSE, ETK_FALSE, 
5);
        
 
-       etk_container_add(ETK_CONTAINER(outer_vbox), hbox);
-
+       etk_box_pack_start(ETK_BOX(outer_vbox), hbox, ETK_FALSE, ETK_FALSE, 5);
+       
        etk_widget_show_all(dialog->window);
 }
 
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/proto/entropy/src/dialogs/etk_mime_dialog_main.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- etk_mime_dialog_main.c      4 Mar 2006 01:55:06 -0000       1.2
+++ etk_mime_dialog_main.c      5 Mar 2006 23:57:56 -0000       1.3
@@ -1,29 +1,195 @@
 #include "entropy.h"
 #include <Etk.h>
 
-void etk_mime_dialog_create()
+static int _etk_mime_dialog_displayed = 0;
+static Etk_Widget* mime_dialog_window;
+static Etk_Widget* mime_dialog_add_edit_window;
+static Etk_Widget* etk_mime_mime_entry;
+static Etk_Widget* etk_mime_program_entry;
+static Etk_Widget* _etk_mime_dialog_main_tree = NULL;
+
+
+void _entropy_etk_mime_dialog_add_cb(Etk_Object* w, void* user_data);
+static Etk_Bool _etk_window_deleted_cb (Etk_Object * object, void *data);
+void etk_mime_dialog_add_edit_create();
+void etk_mime_dialog_create();
+void etk_mime_dialog_tree_populate();
+
+
+static Etk_Bool
+_etk_window_deleted_cb (Etk_Object * object, void *data)
 {
-       Etk_Widget* window = NULL;
-       Etk_Widget* tree = NULL;
-       Etk_Tree_Col* tree_col;
+       _etk_mime_dialog_displayed = 0;
+       etk_object_destroy(ETK_OBJECT(mime_dialog_window));
+
+       return ETK_TRUE;
+}
 
-       Etk_Tree_Col* col1;
-       Etk_Tree_Col* col2;
 
 
+void _entropy_etk_mime_dialog_add_edit_cancel_cb(Etk_Object* w, void* 
user_data)
+{
+       if (mime_dialog_add_edit_window) {
+               etk_object_destroy(ETK_OBJECT(mime_dialog_add_edit_window));
+       }
+}
+
+void _entropy_etk_mime_dialog_add_edit_final_cb(Etk_Object* w, void* user_data)
+{
+       const char *type_text = 
etk_entry_text_get(ETK_ENTRY(etk_mime_mime_entry));
+       const char *action_text = 
etk_entry_text_get(ETK_ENTRY(etk_mime_program_entry));
+
+       entropy_core_mime_action_add((char*)type_text, (char*)action_text);
+
+       etk_object_destroy(ETK_OBJECT(mime_dialog_add_edit_window));
+       mime_dialog_add_edit_window= NULL;
+
+       etk_mime_dialog_tree_populate();
+}
+
+void etk_mime_dialog_tree_populate()
+{
+       Etk_Widget* tree = _etk_mime_dialog_main_tree;
+       Etk_Tree_Col* col1;
+       Etk_Tree_Col* col2;
+       
        char* key;
        entropy_mime_action* action;
        Ecore_List* keys;
 
-       window = etk_window_new();
+       etk_tree_freeze(ETK_TREE(tree));
+
+       etk_tree_clear(ETK_TREE(tree));
+
+       /*Populate the tree*/
+       col1 = etk_tree_nth_col_get(ETK_TREE(tree), 0);
+       col2 = etk_tree_nth_col_get(ETK_TREE(tree), 1);
+       
+       keys = ecore_hash_keys(entropy_core_get_core()->mime_action_hint);
+       while ((key = ecore_list_remove_first(keys))) {
+            etk_tree_append(ETK_TREE(tree), 
+                 col1, key, 
+                 col2,  ((entropy_mime_action*)ecore_hash_get(
+               entropy_core_get_core()->mime_action_hint, 
+               key))->executable,
+                 NULL);
+       }
+
+       etk_tree_thaw(ETK_TREE(tree));
+}
+
+
+void etk_mime_dialog_add_edit_create(char* mime, char* program) {
+       Etk_Widget* table;
+       Etk_Widget* label;
+       Etk_Widget* button;
+
+       mime_dialog_add_edit_window = etk_window_new();
+       etk_window_title_set(ETK_WINDOW(mime_dialog_add_edit_window), "Program 
Associations");
+       etk_window_wmclass_set(ETK_WINDOW(mime_dialog_add_edit_window), 
"mimedialog", "mimedialog");
+       etk_widget_size_request_set(ETK_WIDGET(mime_dialog_add_edit_window), 
250, 80);
+
+       table = etk_table_new(2,3,ETK_FALSE);
+       
+       label = etk_label_new("MIME-Type");
+       etk_table_attach(ETK_TABLE(table), label,0,0,0,0,
+                               0,0,
+                               ETK_FILL_POLICY_HFILL | ETK_FILL_POLICY_VFILL | 
ETK_FILL_POLICY_HEXPAND);
+
+       etk_mime_mime_entry = etk_entry_new();
+       if (mime) {
+               printf("Setting mime to '%s'...\n", mime);
+               etk_entry_text_set(ETK_ENTRY(etk_mime_mime_entry), mime);
+       }
+       etk_table_attach(ETK_TABLE(table), etk_mime_mime_entry,1,1,0,0,
+                               0,0,
+                               ETK_FILL_POLICY_HFILL | ETK_FILL_POLICY_VFILL | 
ETK_FILL_POLICY_HEXPAND);
+
+       label = etk_label_new("Program");
+       etk_table_attach(ETK_TABLE(table), label,0,0,1,1,
+                               0,0,
+                               ETK_FILL_POLICY_HFILL | ETK_FILL_POLICY_VFILL | 
ETK_FILL_POLICY_HEXPAND);
+
+       etk_mime_program_entry = etk_entry_new();
+       if (program) etk_entry_text_set(ETK_ENTRY(etk_mime_program_entry), 
program);    
+       etk_table_attach(ETK_TABLE(table), etk_mime_program_entry,1,1,1,1,
+                               0,0,
+                               ETK_FILL_POLICY_HFILL | ETK_FILL_POLICY_VFILL | 
ETK_FILL_POLICY_HEXPAND);
+
+
+       button = etk_button_new_with_label("OK");
+       etk_table_attach(ETK_TABLE(table), button,0,0,2,2,
+                               0,0,
+                               ETK_FILL_POLICY_HFILL | ETK_FILL_POLICY_VFILL | 
ETK_FILL_POLICY_HEXPAND);
+       etk_signal_connect("pressed", ETK_OBJECT(button), 
ETK_CALLBACK(_entropy_etk_mime_dialog_add_edit_final_cb), 
+                               NULL );
+
+       button = etk_button_new_with_label("Cancel");
+       etk_table_attach(ETK_TABLE(table), button,1,1,2,2,
+                               0,0,
+                               ETK_FILL_POLICY_HFILL | ETK_FILL_POLICY_VFILL | 
ETK_FILL_POLICY_HEXPAND);
+       etk_signal_connect("pressed", ETK_OBJECT(button), 
ETK_CALLBACK(_entropy_etk_mime_dialog_add_edit_cancel_cb), 
+                               NULL );
+
 
-       etk_window_title_set(ETK_WINDOW(window), "Program Associations");
-       etk_window_wmclass_set(ETK_WINDOW(window), "mimedialog", "mimedialog");
+       
+
+       etk_container_add(ETK_CONTAINER(mime_dialog_add_edit_window), table);
+
+
+
+       etk_widget_show_all(mime_dialog_add_edit_window);
+
+}
+
+void _entropy_etk_mime_dialog_edit_cb(Etk_Object* w, void* user_data)
+{
+       Etk_Tree_Row* row = 
etk_tree_selected_row_get(ETK_TREE(_etk_mime_dialog_main_tree));
+       char* mime = NULL;
+       char* program = NULL;
+       Etk_Tree_Col* col1;
+       Etk_Tree_Col* col2;
+
+       col1 = etk_tree_nth_col_get(ETK_TREE(_etk_mime_dialog_main_tree), 0);
+       col2 = etk_tree_nth_col_get(ETK_TREE(_etk_mime_dialog_main_tree), 1);
+
+       etk_tree_row_fields_get(row, col1, &mime, col2, &program,NULL);
+       
+       etk_mime_dialog_add_edit_create(mime,program);
+}
+
+
+void _entropy_etk_mime_dialog_add_cb(Etk_Object* w, void* user_data)
+{
+       etk_mime_dialog_add_edit_create(NULL,NULL);
+}
+
+void etk_mime_dialog_create()
+{
+       Etk_Widget* tree;
+       Etk_Widget* vbox = NULL;
+       Etk_Widget* hbox = NULL;
+       Etk_Tree_Col* tree_col;
+       Etk_Widget* button;
+
+       if (_etk_mime_dialog_displayed == 1)
+               return;
+
+       _etk_mime_dialog_displayed = 1;
+
+       mime_dialog_window = etk_window_new();
+
+       etk_window_title_set(ETK_WINDOW(mime_dialog_window), "Program 
Associations");
+       etk_window_wmclass_set(ETK_WINDOW(mime_dialog_window), "mimedialog", 
"mimedialog");
 
-       etk_widget_size_request_set(ETK_WIDGET(window), 450, 500);
+       etk_widget_size_request_set(ETK_WIDGET(mime_dialog_window), 450, 500);
 
+       vbox = etk_vbox_new(ETK_FALSE,0);
+       etk_container_add(ETK_CONTAINER(mime_dialog_window), vbox);
 
        tree = etk_tree_new();
+       _etk_mime_dialog_main_tree = tree;
+       
        etk_tree_mode_set(ETK_TREE(tree), ETK_TREE_MODE_LIST);
        tree_col = etk_tree_col_new(ETK_TREE(tree), _("File Type"), 
                  etk_tree_model_text_new(ETK_TREE(tree)), 125);
@@ -33,22 +199,28 @@
         etk_tree_col_expand_set(tree_col, ETK_TRUE);
 
        etk_tree_build(ETK_TREE(tree));
+       etk_box_pack_start(ETK_BOX(vbox), tree, ETK_TRUE, ETK_TRUE, 0);
 
-       etk_container_add(ETK_CONTAINER(window), tree);
+       etk_mime_dialog_tree_populate();
 
-       /*Populate the tree*/
-       col1 = etk_tree_nth_col_get(ETK_TREE(tree), 0);
-       col2 = etk_tree_nth_col_get(ETK_TREE(tree), 1);
-       
-       keys = ecore_hash_keys(entropy_core_get_core()->mime_action_hint);
-       while ((key = ecore_list_remove_first(keys))) {
-            etk_tree_append(ETK_TREE(tree), 
-                 col1, key, 
-                 col2,  
((entropy_mime_action*)ecore_hash_get(entropy_core_get_core()->mime_action_hint,
 key))->executable,
-                 NULL);
-       }
+       etk_signal_connect ("delete_event", ETK_OBJECT (mime_dialog_window),
+             ETK_CALLBACK (_etk_window_deleted_cb), NULL);
+
+
+       hbox = etk_hbox_new(ETK_FALSE,0);
+       etk_box_pack_end(ETK_BOX(vbox), hbox, ETK_FALSE, ETK_FALSE, 0);
+
+       button = etk_button_new_with_label("Edit Selected");
+       etk_box_pack_start(ETK_BOX(hbox), button, ETK_FALSE, ETK_FALSE, 0);
+       etk_signal_connect("pressed", ETK_OBJECT(button), 
ETK_CALLBACK(_entropy_etk_mime_dialog_edit_cb), NULL);
+
+       button = etk_button_new_with_label("Remove Selected");
+       etk_box_pack_start(ETK_BOX(hbox), button, ETK_FALSE, ETK_FALSE, 0);
 
+       button = etk_button_new_with_label("Add New..");
+       etk_box_pack_start(ETK_BOX(hbox), button, ETK_FALSE, ETK_FALSE, 0);
+       etk_signal_connect("pressed", ETK_OBJECT(button), 
ETK_CALLBACK(_entropy_etk_mime_dialog_add_cb), NULL);
 
-       etk_widget_show_all(window);
+       etk_widget_show_all(mime_dialog_window);
 }
 




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to