forked from enlightenment/enlightenment
Re-enable create/edit icon from border menu.
SVN revision: 29487
This commit is contained in:
parent
b851203d21
commit
c228e16d44
|
@ -22,14 +22,12 @@ struct _E_Config_Dialog_Data
|
||||||
int terminal;
|
int terminal;
|
||||||
int show_in_menus;
|
int show_in_menus;
|
||||||
|
|
||||||
int new_desktop;
|
|
||||||
int saved; /* whether desktop has been saved or not */
|
|
||||||
|
|
||||||
E_Desktop_Edit *editor;
|
E_Desktop_Edit *editor;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* local subsystem functions */
|
/* local subsystem functions */
|
||||||
|
|
||||||
|
static int _e_desktop_edit_view_create(E_Desktop_Edit *editor, E_Container *con);
|
||||||
static void _e_desktop_edit_free(E_Desktop_Edit *editor);
|
static void _e_desktop_edit_free(E_Desktop_Edit *editor);
|
||||||
static void *_e_desktop_edit_create_data(E_Config_Dialog *cfd);
|
static void *_e_desktop_edit_create_data(E_Config_Dialog *cfd);
|
||||||
static void _e_desktop_edit_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *data);
|
static void _e_desktop_edit_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *data);
|
||||||
|
@ -51,26 +49,128 @@ static void _e_desktop_editor_icon_update(E_Config_Dialog_Data *cfdata
|
||||||
/* externally accessible functions */
|
/* externally accessible functions */
|
||||||
|
|
||||||
EAPI E_Desktop_Edit *
|
EAPI E_Desktop_Edit *
|
||||||
e_desktop_edit_show(E_Container *con, Efreet_Desktop *desktop)
|
e_desktop_border_edit(E_Container *con, E_Border *bd)
|
||||||
|
{
|
||||||
|
E_Desktop_Edit *editor;
|
||||||
|
const char *bname, *bclass;
|
||||||
|
char path[PATH_MAX];
|
||||||
|
|
||||||
|
if (!con) return NULL;
|
||||||
|
editor = E_OBJECT_ALLOC(E_Desktop_Edit, E_DESKTOP_EDIT_TYPE, _e_desktop_edit_free);
|
||||||
|
if (!editor) return NULL;
|
||||||
|
if (bd->desktop)
|
||||||
|
editor->desktop = bd->desktop;
|
||||||
|
|
||||||
|
bname = bd->client.icccm.name;
|
||||||
|
if ((bname) && (bname[0] == 0)) bname = NULL;
|
||||||
|
bclass = bd->client.icccm.class;
|
||||||
|
if ((bclass) && (bclass[0] == 0)) bclass = NULL;
|
||||||
|
|
||||||
|
/* the border does not yet have a desktop entry. add one and pre-populate
|
||||||
|
it with values from the border */
|
||||||
|
if (!editor->desktop)
|
||||||
|
{
|
||||||
|
const char *desktop_dir, *icon_dir;
|
||||||
|
|
||||||
|
desktop_dir = e_user_desktop_dir_get();
|
||||||
|
|
||||||
|
if (!desktop_dir || !e_util_dir_check(desktop_dir)) return;
|
||||||
|
|
||||||
|
icon_dir = e_user_icon_dir_get();
|
||||||
|
if (!icon_dir || !e_util_dir_check(icon_dir)) return;
|
||||||
|
|
||||||
|
if (bname)
|
||||||
|
{
|
||||||
|
snprintf(path, sizeof(path), "%s/%s.desktop", desktop_dir, bname);
|
||||||
|
editor->desktop = efreet_desktop_empty_new(path);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
editor->desktop = efreet_desktop_empty_new(NULL);
|
||||||
|
|
||||||
|
if (!editor->desktop)
|
||||||
|
{
|
||||||
|
//XXX out of memory?
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (bclass) editor->desktop->name = strdup(bclass);
|
||||||
|
if (bclass) editor->desktop->startup_wm_class = strdup(bclass);
|
||||||
|
if (bd->client.icccm.command.argc > 0)
|
||||||
|
// FIXME this should concat the entire argv array together
|
||||||
|
editor->desktop->exec = strdup(bd->client.icccm.command.argv[0]);
|
||||||
|
else if (bname)
|
||||||
|
editor->desktop->exec = strdup(bname);
|
||||||
|
|
||||||
|
if (bd->client.netwm.startup_id > 0)
|
||||||
|
editor->desktop->startup_notify = 1;
|
||||||
|
if (bd->client.netwm.icons)
|
||||||
|
{
|
||||||
|
/* FIXME
|
||||||
|
* - Find the icon with the best size
|
||||||
|
* - Should use mkstemp
|
||||||
|
*/
|
||||||
|
const char *tmp;
|
||||||
|
|
||||||
|
snprintf(path, sizeof(path), "%s/%s-%.6f.png", icon_dir, bname, ecore_time_get());
|
||||||
|
if (e_util_icon_save(&(bd->client.netwm.icons[0]), path))
|
||||||
|
{
|
||||||
|
editor->tmp_image_path = strdup(path);
|
||||||
|
editor->desktop->icon = strdup(path);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
fprintf(stderr, "Could not save file from ARGB: %s\n", path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
if ((!bname) && (!bclass))
|
||||||
|
{
|
||||||
|
e_util_dialog_show(_("Incomplete Window Properties"),
|
||||||
|
_("The window you are creating an icon for<br>"
|
||||||
|
"does not contain window name and class<br>"
|
||||||
|
"properties, so the needed properties for<br>"
|
||||||
|
"the icon so that it will be used for this<br>"
|
||||||
|
"window cannot be guessed. You will need to<br>"
|
||||||
|
"use the window title instead. This will only<br>"
|
||||||
|
"work if the window title is the same at<br>"
|
||||||
|
"the time the window starts up, and does not<br>"
|
||||||
|
"change."));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if (!_e_desktop_edit_view_create(editor, con))
|
||||||
|
{
|
||||||
|
e_object_del(E_OBJECT(editor));
|
||||||
|
editor = NULL;
|
||||||
|
}
|
||||||
|
return editor;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI E_Desktop_Edit *
|
||||||
|
e_desktop_edit(E_Container *con, Efreet_Desktop *desktop)
|
||||||
{
|
{
|
||||||
E_Config_Dialog_View *v;
|
|
||||||
E_Desktop_Edit *editor;
|
E_Desktop_Edit *editor;
|
||||||
|
|
||||||
if (!con) return NULL;
|
if (!con) return NULL;
|
||||||
|
|
||||||
editor = E_OBJECT_ALLOC(E_Desktop_Edit, E_DESKTOP_EDIT_TYPE, _e_desktop_edit_free);
|
editor = E_OBJECT_ALLOC(E_Desktop_Edit, E_DESKTOP_EDIT_TYPE, _e_desktop_edit_free);
|
||||||
if (!editor) return NULL;
|
if (!editor) return NULL;
|
||||||
v = E_NEW(E_Config_Dialog_View, 1);
|
|
||||||
if (!v)
|
|
||||||
{
|
|
||||||
e_object_del(E_OBJECT(editor));
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
editor->img = NULL;
|
|
||||||
if (desktop)
|
if (desktop)
|
||||||
editor->desktop = desktop;
|
editor->desktop = desktop;
|
||||||
|
|
||||||
|
if (!_e_desktop_edit_view_create(editor, con))
|
||||||
|
{
|
||||||
|
e_object_del(E_OBJECT(editor));
|
||||||
|
editor = NULL;
|
||||||
|
}
|
||||||
|
return editor;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_e_desktop_edit_view_create(E_Desktop_Edit *editor, E_Container *con)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_View *v;
|
||||||
|
v = E_NEW(E_Config_Dialog_View, 1);
|
||||||
|
if (!v)
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* view methods */
|
/* view methods */
|
||||||
v->create_cfdata = _e_desktop_edit_create_data;
|
v->create_cfdata = _e_desktop_edit_create_data;
|
||||||
v->free_cfdata = _e_desktop_edit_free_data;
|
v->free_cfdata = _e_desktop_edit_free_data;
|
||||||
|
@ -84,7 +184,7 @@ e_desktop_edit_show(E_Container *con, Efreet_Desktop *desktop)
|
||||||
"E", "_desktop_editor_dialog",
|
"E", "_desktop_editor_dialog",
|
||||||
"enlightenment/desktop_editor", 0,
|
"enlightenment/desktop_editor", 0,
|
||||||
v, editor);
|
v, editor);
|
||||||
return editor;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* local subsystem functions */
|
/* local subsystem functions */
|
||||||
|
@ -95,6 +195,8 @@ _e_desktop_edit_free(E_Desktop_Edit *editor)
|
||||||
E_OBJECT_CHECK(editor);
|
E_OBJECT_CHECK(editor);
|
||||||
E_OBJECT_TYPE_CHECK(editor, E_EAP_EDIT_TYPE);
|
E_OBJECT_TYPE_CHECK(editor, E_EAP_EDIT_TYPE);
|
||||||
|
|
||||||
|
IFFREE(editor->tmp_image_path);
|
||||||
|
|
||||||
E_FREE(editor);
|
E_FREE(editor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,8 +210,6 @@ _e_desktop_edit_create_data(E_Config_Dialog *cfd)
|
||||||
Efreet_Desktop *desktop = NULL;
|
Efreet_Desktop *desktop = NULL;
|
||||||
char path[PATH_MAX];
|
char path[PATH_MAX];
|
||||||
|
|
||||||
printf("create data\n");
|
|
||||||
|
|
||||||
cfdata = E_NEW(E_Config_Dialog_Data, 1);
|
cfdata = E_NEW(E_Config_Dialog_Data, 1);
|
||||||
if (!cfdata) return NULL;
|
if (!cfdata) return NULL;
|
||||||
cfdata->editor = cfd->data;
|
cfdata->editor = cfd->data;
|
||||||
|
@ -153,7 +253,7 @@ _e_desktop_edit_create_data(E_Config_Dialog *cfd)
|
||||||
if (!cfdata->desktop)
|
if (!cfdata->desktop)
|
||||||
{
|
{
|
||||||
cfdata->desktop = efreet_desktop_empty_new(path);
|
cfdata->desktop = efreet_desktop_empty_new(path);
|
||||||
cfdata->new_desktop = 1;
|
cfdata->editor->new_desktop = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!desktop) desktop = cfdata->desktop;
|
if (!desktop) desktop = cfdata->desktop;
|
||||||
|
@ -184,8 +284,19 @@ _e_desktop_edit_create_data(E_Config_Dialog *cfd)
|
||||||
static void
|
static void
|
||||||
_e_desktop_edit_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
_e_desktop_edit_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||||
{
|
{
|
||||||
if (cfdata->desktop && cfdata->new_desktop && !cfdata->saved)
|
if (cfdata->desktop && cfdata->editor->new_desktop && !cfdata->editor->saved)
|
||||||
efreet_desktop_free(cfdata->desktop);
|
efreet_desktop_free(cfdata->desktop);
|
||||||
|
|
||||||
|
if (cfdata->editor->tmp_image_path)
|
||||||
|
{
|
||||||
|
if (!cfdata->desktop || !cfdata->editor->saved ||
|
||||||
|
!cfdata->desktop->icon ||
|
||||||
|
strcmp(cfdata->editor->tmp_image_path, cfdata->desktop->icon))
|
||||||
|
{
|
||||||
|
ecore_file_unlink(cfdata->editor->tmp_image_path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
IFFREE(cfdata->name);
|
IFFREE(cfdata->name);
|
||||||
IFFREE(cfdata->generic_name);
|
IFFREE(cfdata->generic_name);
|
||||||
|
@ -236,7 +347,7 @@ _e_desktop_edit_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfd
|
||||||
cfdata->desktop->no_display = !cfdata->show_in_menus;
|
cfdata->desktop->no_display = !cfdata->show_in_menus;
|
||||||
|
|
||||||
if (cfdata->desktop->orig_path && cfdata->desktop->orig_path[0])
|
if (cfdata->desktop->orig_path && cfdata->desktop->orig_path[0])
|
||||||
cfdata->saved = efreet_desktop_save(cfdata->desktop);
|
cfdata->editor->saved = efreet_desktop_save(cfdata->desktop);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* find a suitable name to save the desktop as */
|
/* find a suitable name to save the desktop as */
|
||||||
|
@ -272,7 +383,7 @@ _e_desktop_edit_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfd
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
cfdata->saved = efreet_desktop_save_as(cfdata->desktop, path);
|
cfdata->editor->saved = efreet_desktop_save_as(cfdata->desktop, path);
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -477,7 +588,6 @@ _e_desktop_edit_cb_icon_select_ok(void *data, E_Dialog *dia)
|
||||||
cfdata = data;
|
cfdata = data;
|
||||||
file = e_widget_fsel_selection_path_get(cfdata->editor->fsel);
|
file = e_widget_fsel_selection_path_get(cfdata->editor->fsel);
|
||||||
|
|
||||||
printf("selected file: %s\n", file);
|
|
||||||
IFFREE(cfdata->icon);
|
IFFREE(cfdata->icon);
|
||||||
IFDUP(file, cfdata->icon);
|
IFDUP(file, cfdata->icon);
|
||||||
|
|
||||||
|
|
|
@ -23,12 +23,17 @@ struct _E_Desktop_Edit
|
||||||
Evas_Object *img_widget;
|
Evas_Object *img_widget;
|
||||||
Evas_Object *fsel;
|
Evas_Object *fsel;
|
||||||
E_Dialog *fsel_dia;
|
E_Dialog *fsel_dia;
|
||||||
int img_set;
|
//int img_set;
|
||||||
|
|
||||||
|
char *tmp_image_path;
|
||||||
|
int new_desktop;
|
||||||
|
int saved; /* whether desktop has been saved or not */
|
||||||
|
|
||||||
E_Config_Dialog *cfd;
|
E_Config_Dialog *cfd;
|
||||||
};
|
};
|
||||||
|
|
||||||
EAPI E_Desktop_Edit *e_desktop_edit_show(E_Container *con, Efreet_Desktop *desktop);
|
EAPI E_Desktop_Edit *e_desktop_border_edit(E_Container *con, E_Border *bd);
|
||||||
|
EAPI E_Desktop_Edit *e_desktop_edit(E_Container *con, Efreet_Desktop *desktop);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -252,18 +252,18 @@ e_int_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key, Ecore_
|
||||||
"e/widgets/border/default/skip_winlist");
|
"e/widgets/border/default/skip_winlist");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 1
|
||||||
if (!bd->internal)
|
if (!bd->internal)
|
||||||
{
|
{
|
||||||
mi = e_menu_item_new(m);
|
mi = e_menu_item_new(m);
|
||||||
e_menu_item_separator_set(mi, 1);
|
e_menu_item_separator_set(mi, 1);
|
||||||
|
|
||||||
if (bd->app)
|
if (bd->desktop)
|
||||||
{
|
{
|
||||||
mi = e_menu_item_new(m);
|
mi = e_menu_item_new(m);
|
||||||
e_menu_item_label_set(mi, _("Edit Icon"));
|
e_menu_item_label_set(mi, _("Edit Icon"));
|
||||||
e_menu_item_callback_set(mi, _e_border_menu_cb_icon_edit, bd);
|
e_menu_item_callback_set(mi, _e_border_menu_cb_icon_edit, bd);
|
||||||
e_app_icon_add_to_menu_item(bd->app, mi);
|
e_util_desktop_menu_item_icon_add(bd->desktop, "16x16", mi);
|
||||||
}
|
}
|
||||||
else if (bd->client.icccm.class) /* icons with no class useless to borders */
|
else if (bd->client.icccm.class) /* icons with no class useless to borders */
|
||||||
{
|
{
|
||||||
|
@ -531,94 +531,14 @@ _e_border_menu_cb_shade(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void
|
static void
|
||||||
_e_border_menu_cb_icon_edit(void *data, E_Menu *m, E_Menu_Item *mi)
|
_e_border_menu_cb_icon_edit(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
{
|
{
|
||||||
E_App *a;
|
|
||||||
E_Border *bd;
|
E_Border *bd;
|
||||||
char *bname = NULL, *bclass = NULL;
|
|
||||||
char path[4096];
|
|
||||||
|
|
||||||
bd = data;
|
bd = data;
|
||||||
a = bd->app;
|
e_desktop_border_edit(m->zone->container, bd);
|
||||||
|
|
||||||
bname = bd->client.icccm.name;
|
|
||||||
if ((bname) && (bname[0] == 0)) bname = NULL;
|
|
||||||
bclass = bd->client.icccm.class;
|
|
||||||
if ((bclass) && (bclass[0] == 0)) bclass = NULL;
|
|
||||||
|
|
||||||
if (!a)
|
|
||||||
{
|
|
||||||
if (bname)
|
|
||||||
{
|
|
||||||
const char *homedir;
|
|
||||||
|
|
||||||
homedir = e_user_homedir_get();
|
|
||||||
snprintf(path, sizeof(path), "%s/.e/e/applications/all/%s.desktop",
|
|
||||||
homedir, bname);
|
|
||||||
a = e_app_empty_new(path);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
a = e_app_empty_new(NULL);
|
|
||||||
|
|
||||||
if (a)
|
|
||||||
{
|
|
||||||
if (bname) a->win_name = evas_stringshare_add(bname);
|
|
||||||
if (bclass) a->win_class = evas_stringshare_add(bclass);
|
|
||||||
if (bd->client.icccm.window_role)
|
|
||||||
a->win_role = evas_stringshare_add(bd->client.icccm.window_role);
|
|
||||||
if (bclass) a->icon_class = evas_stringshare_add(bclass);
|
|
||||||
if (bclass) a->name = evas_stringshare_add(bclass);
|
|
||||||
if (bname) a->exe = evas_stringshare_add(bname);
|
|
||||||
if (bd->client.netwm.startup_id > 0)
|
|
||||||
a->startup_notify = 1;
|
|
||||||
if (bd->client.netwm.icons)
|
|
||||||
{
|
|
||||||
/* FIXME
|
|
||||||
* - Find the icon with the best size
|
|
||||||
* - Should use mkstemp
|
|
||||||
*/
|
|
||||||
const char *tmp;
|
|
||||||
|
|
||||||
tmp = getenv("TMPDIR");
|
|
||||||
if (!tmp) tmp = getenv("TMP");
|
|
||||||
if (!tmp) tmp = "/tmp";
|
|
||||||
snprintf(path, sizeof(path), "%s/%s-%.6f.png", tmp, bname, ecore_time_get());
|
|
||||||
if (e_util_icon_save(&(bd->client.netwm.icons[0]), path))
|
|
||||||
{
|
|
||||||
a->image = evas_stringshare_add(path);
|
|
||||||
a->width = bd->client.netwm.icons[0].width;
|
|
||||||
a->height = bd->client.netwm.icons[0].height;
|
|
||||||
a->tmpfile = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
fprintf(stderr, "Could not save file from ARGB: %s\n", path);
|
|
||||||
}
|
|
||||||
bd->app = a;
|
|
||||||
e_object_ref(E_OBJECT(bd->app));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!a) return;
|
|
||||||
if (a->orig)
|
|
||||||
e_eap_edit_show(m->zone->container, a->orig);
|
|
||||||
else
|
|
||||||
e_eap_edit_show(m->zone->container, a);
|
|
||||||
if ((!bname) && (!bclass))
|
|
||||||
{
|
|
||||||
e_util_dialog_show(_("Incomplete Window Properties"),
|
|
||||||
_("The window you are creating an icon for<br>"
|
|
||||||
"does not contain window name and class<br>"
|
|
||||||
"properties, so the needed properties for<br>"
|
|
||||||
"the icon so that it will be used for this<br>"
|
|
||||||
"window cannot be guessed. You will need to<br>"
|
|
||||||
"use the window title instead. This will only<br>"
|
|
||||||
"work if the window title is the same at<br>"
|
|
||||||
"the time the window starts up, and does not<br>"
|
|
||||||
"change."));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_border_menu_cb_prop(void *data, E_Menu *m, E_Menu_Item *mi)
|
_e_border_menu_cb_prop(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
*/
|
*/
|
||||||
#include "e.h"
|
#include "e.h"
|
||||||
|
|
||||||
|
static int _e_user_dir_check(const char *dir);
|
||||||
|
|
||||||
/* externally accessible functions */
|
/* externally accessible functions */
|
||||||
EAPI const char *
|
EAPI const char *
|
||||||
e_user_homedir_get(void)
|
e_user_homedir_get(void)
|
||||||
|
@ -20,3 +22,35 @@ e_user_homedir_get(void)
|
||||||
}
|
}
|
||||||
return homedir;
|
return homedir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the directory where user .desktop files should be stored.
|
||||||
|
* If the directory does not exist, it will be created. If it cannot be
|
||||||
|
* created, a dialog will be displayed an NULL will be returned
|
||||||
|
*/
|
||||||
|
EAPI const char *
|
||||||
|
e_user_desktop_dir_get(void)
|
||||||
|
{
|
||||||
|
static char dir[PATH_MAX] = "";
|
||||||
|
if (!dir[0])
|
||||||
|
snprintf(dir, sizeof(dir), "%s/applications", efreet_data_home_get());
|
||||||
|
|
||||||
|
return dir;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the directory where user .icon files should be stored.
|
||||||
|
* If the directory does not exist, it will be created. If it cannot be
|
||||||
|
* created, a dialog will be displayed an NULL will be returned
|
||||||
|
*/
|
||||||
|
EAPI const char *
|
||||||
|
e_user_icon_dir_get(void)
|
||||||
|
{
|
||||||
|
static char dir[PATH_MAX] = "";
|
||||||
|
if (!dir[0])
|
||||||
|
snprintf(dir, sizeof(dir), "%s/icons", efreet_data_home_get());
|
||||||
|
|
||||||
|
return dir;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
#define E_USER_H
|
#define E_USER_H
|
||||||
|
|
||||||
EAPI const char *e_user_homedir_get(void);
|
EAPI const char *e_user_homedir_get(void);
|
||||||
|
EAPI const char *e_user_desktop_dir_get(void);
|
||||||
|
EAPI const char *e_user_icon_dir_get(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -884,6 +884,28 @@ e_util_desktop_menu_item_icon_add(Efreet_Desktop *desktop, const char *size, E_M
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
e_util_dir_check(const char *dir)
|
||||||
|
{
|
||||||
|
if (!ecore_file_exists(dir))
|
||||||
|
{
|
||||||
|
if (!ecore_file_mkdir(dir))
|
||||||
|
{
|
||||||
|
e_util_dialog_show("Error creating the directory: %s. Check that you have correct permissions set.", dir);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!ecore_file_is_dir(dir))
|
||||||
|
{
|
||||||
|
e_util_dialog_show("Error creating the directory: %s. A file of that name already exists.", dir);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* local subsystem functions */
|
/* local subsystem functions */
|
||||||
static void
|
static void
|
||||||
_e_util_container_fake_mouse_up_cb(void *data)
|
_e_util_container_fake_mouse_up_cb(void *data)
|
||||||
|
@ -906,3 +928,4 @@ _e_util_wakeup_cb(void *data)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,7 @@ EAPI Evas_Object *e_util_icon_add(const char *path, Evas *evas);
|
||||||
EAPI Evas_Object *e_util_desktop_icon_add(Efreet_Desktop *desktop, const char *size, Evas *evas);
|
EAPI Evas_Object *e_util_desktop_icon_add(Efreet_Desktop *desktop, const char *size, Evas *evas);
|
||||||
EAPI Evas_Object *e_util_icon_theme_icon_add(const char *icon_name, const char *size, Evas *evas);
|
EAPI Evas_Object *e_util_icon_theme_icon_add(const char *icon_name, const char *size, Evas *evas);
|
||||||
EAPI void e_util_desktop_menu_item_icon_add(Efreet_Desktop *desktop, const char *size, E_Menu_Item *mi);
|
EAPI void e_util_desktop_menu_item_icon_add(Efreet_Desktop *desktop, const char *size, E_Menu_Item *mi);
|
||||||
|
int e_util_dir_check(const char *dir);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue