Enlightenment CVS committal

Author  : davemds
Project : e17
Module  : libs/etk

Dir     : e17/libs/etk/src/lib


Modified Files:
        etk_filechooser_widget.c 


Log Message:
Add previous dir button to Etk_Filechooser_Widget

===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_filechooser_widget.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -3 -r1.24 -r1.25
--- etk_filechooser_widget.c    13 Aug 2007 00:20:16 -0000      1.24
+++ etk_filechooser_widget.c    13 Aug 2007 01:55:21 -0000      1.25
@@ -18,6 +18,8 @@
 #include "etk_box.h"
 #include "etk_entry.h"
 #include "etk_label.h"
+#include "etk_stock.h"
+#include "etk_button.h"
 #include "config.h"
 
 /* OS-specific to list the mount points */
@@ -67,6 +69,7 @@
 static void _etk_filechooser_widget_fav_activated_cb(Etk_Object *object, 
Etk_Tree_Row *row, void *data);
 static void _etk_filechooser_widget_file_activated_cb(Etk_Object *object, 
Etk_Tree_Row *row, void *data);
 static void _etk_filechooser_widget_file_selected_cb(Etk_Object *object, 
Etk_Tree_Row *row, void *data);
+static void _etk_filechooser_widget_updir_clicked_cb(Etk_Button *button, void 
*data);
 static void _etk_filechooser_widget_places_tree_fill(Etk_Filechooser_Widget 
*fcw);
 static void _etk_filechooser_widget_favs_tree_fill(Etk_Filechooser_Widget 
*fcw);
 
@@ -164,7 +167,7 @@
    
    if (!filechooser_widget->is_save)
       etk_entry_clear(ETK_ENTRY(filechooser_widget->name_entry));
-   
+
    /* TODO: Do not walk through the list twice!! */
    ecore_list_first_goto(files);
    while ((filename = ecore_list_next(files)))
@@ -378,6 +381,7 @@
    Etk_Widget *vpaned;
    Etk_Widget *hbox;
    Etk_Widget *label;
+   Etk_Widget *button;
    
    if (!fcw)
       return;
@@ -402,6 +406,10 @@
    etk_widget_disabled_set(fcw->name_entry, ETK_TRUE);
    
etk_box_append(ETK_BOX(hbox),fcw->name_entry,ETK_BOX_START,ETK_BOX_EXPAND_FILL,10);
    
+   button = etk_button_new_from_stock(ETK_STOCK_GO_UP);
+   etk_box_append(ETK_BOX(hbox),button,ETK_BOX_START,ETK_BOX_NONE,10);
+   etk_signal_connect("clicked", ETK_OBJECT(button), 
ETK_CALLBACK(_etk_filechooser_widget_updir_clicked_cb), fcw);
+   
    hpaned = etk_hpaned_new();
    
etk_box_append(ETK_BOX(fcw->vbox),hpaned,ETK_BOX_START,ETK_BOX_EXPAND_FILL,10);
    etk_widget_show(hpaned);
@@ -549,15 +557,7 @@
    if (!(filechooser_widget = ETK_FILECHOOSER_WIDGET(data)) || !(selected_dir 
= etk_tree_row_data_get(row)))
      return;
    
-   if (strcmp(selected_dir, "..") == 0)
-   {
-      char back[PATH_MAX];
-      
-      snprintf(back, PATH_MAX, "%s/..", filechooser_widget->current_folder);
-      etk_filechooser_widget_current_folder_set(filechooser_widget, back);
-   }
-   else
-      etk_filechooser_widget_current_folder_set(filechooser_widget, 
selected_dir);
+   etk_filechooser_widget_current_folder_set(filechooser_widget, selected_dir);
    etk_tree_unselect_all(ETK_TREE(filechooser_widget->fav_tree));
 }
 
@@ -608,6 +608,19 @@
    
    if (ecore_file_exists(file_path) && !ecore_file_is_dir(file_path))
       
etk_entry_text_set(ETK_ENTRY(filechooser_widget->name_entry),selected_file);
+}
+/* Called when the '..' button is clicked */
+static void _etk_filechooser_widget_updir_clicked_cb(Etk_Button *button, void 
*data)
+{
+   Etk_Filechooser_Widget *filechooser_widget;
+   char back[PATH_MAX];
+
+   if (!(filechooser_widget = ETK_FILECHOOSER_WIDGET(data)))
+     return;
+   
+   snprintf(back, PATH_MAX, "%s/..", filechooser_widget->current_folder);
+
+   etk_filechooser_widget_current_folder_set(filechooser_widget, 
ecore_file_realpath(back));
 }
 /**************************
  *



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

Reply via email to