rage - yet more browser mode related improvements
make video hide on stop so when browser i sback there isnt a dead video in the background make poster mode explicit so timeline thumbs work again add spacing between browser item and make label multi-line ...
This commit is contained in:
parent
f9c47fb521
commit
bbda9033aa
|
@ -236,6 +236,13 @@ collections {
|
|||
|
||||
part { name: "rage.content"; type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "novideo" 0.0;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "video" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -452,6 +459,15 @@ collections {
|
|||
target: "speaker_clip";
|
||||
target: "shadow";
|
||||
target: "statusloc";
|
||||
target: "rage.content";
|
||||
}
|
||||
program {
|
||||
signal: "state,default"; source: "rage";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "speaker_clip";
|
||||
target: "shadow";
|
||||
target: "statusloc";
|
||||
target: "rage.content";
|
||||
}
|
||||
program {
|
||||
signal: "state,video"; source: "rage";
|
||||
|
@ -459,6 +475,7 @@ collections {
|
|||
target: "speaker_clip";
|
||||
target: "shadow";
|
||||
target: "statusloc";
|
||||
target: "rage.content";
|
||||
}
|
||||
program {
|
||||
signal: "state,novideo"; source: "rage";
|
||||
|
@ -2126,7 +2143,7 @@ collections {
|
|||
rel2.offset: -1 40;
|
||||
rel2.relative: 1.0 0.0;
|
||||
color: 255 255 255 255;
|
||||
text { font: "Sans:style=Bold"; size: 20;
|
||||
text { font: "Sans:style=Bold"; size: 40;
|
||||
align: 0.0 0.0;
|
||||
min: 0 1;
|
||||
elipsis: 0;
|
||||
|
@ -2146,9 +2163,14 @@ collections {
|
|||
|
||||
group { name: "rage/browser/item";
|
||||
images.image: "win_shadow.png" COMP;
|
||||
images.image: "win_glow.png" COMP;
|
||||
images.image: "dimmer.png" COMP;
|
||||
|
||||
styles {
|
||||
style { name: "browser_item_label";
|
||||
base: "font=Sans font_size=20 color=#ffffffff wrap=mixed ellipsis=1.0";
|
||||
}
|
||||
}
|
||||
|
||||
parts {
|
||||
part { name: "shadow"; mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
|
@ -2170,22 +2192,20 @@ collections {
|
|||
rel2.to: "clip";
|
||||
}
|
||||
}
|
||||
part { name: "glow"; mouse_events: 0;
|
||||
part { name: "glow"; type: RECT; mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
image.normal: "win_glow.png";
|
||||
image.border: 9 9 9 9;
|
||||
image.middle: 0;
|
||||
rel1.to: "clip";
|
||||
rel1.offset: -5 -5;
|
||||
rel2.to: "clip";
|
||||
rel2.offset: 4 4;
|
||||
fill.smooth: 0;
|
||||
color: 255 255 255 0;
|
||||
color: 51 153 255 0;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "selected" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
color: 255 255 255 255;
|
||||
rel1.to: "p1";
|
||||
rel1.relative: 0.75 0.75;
|
||||
rel2.to: "p2";
|
||||
rel2.relative: 0.25 0.25;
|
||||
color: 51 153 255 255;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
|
@ -2194,18 +2214,45 @@ collections {
|
|||
action: STATE_SET "selected" 0.0;
|
||||
transition: SINUSOIDAL 0.1;
|
||||
target: "glow";
|
||||
target: "clip";
|
||||
}
|
||||
program {
|
||||
signal: "rage,state,unselected"; source: "rage";
|
||||
action: STATE_SET "default" 0.0;
|
||||
transition: SINUSOIDAL 0.3;
|
||||
target: "glow";
|
||||
target: "clip";
|
||||
}
|
||||
|
||||
part { name: "p1"; type: SPACER;
|
||||
scale: 1;
|
||||
description { state: "default" 0.0;
|
||||
rel2.relative: 0.0 0.0;
|
||||
align: 0.0 0.0;
|
||||
min: 16 16;
|
||||
fixed: 1 1;
|
||||
}
|
||||
}
|
||||
part { name: "p2"; type: SPACER;
|
||||
scale: 1;
|
||||
description { state: "default" 0.0;
|
||||
rel1.relative: 1.0 1.0;
|
||||
align: 1.0 1.0;
|
||||
min: 16 16;
|
||||
fixed: 1 1;
|
||||
}
|
||||
}
|
||||
part { name: "clip"; type: RECT;
|
||||
description { state: "default" 0.0;
|
||||
rel1.offset: 4 4;
|
||||
rel2.offset: -5 -5;
|
||||
rel1.to: "p1";
|
||||
rel1.relative: 1.0 1.0;
|
||||
rel2.to: "p2";
|
||||
rel2.relative: 0.0 0.0;
|
||||
color: 192 192 192 255;
|
||||
}
|
||||
description { state: "selected" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
color: 255 255 255 255;
|
||||
}
|
||||
}
|
||||
part { name: "rage.content"; type: SWALLOW;
|
||||
|
@ -2224,15 +2271,19 @@ collections {
|
|||
rel2.to: "clip";
|
||||
}
|
||||
}
|
||||
part { name: "rage.title"; type: TEXT; mouse_events: 0;
|
||||
part { name: "rage.title"; type: TEXTBLOCK; mouse_events: 0;
|
||||
clip_to: "clip";
|
||||
scale: 1;
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
align: 0.0 1.0;
|
||||
rel1.offset: 8 8;
|
||||
rel1.to: "clip";
|
||||
rel2.offset: -9 -9;
|
||||
rel2.to: "clip";
|
||||
color: 255 255 255 255;
|
||||
text { font: "Sans"; size: 12;
|
||||
text { font: "Sans"; size: 20;
|
||||
style: "browser_item_label";
|
||||
align: 0.0 1.0;
|
||||
min: 0 1;
|
||||
elipsis: 0;
|
||||
|
|
|
@ -58,8 +58,8 @@ _item_size_get(Evas_Object *win, Evas_Coord *w, Evas_Coord *h)
|
|||
|
||||
elm_coords_finger_size_adjust(1, &sz, 1, &sz);
|
||||
evas_object_geometry_get(win, NULL, NULL, w, h);
|
||||
*w = *w / 8;
|
||||
*h = *h / 3;
|
||||
*w = (double)(*w) / 5.0;
|
||||
*h = (double)(*h) / 1.5;
|
||||
if (*w < sz) *w = sz;
|
||||
if (*h < sz) *h = sz;
|
||||
}
|
||||
|
@ -266,6 +266,7 @@ _entry_files_pop(Evas_Object *win, Entry *entry)
|
|||
elm_layout_signal_callback_add(o, "rage,selected", "rage", _cb_file_selected, win);
|
||||
|
||||
o = videothumb_add(win);
|
||||
videothumb_poster_mode_set(o, EINA_TRUE);
|
||||
evas_object_smart_callback_add(o, "data", _cb_vidthumb_data, base);
|
||||
evas_object_data_set(o, "entry", entry);
|
||||
evas_object_data_set(o, "file", file);
|
||||
|
|
|
@ -113,6 +113,7 @@ key_handle(Evas_Object *win, Evas_Event_Key_Down *ev)
|
|||
{
|
||||
video_stop(inf->vid);
|
||||
elm_layout_signal_emit(inf->lay, "action,stop", "rage");
|
||||
elm_layout_signal_emit(inf->lay, "state,default", "rage");
|
||||
if (inf->browse_mode) browser_show(win);
|
||||
}
|
||||
else if (!strcmp(ev->keyname, "c"))
|
||||
|
|
|
@ -11,6 +11,7 @@ static Ecore_Timer *vid_timeout = NULL;
|
|||
static Eina_Bool is_audio = EINA_FALSE;
|
||||
static Eina_Bool is_movie = EINA_FALSE;
|
||||
static int iw, ih, incr = 0;
|
||||
static Eina_Bool poster = 0;
|
||||
static unsigned char sum[20];
|
||||
static const char *file = NULL;
|
||||
|
||||
|
@ -53,7 +54,7 @@ _cb_loaded(void *data, Evas_Object *obj, void *info EINA_UNUSED)
|
|||
_cb_fetched, (void *)file);
|
||||
return;
|
||||
}
|
||||
else
|
||||
else if (poster)
|
||||
{
|
||||
double len = emotion_object_play_length_get(obj);
|
||||
double ratio = emotion_object_ratio_get(obj);
|
||||
|
@ -149,7 +150,7 @@ _cb_timeout(void *data EINA_UNUSED)
|
|||
EAPI_MAIN int
|
||||
elm_main(int argc, char **argv)
|
||||
{
|
||||
if (argc < 3) exit(1);
|
||||
if (argc < 4) exit(1);
|
||||
elm_need_efreet();
|
||||
|
||||
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
|
||||
|
@ -171,6 +172,7 @@ elm_main(int argc, char **argv)
|
|||
vid = emotion_object_add(evas_object_evas_get(win));
|
||||
file = argv[1];
|
||||
incr = atoi(argv[2]);
|
||||
poster = atoi(argv[3]);
|
||||
|
||||
const char *extn = strchr(file, '.');
|
||||
if (extn)
|
||||
|
|
|
@ -21,6 +21,7 @@ struct _Videothumb
|
|||
int iw, ih;
|
||||
Evas_Coord w, h;
|
||||
Eina_Bool seen : 1;
|
||||
Eina_Bool poster_mode : 1;
|
||||
};
|
||||
|
||||
static Evas_Smart *_smart = NULL;
|
||||
|
@ -142,8 +143,9 @@ _videothumb_launch_do(Evas_Object *obj)
|
|||
sd->exe_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
|
||||
_cb_thumb_exe, obj);
|
||||
snprintf(buf, sizeof(buf),
|
||||
"%s/rage/utils/rage_thumb %s 10000 >& /dev/null",
|
||||
libdir, s);
|
||||
"%s/rage/utils/rage_thumb %s 10000 %i >& /dev/null",
|
||||
libdir, s, sd->poster_mode ? 1 : 0);
|
||||
printf("RUN: %s\n", buf);
|
||||
sd->thumb_exe = ecore_exe_pipe_run(buf,
|
||||
ECORE_EXE_TERM_WITH_PARENT |
|
||||
ECORE_EXE_NOT_LEADER,
|
||||
|
@ -243,6 +245,8 @@ _videothumb_image_load(Evas_Object *obj)
|
|||
if (!sd->file) return;
|
||||
sd->o_img2 = evas_object_image_filled_add(evas_object_evas_get(obj));
|
||||
evas_object_smart_member_add(sd->o_img2, obj);
|
||||
if (sd->poster_mode)
|
||||
{
|
||||
artfile = albumart_file_get(sd->realpath);
|
||||
if (artfile)
|
||||
{
|
||||
|
@ -253,6 +257,7 @@ _videothumb_image_load(Evas_Object *obj)
|
|||
}
|
||||
free(artfile);
|
||||
}
|
||||
}
|
||||
if (!found)
|
||||
{
|
||||
if (!sha1((unsigned char *)sd->realpath, strlen(sd->realpath), sum))
|
||||
|
@ -485,6 +490,14 @@ videothumb_add(Evas_Object *parent)
|
|||
return obj;
|
||||
}
|
||||
|
||||
void
|
||||
videothumb_poster_mode_set(Evas_Object *obj, Eina_Bool poster_mode)
|
||||
{
|
||||
Videothumb *sd = evas_object_smart_data_get(obj);
|
||||
if (!sd) return;
|
||||
sd->poster_mode = poster_mode;
|
||||
}
|
||||
|
||||
void
|
||||
videothumb_file_set(Evas_Object *obj, const char *file, double pos)
|
||||
{
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#define _VIDEOTHUMB_H__ 1
|
||||
|
||||
Evas_Object *videothumb_add(Evas_Object *parent);
|
||||
void videothumb_poster_mode_set(Evas_Object *obj, Eina_Bool poster_mode);
|
||||
void videothumb_file_set(Evas_Object *obj, const char *file, double pos);
|
||||
void videothumb_autocycle_set(Evas_Object *obj, Eina_Bool enabled);
|
||||
void videothumb_size_get(Evas_Object *obj, int *w, int *h);
|
||||
|
|
|
@ -250,26 +250,27 @@ win_video_restart(Evas_Object *win)
|
|||
_restart_vid(win, inf->lay, inf->vid, vid->file, vid->sub);
|
||||
}
|
||||
|
||||
void
|
||||
Eina_Bool
|
||||
win_video_next(Evas_Object *win)
|
||||
{
|
||||
Inf *inf = evas_object_data_get(win, "inf");
|
||||
Eina_List *l;
|
||||
Winvid_Entry *vid;
|
||||
|
||||
if (!inf->file_list) return;
|
||||
if (!inf->file_list) return EINA_FALSE;
|
||||
if (!inf->file_cur) l = inf->file_list;
|
||||
else l = inf->file_cur->next;
|
||||
if (!l)
|
||||
{
|
||||
if (inf->browse_mode) browser_show(win);
|
||||
else elm_exit();
|
||||
return;
|
||||
return EINA_FALSE;
|
||||
}
|
||||
inf->file_cur = l;
|
||||
vid = l->data;
|
||||
_restart_vid(win, inf->lay, inf->vid, vid->file, vid->sub);
|
||||
win_list_sel_update(win);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -35,7 +35,7 @@ void win_do_next(Evas_Object *win);
|
|||
|
||||
// lower level controls
|
||||
void win_video_restart(Evas_Object *win);
|
||||
void win_video_next(Evas_Object *win);
|
||||
Eina_Bool win_video_next(Evas_Object *win);
|
||||
void win_video_prev(Evas_Object *win);
|
||||
void win_video_first(Evas_Object *win);
|
||||
void win_video_last(Evas_Object *win);
|
||||
|
|
|
@ -25,7 +25,10 @@ _cb_stop_next(void *data)
|
|||
{
|
||||
Inf *inf = evas_object_data_get(data, "inf");
|
||||
inf->next_job = NULL;
|
||||
win_video_next(data);
|
||||
if (!win_video_next(data))
|
||||
{
|
||||
elm_layout_signal_emit(inf->lay, "state,default", "rage");
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -39,6 +42,7 @@ _cb_stop(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
|
|||
}
|
||||
else
|
||||
{
|
||||
elm_layout_signal_emit(inf->lay, "state,default", "rage");
|
||||
if (inf->browse_mode) browser_show(data);
|
||||
else elm_exit();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue