Cleanup.
authorsebastid <sebastid>
Mon, 10 Oct 2005 16:33:13 +0000 (16:33 +0000)
committersebastid <sebastid@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 10 Oct 2005 16:33:13 +0000 (16:33 +0000)
SVN revision: 17395

src/bin/e_fileman.c
src/bin/e_fileman.h

index bd89191..c03a440 100644 (file)
@@ -1,3 +1,6 @@
+/*
+ * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
+ */
 #include "e.h"
 
 /****
  * - thumb fork / cache
  * - proper mime system
  * - create x, y, w, h in canvas struct and make them auto update
- * - get_current_dir_name() will give a memleak
  ****/
 
-static void _e_fileman_hscrollbar_drag_cb (Evas_Object *object, double value, void *data);
-static void _e_fileman_vscrollbar_drag_cb (Evas_Object *object, double value, void *data);
-static void _e_fileman_cb_resize (E_Win *win);    
-static void _e_fileman_cb_delete(E_Win *win);    
-static void _e_fileman_free (E_Fileman *fileman);
-  
-static void
-_e_fileman_cb_resize (E_Win *win)
-{
-   E_Fileman *fileman;
-      
-   fileman = win->data;   
-   evas_object_resize (fileman->main, win->w, win->h);
-}
-
-static void
-_e_fileman_cb_delete(E_Win *win)
-{
-   E_Fileman *fileman;
-   
-   fileman = win->data;
-   e_object_del(E_OBJECT(fileman));
-   e_object_del(E_OBJECT(win));
-}
-
-static void 
-_e_fileman_hscrollbar_drag_cb (Evas_Object *object, double value, void *data)
-{
-   E_Fileman *fileman;
-   
-   fileman = data;   
-}
-
-static void 
-_e_fileman_vscrollbar_drag_cb (Evas_Object *object, double value, void *data)
-{
-   E_Fileman *fileman;
-   
-   fileman = data;   
-   e_fm_scroll_vertical (fileman->smart, value);   
-}
+static void _e_fileman_hscrollbar_drag_cb(Evas_Object *object, double value, void *data);
+static void _e_fileman_vscrollbar_drag_cb(Evas_Object *object, double value, void *data);
+static void _e_fileman_cb_resize(E_Win *win);
+static void _e_fileman_cb_delete(E_Win *win);
+static void _e_fileman_free(E_Fileman *fileman);
 
 E_Fileman *
-e_fileman_new (E_Container *con)
+e_fileman_new(E_Container *con)
 {
    E_Fileman *fileman;
-   E_Manager *man;   
-   char *dir;
-   
+   E_Manager *man;
+   char dir[PATH_MAX];
+
    if (!con)
-   {
-      man = e_manager_current_get();
-      if (!man) return NULL;
-      con = e_container_current_get(man);
-      if (!con) con = e_container_number_get(man, 0);
-      if (!con) return NULL;
-   }   
-   
-   fileman = E_OBJECT_ALLOC (E_Fileman, E_FILEMAN_TYPE, _e_fileman_free);
+     {
+       man = e_manager_current_get();
+       if (!man) return NULL;
+       con = e_container_current_get(man);
+       if (!con) con = e_container_number_get(man, 0);
+       if (!con) return NULL;
+     }
+   if (!getcwd(dir, sizeof(dir)))
+     return NULL;
+
+   fileman = E_OBJECT_ALLOC(E_Fileman, E_FILEMAN_TYPE, _e_fileman_free);
    if (!fileman) return NULL;
 
    fileman->con = con;
-   fileman->win = e_win_new (con);
-   
+   e_object_ref(E_OBJECT(fileman->con));
+   fileman->win = e_win_new(con);
+
    if (!fileman->win)
-   {
-      free (fileman);
-      return NULL;
-   }
+     {
+       free(fileman);
+       return NULL;
+     }
 
    fileman->xpos = 0;
-   fileman->ypos = 0;      
-   
+   fileman->ypos = 0;
+
    e_win_delete_callback_set(fileman->win, _e_fileman_cb_delete);
    fileman->win->data = fileman;
-   
+
    fileman->evas = e_win_evas_get(fileman->win);
-      
-   dir = get_current_dir_name();
+
    e_win_name_class_set(fileman->win, "Efm ", "_fileman");
-   e_win_title_set (fileman->win, dir);
-   
-   fileman->main = edje_object_add (fileman->evas);
+   e_win_title_set(fileman->win, dir);
+
+   fileman->main = edje_object_add(fileman->evas);
    e_theme_edje_object_set(fileman->main, "base/theme/fileman/main",
-                          "fileman/main");      
-   
-   fileman->hscrollbar = e_scrollbar_add (fileman->evas);
-   e_scrollbar_callback_drag_add (fileman->hscrollbar, _e_fileman_hscrollbar_drag_cb, fileman);
-   edje_object_part_swallow (fileman->main, "hscrollbar", fileman->hscrollbar);
-   
-   fileman->vscrollbar = e_scrollbar_add (fileman->evas);
-   e_scrollbar_direction_set (fileman->vscrollbar, E_SCROLLBAR_VERTICAL);
-   e_scrollbar_callback_drag_add (fileman->vscrollbar, _e_fileman_vscrollbar_drag_cb, fileman);
-   edje_object_part_swallow (fileman->main, "vscrollbar", fileman->vscrollbar);
-   
-   e_win_resize_callback_set (fileman->win, _e_fileman_cb_resize);
-   e_win_resize (fileman->win, 640, 480);
-   
+                          "fileman/main");
+
+   fileman->hscrollbar = e_scrollbar_add(fileman->evas);
+   e_scrollbar_callback_drag_add(fileman->hscrollbar, _e_fileman_hscrollbar_drag_cb, fileman);
+   edje_object_part_swallow(fileman->main, "hscrollbar", fileman->hscrollbar);
+
+   fileman->vscrollbar = e_scrollbar_add(fileman->evas);
+   e_scrollbar_direction_set(fileman->vscrollbar, E_SCROLLBAR_VERTICAL);
+   e_scrollbar_callback_drag_add(fileman->vscrollbar, _e_fileman_vscrollbar_drag_cb, fileman);
+   edje_object_part_swallow(fileman->main, "vscrollbar", fileman->vscrollbar);
+
+   e_win_resize_callback_set(fileman->win, _e_fileman_cb_resize);
+   e_win_resize(fileman->win, 640, 480);
+
    fileman->smart = e_fm_add(fileman->evas);
-   e_fm_e_win_set (fileman->smart, fileman->win); 
-   e_fm_dir_set (fileman->smart, dir);
-   free(dir);
-   edje_object_part_swallow (fileman->main, "icon_area", fileman->smart);   
-   
+   e_fm_e_win_set(fileman->smart, fileman->win);
+   e_fm_dir_set(fileman->smart, dir);
+   edje_object_part_swallow(fileman->main, "icon_area", fileman->smart);
+
    ecore_x_dnd_aware_set(fileman->win->evas_win, 1);
-      
-   return fileman;   
+
+   return fileman;
+}
+
+void
+e_fileman_show(E_Fileman *fileman)
+{
+   if (!fileman) return;
+
+   e_win_show(fileman->win);
+   evas_object_show(fileman->main);
+}
+
+void
+e_fileman_hide(E_Fileman *fileman)
+{
+   if (!fileman) return;
+
+   e_win_hide(fileman->win);
+   evas_object_hide(fileman->main);
 }
 
 static void
 _e_fileman_free(E_Fileman *fileman)
-{   
+{
+   e_object_unref(E_OBJECT(fileman->con));
    evas_object_del(fileman->hscrollbar);
    evas_object_del(fileman->vscrollbar);
    evas_object_del(fileman->smart);
-   evas_object_del(fileman->main);   
-   e_object_del(E_OBJECT(fileman->win));           
+   evas_object_del(fileman->main);
+   e_object_del(E_OBJECT(fileman->win));
    free(fileman);
 }
+static void
+_e_fileman_cb_resize(E_Win *win)
+{
+   E_Fileman *fileman;
 
+   fileman = win->data;
+   evas_object_resize(fileman->main, win->w, win->h);
+}
 
-void
-e_fileman_show (E_Fileman *fileman)
+static void
+_e_fileman_cb_delete(E_Win *win)
 {
-   if (fileman) {
-      e_win_show(fileman->win);      
-      evas_object_show(fileman->main);      
-   }
+   E_Fileman *fileman;
+
+   fileman = win->data;
+   e_object_del(E_OBJECT(fileman));
+   e_object_del(E_OBJECT(win));
 }
-   
+
+static void
+_e_fileman_hscrollbar_drag_cb(Evas_Object *object, double value, void *data)
+{
+   E_Fileman *fileman;
+
+   fileman = data;
+}
+
+static void
+_e_fileman_vscrollbar_drag_cb(Evas_Object *object, double value, void *data)
+{
+   E_Fileman *fileman;
+
+   fileman = data;
+   e_fm_scroll_vertical(fileman->smart, value);
+}
+
index 6f1da67..e71298e 100644 (file)
@@ -1,3 +1,6 @@
+/*
+ * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
+ */
 #ifdef E_TYPEDEFS
 
 typedef struct _E_Fileman E_Fileman;
@@ -11,7 +14,7 @@ typedef struct _E_Fileman E_Fileman;
 struct _E_Fileman
 {
    E_Object e_obj_inherit;
-   
+
    E_Container *con;
    E_Win       *win;
 
@@ -21,13 +24,14 @@ struct _E_Fileman
    Evas_Object *vscrollbar;   
 
    Evas_Object *smart;   
-   
+
    double xpos;
    double ypos;
 };
 
-EAPI E_Fileman *e_fileman_new ();
-EAPI void e_fileman_show (E_Fileman *fileman);
+EAPI E_Fileman *e_fileman_new(E_Container *con);
+EAPI void       e_fileman_show(E_Fileman *fileman);
+EAPI void       e_fileman_hide(E_Fileman *fileman);
 
 #endif
 #endif