more options sections -> translucent moved to video and now u can

select video engine and mute state in the gui.



SVN revision: 72282
This commit is contained in:
Carsten Haitzler 2012-06-17 09:26:01 +00:00
parent e5570a7a9f
commit 28be56ac42
10 changed files with 187 additions and 32 deletions

View File

@ -85,7 +85,7 @@ collections {
part { name: "terminology.options"; type: SWALLOW;
description { state: "default" 0.0;
fixed: 1 1;
min: 120 120;
min: 80 80;
align: 0.0 0.5;
rel1 {
relative: 1.0 0.02;

View File

@ -17,6 +17,7 @@ media.c media.h \
options.c options.h \
options_behavior.c options_behavior.h \
options_font.c options_font.h \
options_video.c options_video.h \
termio.c termio.h \
termpty.c termpty.h \
utf8.c utf8.h \

View File

@ -112,6 +112,12 @@ main_media_update(void)
}
}
void
main_media_mute_update(void)
{
if (media) media_mute_set(media, config->mute);
}
EAPI_MAIN int
elm_main(int argc, char **argv)
{

View File

@ -1 +1,3 @@
void main_trans_update(void);
void main_media_update(void);
void main_media_mute_update(void);

View File

@ -560,3 +560,12 @@ media_add(Evas_Object *parent, const char *src, int mode, int *type)
else if (_is_fmt(src, extn_mov)) _type_mov_init(obj);
return obj;
}
void
media_mute_set(Evas_Object *obj, Eina_Bool mute)
{
Media *sd = evas_object_smart_data_get(obj);
if (!sd) return;
if (sd->type != TYPE_MOV) return;
emotion_object_audio_mute_set(sd->o_img, mute);
}

View File

@ -6,3 +6,4 @@
#define TYPE_MOV 3
Evas_Object *media_add(Evas_Object *parent, const char *src, int mode, int *type);
void media_mute_set(Evas_Object *obj, Eina_Bool mute);

View File

@ -2,6 +2,7 @@
#include "options.h"
#include "options_font.h"
#include "options_behavior.h"
#include "options_video.h"
static Evas_Object *op_frame, *op_box = NULL, *op_toolbar = NULL, *op_opbox = NULL;
static Eina_Bool op_out = EINA_FALSE;
@ -27,6 +28,13 @@ _cb_op_wallpaper(void *data, Evas_Object *obj, void *event)
// XXX: not done yet
}
static void
_cb_op_video(void *data, Evas_Object *obj, void *event)
{
elm_box_clear(op_opbox);
options_video(op_opbox, data);
}
static void
_cb_op_behavior(void *data, Evas_Object *obj, void *event)
{
@ -53,6 +61,12 @@ options_toggle(Evas_Object *win, Evas_Object *bg, Evas_Object *term)
elm_object_content_set(op_frame, o);
evas_object_show(o);
op_opbox = o = elm_box_add(win);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_pack_end(op_box, o);
evas_object_show(o);
op_toolbar = o = elm_toolbar_add(win);
elm_toolbar_horizontal_set(o, EINA_FALSE);
elm_object_style_set(o, "item_horizontal");
@ -64,24 +78,20 @@ options_toggle(Evas_Object *win, Evas_Object *bg, Evas_Object *term)
elm_toolbar_menu_parent_set(o, win);
elm_toolbar_homogeneous_set(o, EINA_FALSE);
it_fn = elm_toolbar_item_append(o, "preferences-desktop-font", "Font",
_cb_op_font, term);
it_th = elm_toolbar_item_append(o, "preferences-desktop-theme", "Theme",
_cb_op_theme, NULL);
it_wp = elm_toolbar_item_append(o, "video-display", "Wallpaper",
_cb_op_wallpaper, NULL);
it_bh = elm_toolbar_item_append(o, "system-run", "Behavior",
_cb_op_behavior, term);
it_fn = elm_toolbar_item_append(o, "preferences-desktop-font",
"Font", _cb_op_font, term);
it_th = elm_toolbar_item_append(o, "preferences-desktop-theme",
"Theme", _cb_op_theme, NULL);
it_wp = elm_toolbar_item_append(o, "preferences-desktop-wallpaper",
"Wallpaper", _cb_op_wallpaper, NULL);
it_wp = elm_toolbar_item_append(o, "preferences-desktop-multimedia",
"Video", _cb_op_video, NULL);
it_bh = elm_toolbar_item_append(o, "system-run",
"Behavior", _cb_op_behavior, term);
elm_box_pack_end(op_box, o);
evas_object_show(o);
op_opbox = o = elm_box_add(win);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_pack_end(op_box, o);
evas_object_show(o);
elm_toolbar_item_selected_set(it_fn, EINA_TRUE);
evas_smart_objects_calculate(evas_object_evas_get(win));

View File

@ -2,10 +2,10 @@
#include "config.h"
#include "termio.h"
#include "options.h"
#include "options_font.h"
#include "options_behavior.h"
#include "main.h"
static Evas_Object *op_sbslider, *op_jumpcheck, *op_trans, *op_wordsep;
static Evas_Object *op_sbslider, *op_jumpcheck, *op_wordsep;
static void
_cb_op_behavior_jump_chg(void *data, Evas_Object *obj, void *event)
@ -15,14 +15,6 @@ _cb_op_behavior_jump_chg(void *data, Evas_Object *obj, void *event)
config_save();
}
static void
_cb_op_behavior_trans_chg(void *data, Evas_Object *obj, void *event)
{
config->translucent = elm_check_state_get(obj);
main_trans_update();
config_save();
}
static void
_cb_op_behavior_wsep_chg(void *data, Evas_Object *obj, void *event)
{
@ -67,16 +59,13 @@ options_behavior(Evas_Object *opbox, Evas_Object *term)
evas_object_smart_callback_add(o, "changed",
_cb_op_behavior_jump_chg, term);
op_jumpcheck = o = elm_check_add(opbox);
o = elm_separator_add(opbox);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
elm_object_text_set(o, "Translucent");
elm_check_state_set(o, config->translucent);
elm_separator_horizontal_set(o, EINA_TRUE);
elm_box_pack_end(opbox, o);
evas_object_show(o);
evas_object_smart_callback_add(o, "changed",
_cb_op_behavior_trans_chg, NULL);
o = elm_label_add(opbox);
evas_object_size_hint_weight_set(o, 0.0, 0.0);
evas_object_size_hint_align_set(o, 0.0, 0.5);
@ -101,6 +90,13 @@ options_behavior(Evas_Object *opbox, Evas_Object *term)
evas_object_smart_callback_add(o, "changed",
_cb_op_behavior_wsep_chg, term);
o = elm_separator_add(opbox);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
elm_separator_horizontal_set(o, EINA_TRUE);
elm_box_pack_end(opbox, o);
evas_object_show(o);
o = elm_label_add(opbox);
evas_object_size_hint_weight_set(o, 0.0, 0.0);
evas_object_size_hint_align_set(o, 0.0, 0.5);
@ -121,7 +117,6 @@ options_behavior(Evas_Object *opbox, Evas_Object *term)
evas_object_smart_callback_add(o, "delay,changed",
_cb_op_behavior_sback_chg, term);
elm_box_pack_end(opbox, o);
evas_object_size_hint_weight_set(opbox, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(opbox, EVAS_HINT_FILL, 0.0);
evas_object_show(o);

130
src/bin/options_video.c Normal file
View File

@ -0,0 +1,130 @@
#include <Elementary.h>
#include "config.h"
#include "termio.h"
#include "options.h"
#include "options_video.h"
#include "main.h"
static Evas_Object *op_trans, *op_mute, *op_vidmod;
static void
_cb_op_video_trans_chg(void *data, Evas_Object *obj, void *event)
{
config->translucent = elm_check_state_get(obj);
main_trans_update();
config_save();
}
static void
_cb_op_video_mute_chg(void *data, Evas_Object *obj, void *event)
{
config->mute = elm_check_state_get(obj);
main_media_mute_update();
config_save();
}
static void
_cb_op_video_vidmod_chg(void *data, Evas_Object *obj, void *event)
{
int v = elm_radio_value_get(obj);
if (v == config->vidmod) return;
config->vidmod = v;
main_media_update();
config_save();
}
void
options_video(Evas_Object *opbox, Evas_Object *term)
{
Evas_Object *o;
char *txt;
op_trans = o = elm_check_add(opbox);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
elm_object_text_set(o, "Translucent");
elm_check_state_set(o, config->translucent);
elm_box_pack_end(opbox, o);
evas_object_show(o);
evas_object_smart_callback_add(o, "changed",
_cb_op_video_trans_chg, NULL);
o = elm_separator_add(opbox);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
elm_separator_horizontal_set(o, EINA_TRUE);
elm_box_pack_end(opbox, o);
evas_object_show(o);
op_mute = o = elm_check_add(opbox);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
elm_object_text_set(o, "Audo muted");
elm_check_state_set(o, config->mute);
elm_box_pack_end(opbox, o);
evas_object_show(o);
evas_object_smart_callback_add(o, "changed",
_cb_op_video_mute_chg, NULL);
o = elm_separator_add(opbox);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
elm_separator_horizontal_set(o, EINA_TRUE);
elm_box_pack_end(opbox, o);
evas_object_show(o);
o = elm_label_add(opbox);
evas_object_size_hint_weight_set(o, 0.0, 0.0);
evas_object_size_hint_align_set(o, 0.0, 0.5);
elm_object_text_set(o, "Video Engine:");
elm_box_pack_end(opbox, o);
evas_object_show(o);
op_vidmod = o = elm_radio_add(opbox);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
elm_object_text_set(o, "Automatic");
elm_radio_state_value_set(o, 0);
elm_box_pack_end(opbox, o);
evas_object_show(o);
evas_object_smart_callback_add(o, "changed",
_cb_op_video_vidmod_chg, NULL);
o = elm_radio_add(opbox);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
elm_object_text_set(o, "Gstreamer");
elm_radio_state_value_set(o, 1);
elm_radio_group_add(o, op_vidmod);
elm_box_pack_end(opbox, o);
evas_object_show(o);
evas_object_smart_callback_add(o, "changed",
_cb_op_video_vidmod_chg, NULL);
o = elm_radio_add(opbox);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
elm_object_text_set(o, "Xine");
elm_radio_state_value_set(o, 2);
elm_radio_group_add(o, op_vidmod);
elm_box_pack_end(opbox, o);
evas_object_show(o);
evas_object_smart_callback_add(o, "changed",
_cb_op_video_vidmod_chg, NULL);
o = elm_radio_add(opbox);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
elm_object_text_set(o, "Generic (VLC)");
elm_radio_state_value_set(o, 3);
elm_radio_group_add(o, op_vidmod);
elm_box_pack_end(opbox, o);
evas_object_show(o);
evas_object_smart_callback_add(o, "changed",
_cb_op_video_vidmod_chg, NULL);
elm_radio_value_set(o, config->vidmod);
evas_object_size_hint_weight_set(opbox, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(opbox, EVAS_HINT_FILL, 0.0);
evas_object_show(o);
}

1
src/bin/options_video.h Normal file
View File

@ -0,0 +1 @@
void options_video(Evas_Object *opbox, Evas_Object *term);