From 28be56ac4255d250999766e243fc431d45df6c45 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sun, 17 Jun 2012 09:26:01 +0000 Subject: [PATCH] more options sections -> translucent moved to video and now u can select video engine and mute state in the gui. SVN revision: 72282 --- data/themes/default.edc | 2 +- src/bin/Makefile.am | 1 + src/bin/main.c | 6 ++ src/bin/main.h | 2 + src/bin/media.c | 9 +++ src/bin/media.h | 1 + src/bin/options.c | 38 +++++++---- src/bin/options_behavior.c | 29 ++++----- src/bin/options_video.c | 130 +++++++++++++++++++++++++++++++++++++ src/bin/options_video.h | 1 + 10 files changed, 187 insertions(+), 32 deletions(-) create mode 100644 src/bin/options_video.c create mode 100644 src/bin/options_video.h diff --git a/data/themes/default.edc b/data/themes/default.edc index 0bb1028e..7c7f9e55 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -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; diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index e437c2ea..59f3e924 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -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 \ diff --git a/src/bin/main.c b/src/bin/main.c index 5b7971e2..17b845b1 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -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) { diff --git a/src/bin/main.h b/src/bin/main.h index 216876c6..2d4a25eb 100644 --- a/src/bin/main.h +++ b/src/bin/main.h @@ -1 +1,3 @@ void main_trans_update(void); +void main_media_update(void); +void main_media_mute_update(void); diff --git a/src/bin/media.c b/src/bin/media.c index 4555271c..13edd756 100644 --- a/src/bin/media.c +++ b/src/bin/media.c @@ -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); +} diff --git a/src/bin/media.h b/src/bin/media.h index 8dd30e1c..17797579 100644 --- a/src/bin/media.h +++ b/src/bin/media.h @@ -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); diff --git a/src/bin/options.c b/src/bin/options.c index a8429eb7..9bef6385 100644 --- a/src/bin/options.c +++ b/src/bin/options.c @@ -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)); diff --git a/src/bin/options_behavior.c b/src/bin/options_behavior.c index a23e2db3..1e2d384b 100644 --- a/src/bin/options_behavior.c +++ b/src/bin/options_behavior.c @@ -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); diff --git a/src/bin/options_video.c b/src/bin/options_video.c new file mode 100644 index 00000000..35408bfe --- /dev/null +++ b/src/bin/options_video.c @@ -0,0 +1,130 @@ +#include +#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); +} diff --git a/src/bin/options_video.h b/src/bin/options_video.h new file mode 100644 index 00000000..18274d2e --- /dev/null +++ b/src/bin/options_video.h @@ -0,0 +1 @@ +void options_video(Evas_Object *opbox, Evas_Object *term);