Allow proper rotations and do proper rotations. This is temporary until edje or evas does them correctly.
SVN revision: 57532
This commit is contained in:
parent
53cec34e73
commit
ac899f9de4
|
@ -186,7 +186,13 @@ _ephoto_eina_file_direct_info_image_useful(const Eina_File_Direct_Info *info)
|
||||||
ext++;
|
ext++;
|
||||||
if ((strcasecmp(ext, "jpg") == 0) ||
|
if ((strcasecmp(ext, "jpg") == 0) ||
|
||||||
(strcasecmp(ext, "jpeg") == 0) ||
|
(strcasecmp(ext, "jpeg") == 0) ||
|
||||||
(strcasecmp(ext, "png") == 0))
|
(strcasecmp(ext, "png") == 0) ||
|
||||||
|
(strcasecmp(ext, "svg") == 0) ||
|
||||||
|
(strcasecmp(ext, "svgz") == 0) ||
|
||||||
|
(strcasecmp(ext, "bmp") == 0) ||
|
||||||
|
(strcasecmp(ext, "dib") == 0) ||
|
||||||
|
(strcasecmp(ext, "tiff") == 0) ||
|
||||||
|
(strcasecmp(ext, "tif") == 0))
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
* elm_photocam and elm_image rotates their images internally.
|
* elm_photocam and elm_image rotates their images internally.
|
||||||
* Rotating the scroller is not correct and was rejected by Raster and others.
|
* Rotating the scroller is not correct and was rejected by Raster and others.
|
||||||
*/
|
*/
|
||||||
//#define ROTATION 1
|
#define ROTATION 1
|
||||||
|
|
||||||
#define ZOOM_STEP 0.2
|
#define ZOOM_STEP 0.2
|
||||||
|
|
||||||
|
@ -20,8 +20,6 @@ struct _Ephoto_Single_Browser
|
||||||
Ephoto *ephoto;
|
Ephoto *ephoto;
|
||||||
Evas_Object *layout;
|
Evas_Object *layout;
|
||||||
Evas_Object *edje;
|
Evas_Object *edje;
|
||||||
Evas_Object *orient_layout;
|
|
||||||
Evas_Object *orient_edje;
|
|
||||||
Evas_Object *viewer;
|
Evas_Object *viewer;
|
||||||
Evas_Object *toolbar;
|
Evas_Object *toolbar;
|
||||||
struct {
|
struct {
|
||||||
|
@ -52,7 +50,6 @@ struct _Ephoto_Single_Browser
|
||||||
|
|
||||||
struct _Ephoto_Viewer
|
struct _Ephoto_Viewer
|
||||||
{
|
{
|
||||||
Evas_Object *photocam;
|
|
||||||
Evas_Object *scroller;
|
Evas_Object *scroller;
|
||||||
Evas_Object *image;
|
Evas_Object *image;
|
||||||
double zoom;
|
double zoom;
|
||||||
|
@ -80,12 +77,6 @@ _path_is_jpeg(const char *path_stringshared)
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
_viewer_photocam_loaded(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
|
||||||
{
|
|
||||||
elm_photocam_paused_set(obj, EINA_FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_viewer_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
_viewer_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||||
{
|
{
|
||||||
|
@ -98,39 +89,24 @@ _viewer_add(Evas_Object *parent, const char *path)
|
||||||
{
|
{
|
||||||
Ephoto_Viewer *v = calloc(1, sizeof(Ephoto_Viewer));
|
Ephoto_Viewer *v = calloc(1, sizeof(Ephoto_Viewer));
|
||||||
Evas_Object *obj;
|
Evas_Object *obj;
|
||||||
|
Evas_Coord w, h;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(v, NULL);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(v, NULL);
|
||||||
if (_path_is_jpeg(path))
|
obj = v->scroller = elm_scroller_add(parent);
|
||||||
{
|
EINA_SAFETY_ON_NULL_GOTO(obj, error);
|
||||||
obj = v->photocam = elm_photocam_add(parent);
|
v->image = evas_object_image_filled_add(evas_object_evas_get(parent));
|
||||||
EINA_SAFETY_ON_NULL_GOTO(obj, error);
|
evas_object_image_file_set(v->image, path, NULL);
|
||||||
err = elm_photocam_file_set(obj, path);
|
err = evas_object_image_load_error_get(v->image);
|
||||||
if (err != EVAS_LOAD_ERROR_NONE) goto load_error;
|
if (err != EVAS_LOAD_ERROR_NONE) goto load_error;
|
||||||
elm_photocam_paused_set(obj, EINA_TRUE);
|
evas_object_image_size_get(v->image, &w, &h);
|
||||||
evas_object_smart_callback_add
|
evas_object_size_hint_align_set(v->image, 0.5, 0.5);
|
||||||
(obj, "loaded", _viewer_photocam_loaded, v);
|
evas_object_size_hint_weight_set(v->image, 1.0, 1.0);
|
||||||
}
|
evas_object_size_hint_min_set(v->image, w, h);
|
||||||
else
|
evas_object_size_hint_max_set(v->image, w, h);
|
||||||
{
|
evas_object_resize(v->image, w, h);
|
||||||
Evas_Coord w, h;
|
evas_object_show(v->image);
|
||||||
obj = v->scroller = elm_scroller_add(parent);
|
elm_scroller_content_set(obj, v->image);
|
||||||
EINA_SAFETY_ON_NULL_GOTO(obj, error);
|
|
||||||
v->image = evas_object_image_filled_add(evas_object_evas_get(parent));
|
|
||||||
evas_object_image_file_set(v->image, path, NULL);
|
|
||||||
err = evas_object_image_load_error_get(v->image);
|
|
||||||
if (err != EVAS_LOAD_ERROR_NONE) goto load_error;
|
|
||||||
evas_object_image_size_get(v->image, &w, &h);
|
|
||||||
evas_object_size_hint_align_set(v->image, 0.5, 0.5);
|
|
||||||
evas_object_size_hint_weight_set(v->image, 1.0, 1.0);
|
|
||||||
evas_object_size_hint_min_set(v->image, w, h);
|
|
||||||
evas_object_size_hint_max_set(v->image, w, h);
|
|
||||||
evas_object_resize(v->image, w, h);
|
|
||||||
evas_object_show(v->image);
|
|
||||||
elm_scroller_content_set(obj, v->image);
|
|
||||||
elm_scroller_custom_widget_base_theme_set(obj, "photocam", "default");
|
|
||||||
|
|
||||||
}
|
|
||||||
evas_object_size_hint_weight_set(obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
evas_object_size_hint_align_set(obj, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
evas_object_size_hint_align_set(obj, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
evas_object_data_set(obj, "viewer", v);
|
evas_object_data_set(obj, "viewer", v);
|
||||||
|
@ -148,17 +124,14 @@ _viewer_add(Evas_Object *parent, const char *path)
|
||||||
static void
|
static void
|
||||||
_viewer_zoom_apply(Ephoto_Viewer *v, double zoom)
|
_viewer_zoom_apply(Ephoto_Viewer *v, double zoom)
|
||||||
{
|
{
|
||||||
|
Evas_Coord w, h;
|
||||||
|
|
||||||
v->zoom = zoom;
|
v->zoom = zoom;
|
||||||
if (v->photocam) elm_photocam_zoom_set(v->photocam, 1.0 / zoom);
|
evas_object_image_size_get(v->image, &w, &h);
|
||||||
else
|
w *= zoom;
|
||||||
{
|
h *= zoom;
|
||||||
Evas_Coord w, h;
|
evas_object_size_hint_min_set(v->image, w, h);
|
||||||
evas_object_image_size_get(v->image, &w, &h);
|
evas_object_size_hint_max_set(v->image, w, h);
|
||||||
w *= zoom;
|
|
||||||
h *= zoom;
|
|
||||||
evas_object_size_hint_min_set(v->image, w, h);
|
|
||||||
evas_object_size_hint_max_set(v->image, w, h);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -167,16 +140,8 @@ _viewer_zoom_fit_apply(Ephoto_Viewer *v)
|
||||||
Evas_Coord cw, ch, iw, ih;
|
Evas_Coord cw, ch, iw, ih;
|
||||||
double zx, zy, zoom;
|
double zx, zy, zoom;
|
||||||
|
|
||||||
if (v->photocam)
|
evas_object_geometry_get(v->scroller, NULL, NULL, &cw, &ch);
|
||||||
{
|
evas_object_image_size_get(v->image, &iw, &ih);
|
||||||
evas_object_geometry_get(v->photocam, NULL, NULL, &cw, &ch);
|
|
||||||
elm_photocam_image_size_get(v->photocam, &iw, &ih);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
evas_object_geometry_get(v->scroller, NULL, NULL, &cw, &ch);
|
|
||||||
evas_object_image_size_get(v->image, &iw, &ih);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((cw <= 0) || (ch <= 0)) return; /* object still not resized */
|
if ((cw <= 0) || (ch <= 0)) return; /* object still not resized */
|
||||||
EINA_SAFETY_ON_TRUE_RETURN(iw <= 0);
|
EINA_SAFETY_ON_TRUE_RETURN(iw <= 0);
|
||||||
|
@ -204,12 +169,8 @@ _viewer_zoom_set(Evas_Object *obj, double zoom)
|
||||||
|
|
||||||
if (v->fit)
|
if (v->fit)
|
||||||
{
|
{
|
||||||
if (v->photocam)
|
evas_object_event_callback_del_full
|
||||||
evas_object_event_callback_del_full
|
(v->scroller, EVAS_CALLBACK_RESIZE, _viewer_resized, v);
|
||||||
(v->photocam, EVAS_CALLBACK_RESIZE, _viewer_resized, v);
|
|
||||||
else
|
|
||||||
evas_object_event_callback_del_full
|
|
||||||
(v->scroller, EVAS_CALLBACK_RESIZE, _viewer_resized, v);
|
|
||||||
v->fit = EINA_FALSE;
|
v->fit = EINA_FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -231,12 +192,8 @@ _viewer_zoom_fit(Evas_Object *obj)
|
||||||
if (v->fit) return;
|
if (v->fit) return;
|
||||||
v->fit = EINA_TRUE;
|
v->fit = EINA_TRUE;
|
||||||
|
|
||||||
if (v->photocam)
|
evas_object_event_callback_add
|
||||||
evas_object_event_callback_add
|
(v->scroller, EVAS_CALLBACK_RESIZE, _viewer_resized, v);
|
||||||
(v->photocam, EVAS_CALLBACK_RESIZE, _viewer_resized, v);
|
|
||||||
else
|
|
||||||
evas_object_event_callback_add
|
|
||||||
(v->scroller, EVAS_CALLBACK_RESIZE, _viewer_resized, v);
|
|
||||||
|
|
||||||
_viewer_zoom_fit_apply(v);
|
_viewer_zoom_fit_apply(v);
|
||||||
}
|
}
|
||||||
|
@ -245,38 +202,106 @@ static void
|
||||||
_orient_apply(Ephoto_Single_Browser *sb)
|
_orient_apply(Ephoto_Single_Browser *sb)
|
||||||
{
|
{
|
||||||
#ifdef ROTATION
|
#ifdef ROTATION
|
||||||
const char *sig;
|
unsigned int *im_data, *im_data_new;
|
||||||
|
int inde, ind, i, j, ni, nj, ew, eh, nw, nh;
|
||||||
|
Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
|
||||||
|
|
||||||
|
im_data = evas_object_image_data_get(v->image, FALSE);
|
||||||
|
evas_object_image_size_get(v->image, &ew, &eh);
|
||||||
|
inde = 0;
|
||||||
|
|
||||||
switch (sb->orient)
|
switch (sb->orient)
|
||||||
{
|
{
|
||||||
case EPHOTO_ORIENT_0:
|
|
||||||
sig = "state,rotate,0";
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_90:
|
case EPHOTO_ORIENT_90:
|
||||||
sig = "state,rotate,90";
|
im_data_new = malloc(sizeof(unsigned int) * ew * eh);
|
||||||
break;
|
nw = eh;
|
||||||
case EPHOTO_ORIENT_180:
|
nh = ew;
|
||||||
sig = "state,rotate,180";
|
for (i = 0; i < nh; i++)
|
||||||
|
{
|
||||||
|
for (j = 0; j < nw; j++)
|
||||||
|
{
|
||||||
|
ni = nw - j - 1;
|
||||||
|
nj = i;
|
||||||
|
|
||||||
|
ind = ni * nh + nj;
|
||||||
|
|
||||||
|
im_data_new[inde] = im_data[ind];
|
||||||
|
|
||||||
|
inde++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
evas_object_image_size_set(v->image, nw, nh);
|
||||||
|
evas_object_image_data_set(v->image, im_data_new);
|
||||||
|
evas_object_image_data_update_add(v->image, 0, 0, nw, nh);
|
||||||
|
_viewer_zoom_fit_apply(v);
|
||||||
break;
|
break;
|
||||||
case EPHOTO_ORIENT_270:
|
case EPHOTO_ORIENT_270:
|
||||||
sig = "state,rotate,270";
|
im_data_new = malloc(sizeof(unsigned int) * ew * eh);
|
||||||
|
nw = eh;
|
||||||
|
nh = ew;
|
||||||
|
for (i = 0; i < nh; i++)
|
||||||
|
{
|
||||||
|
for (j = 0; j < nw; j++)
|
||||||
|
{
|
||||||
|
ni = j;
|
||||||
|
nj = nh - i - 1;
|
||||||
|
|
||||||
|
ind = ni * nh + nj;
|
||||||
|
|
||||||
|
im_data_new[inde] = im_data[ind];
|
||||||
|
|
||||||
|
inde++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
evas_object_image_size_set(v->image, nw, nh);
|
||||||
|
evas_object_image_data_set(v->image, im_data_new);
|
||||||
|
evas_object_image_data_update_add(v->image, 0, 0, nw, nh);
|
||||||
|
_viewer_zoom_fit_apply(v);
|
||||||
break;
|
break;
|
||||||
case EPHOTO_ORIENT_FLIP_HORIZ:
|
case EPHOTO_ORIENT_FLIP_HORIZ:
|
||||||
sig = "state,flip,horiz";
|
im_data_new = malloc(sizeof(unsigned int) * ew * eh);
|
||||||
|
for (i = 0; i < eh; i++)
|
||||||
|
{
|
||||||
|
for (j = 0; j < ew; j++)
|
||||||
|
{
|
||||||
|
ni = i;
|
||||||
|
nj = ew - j - 1;
|
||||||
|
|
||||||
|
ind = ni * ew + nj;
|
||||||
|
|
||||||
|
im_data_new[inde] = im_data[ind];
|
||||||
|
|
||||||
|
inde++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
evas_object_image_size_set(v->image, ew, eh);
|
||||||
|
evas_object_image_data_set(v->image, im_data_new);
|
||||||
|
evas_object_image_data_update_add(v->image, 0, 0, ew, eh);
|
||||||
break;
|
break;
|
||||||
case EPHOTO_ORIENT_FLIP_VERT:
|
case EPHOTO_ORIENT_FLIP_VERT:
|
||||||
sig = "state,flip,vert";
|
im_data_new = malloc(sizeof(unsigned int) * ew * eh);
|
||||||
break;
|
for (i = 0; i < eh; i++)
|
||||||
case EPHOTO_ORIENT_FLIP_HORIZ_90:
|
{
|
||||||
sig = "state,flip,horiz,90";
|
for (j = 0; j < ew; j++)
|
||||||
break;
|
{
|
||||||
case EPHOTO_ORIENT_FLIP_VERT_90:
|
ni = eh - i - 1;
|
||||||
sig = "state,flip,vert,90";
|
nj = j;
|
||||||
|
|
||||||
|
ind = ni * ew + nj;
|
||||||
|
|
||||||
|
im_data_new[inde] = im_data[ind];
|
||||||
|
|
||||||
|
inde++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
evas_object_image_size_set(v->image, ew, eh);
|
||||||
|
evas_object_image_data_set(v->image, im_data_new);
|
||||||
|
evas_object_image_data_update_add(v->image, 0, 0, ew, eh);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
DBG("orient: %d, signal '%s'", sb->orient, sig);
|
|
||||||
edje_object_signal_emit(sb->orient_edje, sig, "ephoto");
|
|
||||||
#else
|
#else
|
||||||
(void)sb;
|
(void)sb;
|
||||||
#endif
|
#endif
|
||||||
|
@ -286,132 +311,28 @@ _orient_apply(Ephoto_Single_Browser *sb)
|
||||||
static void
|
static void
|
||||||
_rotate_counterclock(Ephoto_Single_Browser *sb)
|
_rotate_counterclock(Ephoto_Single_Browser *sb)
|
||||||
{
|
{
|
||||||
switch (sb->orient)
|
sb->orient = EPHOTO_ORIENT_270;
|
||||||
{
|
|
||||||
case EPHOTO_ORIENT_0:
|
|
||||||
sb->orient = EPHOTO_ORIENT_270;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_90:
|
|
||||||
sb->orient = EPHOTO_ORIENT_0;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_180:
|
|
||||||
sb->orient = EPHOTO_ORIENT_90;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_270:
|
|
||||||
sb->orient = EPHOTO_ORIENT_180;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_FLIP_HORIZ:
|
|
||||||
sb->orient = EPHOTO_ORIENT_FLIP_HORIZ_90;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_FLIP_VERT:
|
|
||||||
sb->orient = EPHOTO_ORIENT_FLIP_VERT_90;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_FLIP_HORIZ_90:
|
|
||||||
sb->orient = EPHOTO_ORIENT_FLIP_VERT;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_FLIP_VERT_90:
|
|
||||||
sb->orient = EPHOTO_ORIENT_FLIP_HORIZ;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
_orient_apply(sb);
|
_orient_apply(sb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_rotate_clock(Ephoto_Single_Browser *sb)
|
_rotate_clock(Ephoto_Single_Browser *sb)
|
||||||
{
|
{
|
||||||
switch (sb->orient)
|
sb->orient = EPHOTO_ORIENT_90;
|
||||||
{
|
|
||||||
case EPHOTO_ORIENT_0:
|
|
||||||
sb->orient = EPHOTO_ORIENT_90;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_90:
|
|
||||||
sb->orient = EPHOTO_ORIENT_180;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_180:
|
|
||||||
sb->orient = EPHOTO_ORIENT_270;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_270:
|
|
||||||
sb->orient = EPHOTO_ORIENT_0;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_FLIP_HORIZ:
|
|
||||||
sb->orient = EPHOTO_ORIENT_FLIP_VERT_90;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_FLIP_VERT:
|
|
||||||
sb->orient = EPHOTO_ORIENT_FLIP_HORIZ_90;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_FLIP_HORIZ_90:
|
|
||||||
sb->orient = EPHOTO_ORIENT_FLIP_HORIZ;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_FLIP_VERT_90:
|
|
||||||
sb->orient = EPHOTO_ORIENT_FLIP_VERT;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
_orient_apply(sb);
|
_orient_apply(sb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_flip_horiz(Ephoto_Single_Browser *sb)
|
_flip_horiz(Ephoto_Single_Browser *sb)
|
||||||
{
|
{
|
||||||
switch (sb->orient)
|
sb->orient = EPHOTO_ORIENT_FLIP_HORIZ;
|
||||||
{
|
|
||||||
case EPHOTO_ORIENT_0:
|
|
||||||
sb->orient = EPHOTO_ORIENT_FLIP_HORIZ;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_90:
|
|
||||||
sb->orient = EPHOTO_ORIENT_FLIP_HORIZ_90;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_180:
|
|
||||||
sb->orient = EPHOTO_ORIENT_FLIP_VERT;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_270:
|
|
||||||
sb->orient = EPHOTO_ORIENT_FLIP_VERT_90;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_FLIP_HORIZ:
|
|
||||||
sb->orient = EPHOTO_ORIENT_0;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_FLIP_VERT:
|
|
||||||
sb->orient = EPHOTO_ORIENT_180;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_FLIP_HORIZ_90:
|
|
||||||
sb->orient = EPHOTO_ORIENT_90;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_FLIP_VERT_90:
|
|
||||||
sb->orient = EPHOTO_ORIENT_270;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
_orient_apply(sb);
|
_orient_apply(sb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_flip_vert(Ephoto_Single_Browser *sb)
|
_flip_vert(Ephoto_Single_Browser *sb)
|
||||||
{
|
{
|
||||||
switch (sb->orient)
|
sb->orient = EPHOTO_ORIENT_FLIP_VERT;
|
||||||
{
|
|
||||||
case EPHOTO_ORIENT_0:
|
|
||||||
sb->orient = EPHOTO_ORIENT_FLIP_VERT;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_90:
|
|
||||||
sb->orient = EPHOTO_ORIENT_FLIP_VERT_90;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_180:
|
|
||||||
sb->orient = EPHOTO_ORIENT_FLIP_HORIZ;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_270:
|
|
||||||
sb->orient = EPHOTO_ORIENT_FLIP_HORIZ_90;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_FLIP_HORIZ:
|
|
||||||
sb->orient = EPHOTO_ORIENT_180;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_FLIP_VERT:
|
|
||||||
sb->orient = EPHOTO_ORIENT_0;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_FLIP_HORIZ_90:
|
|
||||||
sb->orient = EPHOTO_ORIENT_270;
|
|
||||||
break;
|
|
||||||
case EPHOTO_ORIENT_FLIP_VERT_90:
|
|
||||||
sb->orient = EPHOTO_ORIENT_90;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
_orient_apply(sb);
|
_orient_apply(sb);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -513,16 +434,14 @@ _ephoto_single_browser_recalc(Ephoto_Single_Browser *sb)
|
||||||
if (sb->entry)
|
if (sb->entry)
|
||||||
{
|
{
|
||||||
const char *bname = ecore_file_file_get(sb->entry->path);
|
const char *bname = ecore_file_file_get(sb->entry->path);
|
||||||
sb->viewer = _viewer_add(sb->orient_layout, sb->entry->path);
|
sb->viewer = _viewer_add(sb->layout, sb->entry->path);
|
||||||
elm_layout_content_set
|
elm_layout_content_set
|
||||||
(sb->orient_layout, "elm.swallow.content", sb->viewer);
|
(sb->layout, "elm.swallow.content", sb->viewer);
|
||||||
evas_object_show(sb->viewer);
|
evas_object_show(sb->viewer);
|
||||||
evas_object_event_callback_add
|
evas_object_event_callback_add
|
||||||
(sb->viewer, EVAS_CALLBACK_MOUSE_WHEEL, _mouse_wheel, sb);
|
(sb->viewer, EVAS_CALLBACK_MOUSE_WHEEL, _mouse_wheel, sb);
|
||||||
edje_object_part_text_set(sb->edje, "elm.text.title", bname);
|
edje_object_part_text_set(sb->edje, "elm.text.title", bname);
|
||||||
ephoto_title_set(sb->ephoto, bname);
|
ephoto_title_set(sb->ephoto, bname);;
|
||||||
sb->orient = ephoto_file_orient_get(sb->entry->path);
|
|
||||||
_orient_apply(sb);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
elm_object_focus(sb->layout);
|
elm_object_focus(sb->layout);
|
||||||
|
@ -942,17 +861,6 @@ ephoto_single_browser_add(Ephoto *ephoto, Evas_Object *parent)
|
||||||
(sb->action.flip_vert, "Flip object vertically");
|
(sb->action.flip_vert, "Flip object vertically");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
sb->orient_layout = elm_layout_add(layout);
|
|
||||||
if (!elm_layout_theme_set
|
|
||||||
(sb->orient_layout, "layout", "ephoto", "orient"))
|
|
||||||
{
|
|
||||||
ERR("could not load style 'ephoto/orient' from theme");
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
sb->orient_edje = elm_layout_edje_get(sb->orient_layout);
|
|
||||||
elm_layout_content_set(sb->layout, "elm.swallow.content", sb->orient_layout);
|
|
||||||
elm_object_focus_custom_chain_append(sb->layout, sb->orient_layout, NULL);
|
|
||||||
|
|
||||||
_ephoto_single_browser_toolbar_eval(sb);
|
_ephoto_single_browser_toolbar_eval(sb);
|
||||||
|
|
||||||
sb->handlers = eina_list_append
|
sb->handlers = eina_list_append
|
||||||
|
|
Loading…
Reference in New Issue