forked from enlightenment/enlightenment
Save image from ARGB coming along. Not done yet.
SVN revision: 24043
This commit is contained in:
parent
214d11f633
commit
6291d46977
|
@ -30,6 +30,8 @@ struct _E_Config_Dialog_Data
|
||||||
int wait_exit;
|
int wait_exit;
|
||||||
/*- common -*/
|
/*- common -*/
|
||||||
char *image;
|
char *image;
|
||||||
|
int width;
|
||||||
|
int height;
|
||||||
E_App_Edit *editor;
|
E_App_Edit *editor;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -103,6 +105,11 @@ _e_eap_edit_fill_data(E_Config_Dialog_Data *cfdata)
|
||||||
IFDUP(cfdata->editor->eap->icon_class, cfdata->iclass);
|
IFDUP(cfdata->editor->eap->icon_class, cfdata->iclass);
|
||||||
cfdata->startup_notify = cfdata->editor->eap->startup_notify;
|
cfdata->startup_notify = cfdata->editor->eap->startup_notify;
|
||||||
cfdata->wait_exit = cfdata->editor->eap->wait_exit;
|
cfdata->wait_exit = cfdata->editor->eap->wait_exit;
|
||||||
|
/*- COMMON -*/
|
||||||
|
IFDUP(cfdata->editor->eap->image, cfdata->image);
|
||||||
|
cfdata->height = cfdata->editor->eap->height;
|
||||||
|
cfdata->width = cfdata->editor->eap->width;
|
||||||
|
if (cfdata->image) cfdata->editor->img_set = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
|
@ -157,8 +164,10 @@ _e_eap_edit_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *data)
|
||||||
eap->wait_exit = data->wait_exit;
|
eap->wait_exit = data->wait_exit;
|
||||||
|
|
||||||
/* FIXME: hardcoded until the eap editor provides fields to change it */
|
/* FIXME: hardcoded until the eap editor provides fields to change it */
|
||||||
eap->width = 128;
|
if (data->width) eap->width = data->width;
|
||||||
eap->height = 128;
|
else eap->width = 128;
|
||||||
|
if (data->height) eap->height = data->height;
|
||||||
|
else eap->height = 128;
|
||||||
|
|
||||||
if ((eap->name) && (eap->exe))
|
if ((eap->name) && (eap->exe))
|
||||||
e_app_fields_save(eap);
|
e_app_fields_save(eap);
|
||||||
|
@ -205,8 +214,10 @@ _e_eap_edit_advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *data
|
||||||
if (data->iclass) eap->icon_class = evas_stringshare_add(data->iclass);
|
if (data->iclass) eap->icon_class = evas_stringshare_add(data->iclass);
|
||||||
|
|
||||||
/* FIXME: hardcoded until the eap editor provides fields to change it */
|
/* FIXME: hardcoded until the eap editor provides fields to change it */
|
||||||
eap->width = 128;
|
if (data->width) eap->width = data->width;
|
||||||
eap->height = 128;
|
else eap->width = 128;
|
||||||
|
if (data->height) eap->height = data->height;
|
||||||
|
else eap->height = 128;
|
||||||
|
|
||||||
if ((eap->name) && (eap->exe))
|
if ((eap->name) && (eap->exe))
|
||||||
e_app_fields_save(eap);
|
e_app_fields_save(eap);
|
||||||
|
|
|
@ -556,6 +556,26 @@ _e_border_menu_cb_icon_edit(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
if (bname) a->exe = evas_stringshare_add(bname);
|
if (bname) a->exe = evas_stringshare_add(bname);
|
||||||
if (bd->client.netwm.startup_id > 0)
|
if (bd->client.netwm.startup_id > 0)
|
||||||
a->startup_notify = 1;
|
a->startup_notify = 1;
|
||||||
|
if (bd->client.netwm.icons)
|
||||||
|
{
|
||||||
|
/* FIXME: Find the icon with the best size */
|
||||||
|
const char *tmp;
|
||||||
|
|
||||||
|
tmp = getenv("TMPDIR");
|
||||||
|
if (!tmp) tmp = getenv("TMP");
|
||||||
|
if (!tmp) tmp = "/tmp";
|
||||||
|
snprintf(path, sizeof(path), "%s/%s-%.6f.jpg", 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;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Could not save file from ARGB: %s\n", path);
|
||||||
|
}
|
||||||
|
}
|
||||||
bd->app = a;
|
bd->app = a;
|
||||||
e_object_ref(E_OBJECT(bd->app));
|
e_object_ref(E_OBJECT(bd->app));
|
||||||
}
|
}
|
||||||
|
|
|
@ -564,7 +564,7 @@ e_util_filename_escape(const char *filename)
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI int
|
EAPI int
|
||||||
e_util_save_icon(Ecore_X_Icon *icon, const char *filename)
|
e_util_icon_save(Ecore_X_Icon *icon, const char *filename)
|
||||||
{
|
{
|
||||||
Ecore_Evas *ee;
|
Ecore_Evas *ee;
|
||||||
Evas *evas;
|
Evas *evas;
|
||||||
|
@ -587,6 +587,7 @@ e_util_save_icon(Ecore_X_Icon *icon, const char *filename)
|
||||||
evas_object_resize(im, icon->width, icon->height);
|
evas_object_resize(im, icon->width, icon->height);
|
||||||
evas_object_image_size_set(im, icon->width, icon->height);
|
evas_object_image_size_set(im, icon->width, icon->height);
|
||||||
evas_object_image_data_copy_set(im, icon->data);
|
evas_object_image_data_copy_set(im, icon->data);
|
||||||
|
evas_object_image_alpha_set(im, 1);
|
||||||
evas_object_show(im);
|
evas_object_show(im);
|
||||||
ret = evas_object_image_save(im, filename, NULL, NULL);
|
ret = evas_object_image_save(im, filename, NULL, NULL);
|
||||||
evas_object_del(im);
|
evas_object_del(im);
|
||||||
|
|
|
@ -40,7 +40,7 @@ EAPI E_Border *e_util_desk_border_below(E_Border *bd);
|
||||||
EAPI int e_util_edje_collection_exists(const char *file, const char *coll);
|
EAPI int e_util_edje_collection_exists(const char *file, const char *coll);
|
||||||
EAPI void e_util_dialog_internal(const char *title, const char *txt);
|
EAPI void e_util_dialog_internal(const char *title, const char *txt);
|
||||||
EAPI const char *e_util_filename_escape(const char *filename);
|
EAPI const char *e_util_filename_escape(const char *filename);
|
||||||
EAPI int e_util_save_icon(Ecore_X_Icon *icon, const char *filename);
|
EAPI int e_util_icon_save(Ecore_X_Icon *icon, const char *filename);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue