|
From: Enlightenment C. <no...@cv...> - 2006-11-03 04:56:58
|
Enlightenment CVS committal
Author : devilhorns
Project : e17
Module : apps/e
Dir : e17/apps/e/src/bin
Modified Files:
e_int_config_mime_edit.c
Log Message:
Start of some file trapping. More todo.
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_mime_edit.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- e_int_config_mime_edit.c 3 Nov 2006 04:11:20 -0000 1.1
+++ e_int_config_mime_edit.c 3 Nov 2006 04:56:54 -0000 1.2
@@ -11,6 +11,7 @@
static void _cb_fsel_sel (void *data, Evas_Object *obj);
static void _cb_fsel_ok (void *data, E_Dialog *dia);
static void _cb_fsel_cancel (void *data, E_Dialog *dia);
+static void _cb_file_change (void *data);
typedef enum _Icon_Type Icon_Type;
enum _Icon_Type
@@ -25,9 +26,11 @@
char *mime;
char *icon;
int type;
+
+ char *file;
struct
{
- Evas_Object *icon;
+ Evas_Object *icon, *fsel_wid;
E_Dialog *fsel;
} gui;
};
@@ -90,7 +93,6 @@
cfdata->type = THUMB;
else
{
- printf("Icon: %s\n", cfdata->icon);
p = strrchr(cfdata->icon, '.');
if ((p) && (!strcmp(p, ".edj")))
cfdata->type = EDJ;
@@ -102,6 +104,8 @@
static void
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
+ if (cfdata->gui.fsel) e_object_del(E_OBJECT(cfdata->gui.fsel));
+ IFFREE(cfdata->file);
IFFREE(cfdata->mime);
IFFREE(cfdata->icon);
E_FREE(cfdata);
@@ -190,7 +194,8 @@
else
o = e_widget_fsel_add(dia->win->evas, "~/", "/", NULL, NULL,
_cb_fsel_sel, cfdata, NULL, cfdata, 1);
-
+
+ cfdata->gui.fsel_wid = o;
evas_object_show(o);
e_widget_min_size_get(o, &w, &h);
e_dialog_content_set(dia, o, w, h);
@@ -272,17 +277,22 @@
cfdata = data;
if (!cfdata) return;
-
}
static void
_cb_fsel_ok(void *data, E_Dialog *dia)
{
E_Config_Dialog_Data *cfdata;
+ const char *file;
cfdata = data;
if (!cfdata) return;
+
+ file = e_widget_fsel_selection_path_get(cfdata->gui.fsel_wid);
+ IFDUP(file, cfdata->file);
_cb_fsel_cancel(data, dia);
+ if (cfdata->file)
+ _cb_file_change(cfdata);
}
static void
@@ -295,3 +305,26 @@
cfdata->gui.fsel = NULL;
}
+static void
+_cb_file_change(void *data)
+{
+ E_Config_Dialog_Data *cfdata;
+
+ cfdata = data;
+ if (!cfdata) return;
+ if (!cfdata->file) return;
+ switch (cfdata->type)
+ {
+ case EDJ:
+ if (!strstr(cfdata->file, ".edj")) return;
+// if (!edje_file_group_exists(cfdata->file, "")) return;
+ break;
+ case IMAGE:
+ break;
+ default:
+ return;
+ break;
+ }
+
+ printf("File: %s\n", cfdata->file);
+}
|