forked from enlightenment/enlightenment
font previews in efm - in thumbnails and in efm preview
This commit is contained in:
parent
0782545137
commit
934e02b320
|
@ -633,6 +633,58 @@ group "E_Config" struct {
|
|||
value "mime" string: "image/x-compressed-xcf";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-ttf";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-type1";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-afm";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-snf";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-otf";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/vnd.font-fontforge-sfd";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-linux-psf";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-ttx";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-speedo";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-pcf";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-bdf";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-cisco-vpn-settings";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "video/3gpp";
|
||||
value "icon" string: "THUMB";
|
||||
|
|
|
@ -361,6 +361,58 @@ group "E_Config" struct {
|
|||
value "mime" string: "image/x-compressed-xcf";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-ttf";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-type1";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-afm";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-snf";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-otf";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/vnd.font-fontforge-sfd";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-linux-psf";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-ttx";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-speedo";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-pcf";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-font-bdf";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "application/x-cisco-vpn-settings";
|
||||
value "icon" string: "THUMB";
|
||||
}
|
||||
group "E_Config_Mime_Icon" struct {
|
||||
value "mime" string: "video/3gpp";
|
||||
value "icon" string: "THUMB";
|
||||
|
|
|
@ -309,6 +309,12 @@ _e_thumb_generate(E_Thumb *eth)
|
|||
while (mtime_thumb <= mtime_orig)
|
||||
{
|
||||
unsigned int *data1;
|
||||
Eina_Bool sortkey;
|
||||
Evas_Object *im2, *bg;
|
||||
|
||||
im = NULL;
|
||||
im2 = NULL;
|
||||
bg = NULL;
|
||||
|
||||
ecore_file_mkdir(dbuf);
|
||||
|
||||
|
@ -323,6 +329,8 @@ _e_thumb_generate(E_Thumb *eth)
|
|||
alpha = 1;
|
||||
ext = strrchr(eth->file, '.');
|
||||
|
||||
sortkey = EINA_FALSE;
|
||||
|
||||
if ((ext) && (eth->key) &&
|
||||
((!strcasecmp(ext, ".edj")) ||
|
||||
(!strcasecmp(ext, ".eap"))))
|
||||
|
@ -347,6 +355,64 @@ _e_thumb_generate(E_Thumb *eth)
|
|||
evas_object_resize(edje, ww * 4, hh * 4);
|
||||
evas_object_show(edje);
|
||||
}
|
||||
evas_object_move(im, 0, 0);
|
||||
evas_object_resize(im, ww, hh);
|
||||
sortkey = EINA_TRUE;
|
||||
}
|
||||
else if ((ext) &&
|
||||
((!strcasecmp(ext, ".ttf")) ||
|
||||
(!strcasecmp(ext, ".pcf")) ||
|
||||
(!strcasecmp(ext, ".bdf")) ||
|
||||
(!strcasecmp(ext, ".ttx")) ||
|
||||
(!strcasecmp(ext, ".pfa")) ||
|
||||
(!strcasecmp(ext, ".pfb")) ||
|
||||
(!strcasecmp(ext, ".afm")) ||
|
||||
(!strcasecmp(ext, ".sfd")) ||
|
||||
(!strcasecmp(ext, ".snf")) ||
|
||||
(!strcasecmp(ext, ".otf")) ||
|
||||
(!strcasecmp(ext, ".psf")) ||
|
||||
(!strcasecmp(ext, ".ttc")) ||
|
||||
(!strcasecmp(ext, ".ttx")) ||
|
||||
(!strcasecmp(ext, ".gsf")) ||
|
||||
(!strcasecmp(ext, ".spd"))
|
||||
))
|
||||
{
|
||||
Evas_Coord tx = 0, ty = 0, tw = 0, th = 0;
|
||||
ww = eth->w;
|
||||
hh = eth->h;
|
||||
alpha = 0;
|
||||
|
||||
bg = evas_object_rectangle_add(evas);
|
||||
evas_object_color_set(bg, 96, 96, 96, 255);
|
||||
evas_object_move(bg, 0, 0);
|
||||
evas_object_resize(bg, ww, hh);
|
||||
evas_object_show(bg);
|
||||
|
||||
im = evas_object_text_add(evas);
|
||||
evas_object_text_font_set(im, eth->file, hh / 4);
|
||||
evas_object_color_set(im, 192, 192, 192, 255);
|
||||
evas_object_text_ellipsis_set(im, 0.0);
|
||||
evas_object_text_text_set(im, "ABCabc");
|
||||
evas_object_geometry_get(im, NULL, NULL, &tw, &th);
|
||||
if (tw > ww) tw = ww;
|
||||
tx = 0 + ((ww - tw) / 2);
|
||||
ty = 0 + (((hh / 2) - th) / 2);
|
||||
evas_object_move(im, tx, ty);
|
||||
evas_object_resize(im, tw, th);
|
||||
evas_object_show(im);
|
||||
|
||||
im2 = evas_object_text_add(evas);
|
||||
evas_object_text_font_set(im2, eth->file, hh / 4);
|
||||
evas_object_color_set(im2, 255, 255, 255, 255);
|
||||
evas_object_text_ellipsis_set(im2, 0.0);
|
||||
evas_object_text_text_set(im2, "123!@?");
|
||||
evas_object_geometry_get(im2, NULL, NULL, &tw, &th);
|
||||
if (tw > ww) tw = ww;
|
||||
tx = 0 + ((ww - tw) / 2);
|
||||
ty = (hh / 2) + (((hh / 2) - th) / 2);
|
||||
evas_object_move(im2, tx, ty);
|
||||
evas_object_resize(im2, tw, th);
|
||||
evas_object_show(im2);
|
||||
}
|
||||
else if (evas_object_image_extension_can_load_get(ext))
|
||||
{
|
||||
|
@ -367,12 +433,14 @@ _e_thumb_generate(E_Thumb *eth)
|
|||
}
|
||||
evas_object_image_fill_set(im, 0, 0, ww, hh);
|
||||
}
|
||||
evas_object_move(im, 0, 0);
|
||||
evas_object_resize(im, ww, hh);
|
||||
sortkey = EINA_TRUE;
|
||||
}
|
||||
else
|
||||
goto end;
|
||||
|
||||
ecore_evas_alpha_set(ee, alpha);
|
||||
evas_object_move(im, 0, 0);
|
||||
evas_object_resize(im, ww, hh);
|
||||
ecore_evas_resize(ee, ww, hh);
|
||||
evas_object_show(im);
|
||||
if (ww <= 0) goto end;
|
||||
|
@ -388,55 +456,57 @@ _e_thumb_generate(E_Thumb *eth)
|
|||
eet_data_image_write(ef, "/thumbnail/data",
|
||||
(void *)data, ww, hh, alpha,
|
||||
0, 91, 1);
|
||||
ww = 4; hh = 4;
|
||||
evas_object_image_fill_set(im, 0, 0, ww, hh);
|
||||
evas_object_resize(im, ww, hh);
|
||||
ecore_evas_resize(ee, ww, hh);
|
||||
data = ecore_evas_buffer_pixels_get(ee);
|
||||
if (!data) goto end;
|
||||
|
||||
data1 = malloc(ww * hh * sizeof(unsigned int));
|
||||
memcpy(data1, data, ww * hh * sizeof(unsigned int));
|
||||
ww = 2; hh = 2;
|
||||
evas_object_image_fill_set(im, 0, 0, ww, hh);
|
||||
evas_object_resize(im, ww, hh);
|
||||
ecore_evas_resize(ee, ww, hh);
|
||||
data = ecore_evas_buffer_pixels_get(ee);
|
||||
if (data)
|
||||
if (sortkey)
|
||||
{
|
||||
unsigned int *data2;
|
||||
ww = 4; hh = 4;
|
||||
evas_object_image_fill_set(im, 0, 0, ww, hh);
|
||||
evas_object_resize(im, ww, hh);
|
||||
ecore_evas_resize(ee, ww, hh);
|
||||
data = ecore_evas_buffer_pixels_get(ee);
|
||||
if (!data) goto end;
|
||||
|
||||
data2 = malloc(ww * hh * sizeof(unsigned int));
|
||||
memcpy(data2, data, ww * hh * sizeof(unsigned int));
|
||||
ww = 1; hh = 1;
|
||||
data1 = malloc(ww * hh * sizeof(unsigned int));
|
||||
memcpy(data1, data, ww * hh * sizeof(unsigned int));
|
||||
ww = 2; hh = 2;
|
||||
evas_object_image_fill_set(im, 0, 0, ww, hh);
|
||||
evas_object_resize(im, ww, hh);
|
||||
ecore_evas_resize(ee, ww, hh);
|
||||
data = ecore_evas_buffer_pixels_get(ee);
|
||||
if (data)
|
||||
{
|
||||
unsigned int *data3;
|
||||
unsigned char id2[(21 * 4) + 1];
|
||||
int n, i;
|
||||
int hi, si, vi;
|
||||
float h, s, v;
|
||||
const int pat2[4] =
|
||||
{
|
||||
0, 3, 1, 2
|
||||
};
|
||||
const int pat1[16] =
|
||||
{
|
||||
5, 10, 6, 9,
|
||||
0, 15, 3, 12,
|
||||
1, 14, 7, 8,
|
||||
4, 11, 2, 13
|
||||
};
|
||||
|
||||
/* ww = hh = 1 here */
|
||||
data3 = malloc(sizeof(unsigned int));
|
||||
memcpy(data3, data, sizeof(unsigned int));
|
||||
// sort_id
|
||||
n = 0;
|
||||
unsigned int *data2;
|
||||
|
||||
data2 = malloc(ww * hh * sizeof(unsigned int));
|
||||
memcpy(data2, data, ww * hh * sizeof(unsigned int));
|
||||
ww = 1; hh = 1;
|
||||
evas_object_image_fill_set(im, 0, 0, ww, hh);
|
||||
evas_object_resize(im, ww, hh);
|
||||
ecore_evas_resize(ee, ww, hh);
|
||||
data = ecore_evas_buffer_pixels_get(ee);
|
||||
if (data)
|
||||
{
|
||||
unsigned int *data3;
|
||||
unsigned char id2[(21 * 4) + 1];
|
||||
int n, i;
|
||||
int hi, si, vi;
|
||||
float h, s, v;
|
||||
const int pat2[4] =
|
||||
{
|
||||
0, 3, 1, 2
|
||||
};
|
||||
const int pat1[16] =
|
||||
{
|
||||
5, 10, 6, 9,
|
||||
0, 15, 3, 12,
|
||||
1, 14, 7, 8,
|
||||
4, 11, 2, 13
|
||||
};
|
||||
|
||||
/* ww = hh = 1 here */
|
||||
data3 = malloc(sizeof(unsigned int));
|
||||
memcpy(data3, data, sizeof(unsigned int));
|
||||
// sort_id
|
||||
n = 0;
|
||||
#define A(v) (((v) >> 24) & 0xff)
|
||||
#define R(v) (((v) >> 16) & 0xff)
|
||||
#define G(v) (((v) >> 8) & 0xff)
|
||||
|
@ -454,71 +524,73 @@ _e_thumb_generate(E_Thumb *eth)
|
|||
#define SAVEX(x) \
|
||||
id2[n++] = 'a' + x;
|
||||
#if 0
|
||||
HSV(data3[0]);
|
||||
SAVEHSV(hi, si, vi);
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
HSV(data2[pat2[i]]);
|
||||
HSV(data3[0]);
|
||||
SAVEHSV(hi, si, vi);
|
||||
}
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
HSV(data1[pat1[i]]);
|
||||
SAVEHSV(hi, si, vi);
|
||||
}
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
HSV(data2[pat2[i]]);
|
||||
SAVEHSV(hi, si, vi);
|
||||
}
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
HSV(data1[pat1[i]]);
|
||||
SAVEHSV(hi, si, vi);
|
||||
}
|
||||
#else
|
||||
HSV(data3[0]);
|
||||
SAVEX(hi);
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
HSV(data2[pat2[i]]);
|
||||
HSV(data3[0]);
|
||||
SAVEX(hi);
|
||||
}
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
HSV(data1[pat1[i]]);
|
||||
SAVEX(hi);
|
||||
}
|
||||
HSV(data3[0]);
|
||||
SAVEX(vi);
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
HSV(data2[pat2[i]]);
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
HSV(data2[pat2[i]]);
|
||||
SAVEX(hi);
|
||||
}
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
HSV(data1[pat1[i]]);
|
||||
SAVEX(hi);
|
||||
}
|
||||
HSV(data3[0]);
|
||||
SAVEX(vi);
|
||||
}
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
HSV(data1[pat1[i]]);
|
||||
SAVEX(vi);
|
||||
}
|
||||
HSV(data3[0]);
|
||||
SAVEX(si);
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
HSV(data2[pat2[i]]);
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
HSV(data2[pat2[i]]);
|
||||
SAVEX(vi);
|
||||
}
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
HSV(data1[pat1[i]]);
|
||||
SAVEX(vi);
|
||||
}
|
||||
HSV(data3[0]);
|
||||
SAVEX(si);
|
||||
}
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
HSV(data1[pat1[i]]);
|
||||
SAVEX(si);
|
||||
}
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
HSV(data2[pat2[i]]);
|
||||
SAVEX(si);
|
||||
}
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
HSV(data1[pat1[i]]);
|
||||
SAVEX(si);
|
||||
}
|
||||
#endif
|
||||
id2[n++] = 0;
|
||||
eet_write(ef, "/thumbnail/sort_id", id2, n, 1);
|
||||
free(data3);
|
||||
id2[n++] = 0;
|
||||
eet_write(ef, "/thumbnail/sort_id", id2, n, 1);
|
||||
free(data3);
|
||||
}
|
||||
free(data2);
|
||||
}
|
||||
free(data2);
|
||||
free(data1);
|
||||
}
|
||||
free(data1);
|
||||
end:
|
||||
if (ef) eet_close(ef);
|
||||
|
||||
/* will free all */
|
||||
if (edje) evas_object_del(edje);
|
||||
if (ee_im) ecore_evas_free(ee_im);
|
||||
else if (im)
|
||||
evas_object_del(im);
|
||||
else if (im) evas_object_del(im);
|
||||
if (im2) evas_object_del(im2);
|
||||
if (bg) evas_object_del(bg);
|
||||
ecore_evas_free(ee);
|
||||
eet_clearcache();
|
||||
break;
|
||||
|
|
|
@ -43,8 +43,10 @@ struct _E_Widget_Data
|
|||
Eina_Bool mime_icon : 1;
|
||||
Eina_Bool is_dir : 1;
|
||||
Eina_Bool is_txt : 1;
|
||||
Eina_Bool is_font : 1;
|
||||
Eina_Bool prev_is_fm : 1;
|
||||
Eina_Bool prev_is_txt : 1;
|
||||
Eina_Bool prev_is_font : 1;
|
||||
Eina_Bool prev_is_video : 1;
|
||||
};
|
||||
|
||||
|
@ -58,6 +60,7 @@ static void _e_wid_fprev_img_update(E_Widget_Data *wd, const char *path, const
|
|||
static void _e_wid_del_hook(Evas_Object *obj);
|
||||
static void _e_wid_fprev_preview_reset(E_Widget_Data *wd);
|
||||
static void _e_wid_fprev_preview_txt(E_Widget_Data *wd);
|
||||
static void _e_wid_fprev_preview_font(E_Widget_Data *wd);
|
||||
static void _e_wid_fprev_preview_fm(E_Widget_Data *wd);
|
||||
|
||||
static void
|
||||
|
@ -131,7 +134,7 @@ static void
|
|||
_e_wid_fprev_img_update(E_Widget_Data *wd, const char *path, const char *key)
|
||||
{
|
||||
if (!path) return;
|
||||
if (wd->is_dir || wd->is_txt) return;
|
||||
if (wd->is_dir || wd->is_txt || wd->is_font) return;
|
||||
evas_object_smart_callback_del_full(wd->o_preview_preview, "preview_update", _e_wid_fprev_preview_update, wd);
|
||||
if (eina_str_has_extension(path, ".gif"))
|
||||
{
|
||||
|
@ -207,7 +210,7 @@ _e_wid_fprev_clear_widgets(E_Widget_Data *wd)
|
|||
CLRWID(o_preview_time_entry);
|
||||
CLRWID(o_preview_preview);
|
||||
CLRWID(o_preview_scrollframe);
|
||||
wd->is_dir = wd->is_txt = wd->prev_is_fm = wd->prev_is_video = EINA_FALSE;
|
||||
wd->is_dir = wd->is_txt = wd->is_font = wd->prev_is_fm = wd->prev_is_video = EINA_FALSE;
|
||||
wd->vid_pct = 0;
|
||||
if (wd->preview_text_file_thread) ecore_thread_cancel(wd->preview_text_file_thread);
|
||||
wd->preview_text_file_thread = NULL;
|
||||
|
@ -418,7 +421,7 @@ _e_wid_fprev_preview_fs_widgets(E_Widget_Data *wd, Eina_Bool mount_point)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_wid_fprev_preview_file_widgets(E_Widget_Data *wd, Eina_Bool dir, Eina_Bool txt)
|
||||
_e_wid_fprev_preview_file_widgets(E_Widget_Data *wd, Eina_Bool dir, Eina_Bool txt, Eina_Bool font)
|
||||
{
|
||||
Evas *evas = evas_object_evas_get(wd->obj);
|
||||
Evas_Object *o;
|
||||
|
@ -438,6 +441,7 @@ _e_wid_fprev_preview_file_widgets(E_Widget_Data *wd, Eina_Bool dir, Eina_Bool tx
|
|||
wd->o_preview_properties_table = o;
|
||||
wd->is_dir = dir;
|
||||
wd->is_txt = txt;
|
||||
wd->is_font = font;
|
||||
|
||||
if (!dir)
|
||||
{
|
||||
|
@ -659,12 +663,41 @@ _e_wid_fprev_preview_file(E_Widget_Data *wd)
|
|||
wd->is_txt = !strncmp(wd->mime, "text/", 5);
|
||||
if (!wd->is_txt)
|
||||
wd->is_txt = !strcmp(wd->mime, "application/x-shellscript");
|
||||
if (!wd->is_txt)
|
||||
{
|
||||
wd->is_font = !strcmp(wd->mime, "application/x-font");
|
||||
if (!wd->is_font)
|
||||
wd->is_font = !strcmp(wd->mime, "application/x-font-ttf");
|
||||
if (!wd->is_font)
|
||||
wd->is_font = !strcmp(wd->mime, "application/x-font-type1");
|
||||
if (!wd->is_font)
|
||||
wd->is_font = !strcmp(wd->mime, "application/x-font-afm");
|
||||
if (!wd->is_font)
|
||||
wd->is_font = !strcmp(wd->mime, "application/x-font-snf");
|
||||
if (!wd->is_font)
|
||||
wd->is_font = !strcmp(wd->mime, "application/x-font-otf");
|
||||
if (!wd->is_font)
|
||||
wd->is_font = !strcmp(wd->mime, "application/vnd.font-fontforge-sfd");
|
||||
if (!wd->is_font)
|
||||
wd->is_font = !strcmp(wd->mime, "application/x-font-linux-psf");
|
||||
if (!wd->is_font)
|
||||
wd->is_font = !strcmp(wd->mime, "application/x-font-ttx");
|
||||
if (!wd->is_font)
|
||||
wd->is_font = !strcmp(wd->mime, "application/x-font-speedo");
|
||||
if (!wd->is_font)
|
||||
wd->is_font = !strcmp(wd->mime, "application/x-font-pcf");
|
||||
if (!wd->is_font)
|
||||
wd->is_font = !strcmp(wd->mime, "application/x-font-bdf");
|
||||
if (!wd->is_font)
|
||||
wd->is_font = !strcmp(wd->mime, "application/x-cisco-vpn-settings");
|
||||
}
|
||||
}
|
||||
_e_wid_fprev_preview_file_widgets(wd, wd->is_dir, wd->is_txt);
|
||||
_e_wid_fprev_preview_file_widgets(wd, wd->is_dir, wd->is_txt, wd->is_font);
|
||||
|
||||
_e_wid_fprev_preview_reset(wd);
|
||||
_e_wid_fprev_preview_fm(wd);
|
||||
_e_wid_fprev_preview_txt(wd);
|
||||
_e_wid_fprev_preview_font(wd);
|
||||
_e_wid_fprev_img_update(wd, wd->path, NULL);
|
||||
|
||||
e_widget_size_min_get(wd->o_preview_list, &mw, &mh);
|
||||
|
@ -812,9 +845,9 @@ _e_wid_fprev_preview_reset(E_Widget_Data *wd)
|
|||
wd->o_preview_scrollframe = wd->o_preview_preview = NULL;
|
||||
if (wd->preview_text_file_thread) ecore_thread_cancel(wd->preview_text_file_thread);
|
||||
wd->preview_text_file_thread = NULL;
|
||||
if (wd->is_dir || wd->is_txt) return;
|
||||
if (wd->is_dir || wd->is_txt || wd->is_font) return;
|
||||
o = e_widget_preview_add(evas_object_evas_get(wd->obj), wd->w, wd->h);
|
||||
wd->prev_is_txt = wd->prev_is_fm = EINA_FALSE;
|
||||
wd->prev_is_txt = wd->prev_is_fm = wd->prev_is_font = EINA_FALSE;
|
||||
wd->o_preview_preview = o;
|
||||
e_widget_table_object_append(wd->o_preview_preview_table,
|
||||
wd->o_preview_preview,
|
||||
|
@ -871,9 +904,13 @@ static void
|
|||
_e_wid_fprev_preview_txt_read_notify(void *data, Ecore_Thread *eth __UNUSED__, void *msg)
|
||||
{
|
||||
E_Widget_Data *wd = data;
|
||||
char *buf;
|
||||
|
||||
//INF("text='%s'", (char*)msg);
|
||||
edje_object_part_text_set(wd->o_preview_preview, "e.textblock.message", msg);
|
||||
buf = alloca(strlen(msg) + 4096);
|
||||
strcpy(buf, "<align=left>");
|
||||
strcat(buf, msg);
|
||||
edje_object_part_text_set(wd->o_preview_preview, "e.textblock.message", buf);
|
||||
free(msg);
|
||||
}
|
||||
|
||||
|
@ -920,7 +957,6 @@ _e_wid_fprev_preview_txt(E_Widget_Data *wd)
|
|||
e_theme_edje_object_set(o, "base/theme/dialog", "e/widgets/dialog/text");
|
||||
edje_object_signal_emit(o, "e,state,left", "e");
|
||||
edje_object_message_signal_process(o);
|
||||
edje_object_part_text_set(wd->o_preview_preview, "e.textblock.message", "");
|
||||
wd->o_preview_preview = o;
|
||||
wd->prev_is_txt = EINA_TRUE;
|
||||
evas_object_resize(o, wd->w, wd->h);
|
||||
|
@ -945,6 +981,87 @@ _e_wid_fprev_preview_txt(E_Widget_Data *wd)
|
|||
_e_wid_fprev_preview_txt_read_end, _e_wid_fprev_preview_txt_read_cancel, wd, EINA_FALSE);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_wid_fprev_preview_font(E_Widget_Data *wd)
|
||||
{
|
||||
Evas_Object *o;
|
||||
int mw;
|
||||
|
||||
if (!wd->is_font) return;
|
||||
if (!wd->path) return;
|
||||
if (wd->o_preview_preview && (!wd->prev_is_font))
|
||||
{
|
||||
evas_object_del(wd->o_preview_preview);
|
||||
wd->o_preview_preview = NULL;
|
||||
}
|
||||
if (!wd->o_preview_preview)
|
||||
{
|
||||
Evas *evas;
|
||||
char *buf, *escaped;
|
||||
|
||||
evas = evas_object_evas_get(wd->obj);
|
||||
o = edje_object_add(evas);
|
||||
/* using dialog theme for now because it's simple, common, and doesn't require all
|
||||
* themes to be updated
|
||||
*/
|
||||
e_theme_edje_object_set(o, "base/theme/dialog", "e/widgets/dialog/text");
|
||||
edje_object_signal_emit(o, "e,state,left", "e");
|
||||
edje_object_message_signal_process(o);
|
||||
escaped = eina_str_escape(wd->path);
|
||||
if (escaped)
|
||||
{
|
||||
buf = alloca(strlen(escaped) + 4096);
|
||||
snprintf(buf, strlen(wd->path) + 4096,
|
||||
"<font=%s>"
|
||||
|
||||
"<font_size=28>"
|
||||
"28 - ABC abc 0123 @!?#$*{}<br>"
|
||||
"The quick brown fox jumps.<br>"
|
||||
|
||||
"<font_size=20>"
|
||||
"20 - ABC abc 0123 @!?#$*{}<br>"
|
||||
"The quick brown fox jumps.<br>"
|
||||
|
||||
"<font_size=16>"
|
||||
"16 - ABC abc 0123 @!?#$*{}<br>"
|
||||
"The quick brown fox jumps.<br>"
|
||||
|
||||
"<font_size=12>"
|
||||
"12 - ABC abc 0123 @!?#$*{}<br>"
|
||||
"The quick brown fox jumps.<br>"
|
||||
|
||||
"<font_size=10>"
|
||||
"10 - ABC abc 0123 @!?#$*{}<br>"
|
||||
"The quick brown fox jumps.<br>"
|
||||
|
||||
"<font_size=8>"
|
||||
"8 - ABC abc 0123 @!?#$*{}<br>"
|
||||
"The quick brown fox jumps.<br>"
|
||||
, escaped
|
||||
);
|
||||
edje_object_part_text_set(o, "e.textblock.message", buf);
|
||||
free(escaped);
|
||||
}
|
||||
wd->o_preview_preview = o;
|
||||
wd->prev_is_font = EINA_TRUE;
|
||||
evas_object_resize(o, wd->w, wd->h);
|
||||
o = e_widget_scrollframe_simple_add(evas, o);
|
||||
wd->o_preview_scrollframe = o;
|
||||
e_widget_size_min_get(wd->o_preview_list, &mw, NULL);
|
||||
e_widget_size_min_set(o, wd->w, wd->h);
|
||||
evas_object_propagate_events_set(wd->o_preview_preview, 0);
|
||||
e_widget_table_object_append(wd->o_preview_preview_table,
|
||||
o, 0, 0, 2, 1, 1, 1, 1, 1);
|
||||
e_widget_list_object_repack(wd->o_preview_list,
|
||||
wd->o_preview_preview_table,
|
||||
1, 1, 0.5);
|
||||
e_widget_list_object_repack(wd->o_preview_list,
|
||||
wd->o_preview_properties_table,
|
||||
1, 1, 0.5);
|
||||
evas_object_show(o);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_e_wid_fprev_preview_fm(E_Widget_Data *wd)
|
||||
{
|
||||
|
@ -1105,6 +1222,6 @@ e_widget_filepreview_filemode_force(Evas_Object *obj)
|
|||
if (!obj) return;
|
||||
wd = e_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
_e_wid_fprev_preview_file_widgets(wd, 0, 0);
|
||||
_e_wid_fprev_preview_file_widgets(wd, 0, 0, 0);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue