Allow an e_thumb api for e_widget_preview.
Fixup the file selector preview to use this new api.
SVN revision: 24696
ilLogict <illogict@online.fr>
Stafford Horne <shorne@softhome.net>
Cedric Bail <cedric.bail@free.fr>
+LinuxTitan (Stephen Houston) <linuxtitan@gmail.com>
o = e_widget_fsel_add(dia->win->evas, "~/", "/", NULL, NULL,
_e_eap_edit_select_cb, cfdata,
- _e_eap_edit_change_cb, cfdata, 0);
+ _e_eap_edit_change_cb, cfdata, 1);
evas_object_show(o);
e_widget_min_size_get(o, &mw, &mh);
e_dialog_content_set(dia, o, mw, mh);
}
ofm = e_widget_fsel_add(evas, fdev, fpath, NULL, NULL,
_import_cb_sel_selected, import,
- _import_cb_sel_change, import, 0
+ _import_cb_sel_change, import, 1
);
import->fsel_obj = ofm;
e_widget_list_object_append(o, ofm, 1, 1, 0.5);
static void
_e_wid_fsel_preview_file(E_Widget_Data *wd)
{
+ Evas_Coord mw = 0, mh = 0;
char *size, *owner, *perms, *time;
struct stat st;
owner = _e_wid_file_user_get(st.st_uid);
perms = _e_wid_file_perms_get(st.st_mode, st.st_uid, st.st_gid);
time = _e_wid_file_time_get(st.st_mtime);
-
+
+ e_widget_preview_thumb_set(wd->o_preview_preview, wd->path, "background", 120, 120);
+
+ /*e_table_unpack(wd->o_preview_preview);
+ e_table_pack(wd->o_preview_preview_table, wd->o_preview_preview, 0, 0, 1, 1);
+ e_widget_min_size_get(wd->o_preview_preview, &mw, &mh);
+ e_table_pack_options_set(wd->o_preview_preview, 1, 1, 1, 1, 0.5, 0.5, mw, mh, 99999, 99999);
+ e_table_min_size_get(wd->o_preview_preview_table, &mw, &mh);
+ e_widget_min_size_set(wd->o_preview_preview_table, mw, mh);*/
+
e_widget_entry_text_set(wd->o_preview_size_entry, size);
e_widget_entry_text_set(wd->o_preview_owner_entry, owner);
e_widget_entry_text_set(wd->o_preview_perms_entry, perms);
};
static void _e_wid_del_hook(Evas_Object *obj);
-
+static void _e_wid_preview_thumb_gen(void *data, Evas_Object *obj, void *event_info);
/* local subsystem functions */
/* externally accessible functions */
E_Widget_Data *wd;
wd = e_widget_data_get(obj);
- if (wd->o_thumb) evas_object_del(wd->o_thumb);
+
+ if (wd->o_thumb)
+ evas_object_del(wd->o_thumb);
+
wd->o_thumb = e_icon_add(e_livethumb_evas_get(wd->img));
e_icon_file_key_set(wd->o_thumb, file, key);
evas_object_show(wd->o_thumb);
}
EAPI int
+e_widget_preview_thumb_set(Evas_Object *obj, const char *file, const char *key, int w, int h)
+{
+ E_Widget_Data *wd;
+
+ wd = e_widget_data_get(obj);
+
+ if (wd->img)
+ evas_object_del(wd->img);
+
+ wd->img = e_thumb_icon_add(evas_object_evas_get(obj));
+ e_thumb_icon_file_set(wd->img, file, key);
+ e_thumb_icon_size_set(wd->img, w, h);
+ e_thumb_icon_begin(wd->img);
+ evas_object_smart_callback_add(wd->img, "e_thumb_gen", _e_wid_preview_thumb_gen, wd);
+
+ edje_object_part_swallow(wd->o_frame, "item", wd->img);
+ evas_object_show(wd->img);
+ return 1;
+}
+
+static void
+_e_wid_preview_thumb_gen(void *data, Evas_Object *obj, void *event_info)
+{
+ Evas_Coord w, h;
+ E_Widget_Data *wd;
+ wd = data;
+
+ e_icon_size_get(wd->img, &w, &h);
+ evas_object_resize(wd->o_frame, w, h);
+}
+
+EAPI int
e_widget_preview_edje_set(Evas_Object *obj, const char *file, const char *group)
{
E_Widget_Data *wd;
EAPI Evas_Object *e_widget_preview_add(Evas *evas, int minw, int minh);
EAPI int e_widget_preview_file_set(Evas_Object *obj, const char *file, const char *key);
+EAPI int e_widget_preview_thumb_set(Evas_Object *obj, const char *file, const char *key, int w, int h);
EAPI int e_widget_preview_edje_set(Evas_Object *obj, const char *file, const char *group);
#endif