diff --git a/data/flags/ad_flag.png b/data/flags/ad_flag.png index a970afc3c..619810ec9 100644 Binary files a/data/flags/ad_flag.png and b/data/flags/ad_flag.png differ diff --git a/data/flags/af_flag.png b/data/flags/af_flag.png index 84f583021..4145511a9 100644 Binary files a/data/flags/af_flag.png and b/data/flags/af_flag.png differ diff --git a/data/flags/al_flag.png b/data/flags/al_flag.png index fec5a7502..9b419538b 100644 Binary files a/data/flags/al_flag.png and b/data/flags/al_flag.png differ diff --git a/data/flags/am_flag.png b/data/flags/am_flag.png index 74d914800..546b4963a 100644 Binary files a/data/flags/am_flag.png and b/data/flags/am_flag.png differ diff --git a/data/flags/ara_flag.png b/data/flags/ara_flag.png index c1b17643d..8618027bd 100644 Binary files a/data/flags/ara_flag.png and b/data/flags/ara_flag.png differ diff --git a/data/flags/at_flag.png b/data/flags/at_flag.png index c9851fe60..0b129b07f 100644 Binary files a/data/flags/at_flag.png and b/data/flags/at_flag.png differ diff --git a/data/flags/az_flag.png b/data/flags/az_flag.png index 1511ee05e..ea04f3796 100644 Binary files a/data/flags/az_flag.png and b/data/flags/az_flag.png differ diff --git a/data/flags/ba_flag.png b/data/flags/ba_flag.png index 79920af51..f0dba2026 100644 Binary files a/data/flags/ba_flag.png and b/data/flags/ba_flag.png differ diff --git a/data/flags/bd_flag.png b/data/flags/bd_flag.png index 975b54c68..0f4c2a6fc 100644 Binary files a/data/flags/bd_flag.png and b/data/flags/bd_flag.png differ diff --git a/data/flags/be_flag.png b/data/flags/be_flag.png index 43a9442d3..074ee03a0 100644 Binary files a/data/flags/be_flag.png and b/data/flags/be_flag.png differ diff --git a/data/flags/bg_flag.png b/data/flags/bg_flag.png index c7b795738..2740adb7a 100644 Binary files a/data/flags/bg_flag.png and b/data/flags/bg_flag.png differ diff --git a/data/flags/br_flag.png b/data/flags/br_flag.png index 98bba07aa..6601a526a 100644 Binary files a/data/flags/br_flag.png and b/data/flags/br_flag.png differ diff --git a/data/flags/brai_flag.png b/data/flags/brai_flag.png index 3eda749e9..b1aa6dec7 100644 Binary files a/data/flags/brai_flag.png and b/data/flags/brai_flag.png differ diff --git a/data/flags/bt_flag.png b/data/flags/bt_flag.png index 3d0f0b01a..bddcbf895 100644 Binary files a/data/flags/bt_flag.png and b/data/flags/bt_flag.png differ diff --git a/data/flags/bw_flag.png b/data/flags/bw_flag.png index d557d29b1..47f768aaa 100644 Binary files a/data/flags/bw_flag.png and b/data/flags/bw_flag.png differ diff --git a/data/flags/by_flag.png b/data/flags/by_flag.png index 890148f2b..be39496a8 100644 Binary files a/data/flags/by_flag.png and b/data/flags/by_flag.png differ diff --git a/data/flags/ca_flag.png b/data/flags/ca_flag.png index 42c1babfa..64dfd58a0 100644 Binary files a/data/flags/ca_flag.png and b/data/flags/ca_flag.png differ diff --git a/data/flags/cd_flag.png b/data/flags/cd_flag.png index dff2fa1cb..5062f6499 100644 Binary files a/data/flags/cd_flag.png and b/data/flags/cd_flag.png differ diff --git a/data/flags/ch_flag.png b/data/flags/ch_flag.png index 5d2937934..32d9f6052 100644 Binary files a/data/flags/ch_flag.png and b/data/flags/ch_flag.png differ diff --git a/data/flags/cn_flag.png b/data/flags/cn_flag.png index 43c8498ae..9df45300d 100644 Binary files a/data/flags/cn_flag.png and b/data/flags/cn_flag.png differ diff --git a/data/flags/cz_flag.png b/data/flags/cz_flag.png index 559efd62d..b5d25623c 100644 Binary files a/data/flags/cz_flag.png and b/data/flags/cz_flag.png differ diff --git a/data/flags/de_flag.png b/data/flags/de_flag.png index cd29a19ff..190aa9be0 100644 Binary files a/data/flags/de_flag.png and b/data/flags/de_flag.png differ diff --git a/data/flags/dk_flag.png b/data/flags/dk_flag.png index 4cf042cf7..5116838f7 100644 Binary files a/data/flags/dk_flag.png and b/data/flags/dk_flag.png differ diff --git a/data/flags/ee_flag.png b/data/flags/ee_flag.png index 35fcb0e85..9535888a8 100644 Binary files a/data/flags/ee_flag.png and b/data/flags/ee_flag.png differ diff --git a/data/flags/epo_flag.png b/data/flags/epo_flag.png index dde003b0d..a6b68af8b 100644 Binary files a/data/flags/epo_flag.png and b/data/flags/epo_flag.png differ diff --git a/data/flags/es_flag.png b/data/flags/es_flag.png index ea801a381..8f518486d 100644 Binary files a/data/flags/es_flag.png and b/data/flags/es_flag.png differ diff --git a/data/flags/et_flag.png b/data/flags/et_flag.png index 62fa8c148..86281f300 100644 Binary files a/data/flags/et_flag.png and b/data/flags/et_flag.png differ diff --git a/data/flags/fi_flag.png b/data/flags/fi_flag.png index bd9e089b9..b3322bc1e 100644 Binary files a/data/flags/fi_flag.png and b/data/flags/fi_flag.png differ diff --git a/data/flags/fo_flag.png b/data/flags/fo_flag.png index cb1615352..73c1230d2 100644 Binary files a/data/flags/fo_flag.png and b/data/flags/fo_flag.png differ diff --git a/data/flags/fr_flag.png b/data/flags/fr_flag.png index cd01be597..c9e3fa1c3 100644 Binary files a/data/flags/fr_flag.png and b/data/flags/fr_flag.png differ diff --git a/data/flags/gb_flag.png b/data/flags/gb_flag.png index 9246d8cc8..edb79de29 100644 Binary files a/data/flags/gb_flag.png and b/data/flags/gb_flag.png differ diff --git a/data/flags/ge_flag.png b/data/flags/ge_flag.png index 239b3a668..bb308c646 100644 Binary files a/data/flags/ge_flag.png and b/data/flags/ge_flag.png differ diff --git a/data/flags/gh_flag.png b/data/flags/gh_flag.png index 2e1ace276..5357f2e8d 100644 Binary files a/data/flags/gh_flag.png and b/data/flags/gh_flag.png differ diff --git a/data/flags/gn_flag.png b/data/flags/gn_flag.png index 0379766f1..996acacf6 100644 Binary files a/data/flags/gn_flag.png and b/data/flags/gn_flag.png differ diff --git a/data/flags/gr_flag.png b/data/flags/gr_flag.png index e6ee4cbd6..6c4f85ef5 100644 Binary files a/data/flags/gr_flag.png and b/data/flags/gr_flag.png differ diff --git a/data/flags/hr_flag.png b/data/flags/hr_flag.png index 675758750..4f770ae7e 100644 Binary files a/data/flags/hr_flag.png and b/data/flags/hr_flag.png differ diff --git a/data/flags/hu_flag.png b/data/flags/hu_flag.png index dcbbc4396..1ec76d841 100644 Binary files a/data/flags/hu_flag.png and b/data/flags/hu_flag.png differ diff --git a/data/flags/ie_flag.png b/data/flags/ie_flag.png index 33c3db8b7..81b68f3aa 100644 Binary files a/data/flags/ie_flag.png and b/data/flags/ie_flag.png differ diff --git a/data/flags/il_flag.png b/data/flags/il_flag.png index 0d801719b..a15047808 100644 Binary files a/data/flags/il_flag.png and b/data/flags/il_flag.png differ diff --git a/data/flags/in_flag.png b/data/flags/in_flag.png index 697a0d02b..0cdc4bc08 100644 Binary files a/data/flags/in_flag.png and b/data/flags/in_flag.png differ diff --git a/data/flags/iq_flag.png b/data/flags/iq_flag.png index 4fb13e728..3c79811ac 100644 Binary files a/data/flags/iq_flag.png and b/data/flags/iq_flag.png differ diff --git a/data/flags/ir_flag.png b/data/flags/ir_flag.png index c80febd59..644939496 100644 Binary files a/data/flags/ir_flag.png and b/data/flags/ir_flag.png differ diff --git a/data/flags/is_flag.png b/data/flags/is_flag.png index d781a1232..dff82f587 100644 Binary files a/data/flags/is_flag.png and b/data/flags/is_flag.png differ diff --git a/data/flags/it_flag.png b/data/flags/it_flag.png index 270d1666c..6496adef0 100644 Binary files a/data/flags/it_flag.png and b/data/flags/it_flag.png differ diff --git a/data/flags/jp_flag.png b/data/flags/jp_flag.png index 49af2cf85..acdb40944 100644 Binary files a/data/flags/jp_flag.png and b/data/flags/jp_flag.png differ diff --git a/data/flags/ke_flag.png b/data/flags/ke_flag.png index 461992875..7c923bb29 100644 Binary files a/data/flags/ke_flag.png and b/data/flags/ke_flag.png differ diff --git a/data/flags/kg_flag.png b/data/flags/kg_flag.png index a707e21d5..084ba53e6 100644 Binary files a/data/flags/kg_flag.png and b/data/flags/kg_flag.png differ diff --git a/data/flags/kh_flag.png b/data/flags/kh_flag.png index 558fb0a75..87f420a62 100644 Binary files a/data/flags/kh_flag.png and b/data/flags/kh_flag.png differ diff --git a/data/flags/kr_flag.png b/data/flags/kr_flag.png index ae035a4f8..e541ba404 100644 Binary files a/data/flags/kr_flag.png and b/data/flags/kr_flag.png differ diff --git a/data/flags/kz_flag.png b/data/flags/kz_flag.png index b004cf5fd..e81412ea2 100644 Binary files a/data/flags/kz_flag.png and b/data/flags/kz_flag.png differ diff --git a/data/flags/la_flag.png b/data/flags/la_flag.png index 8a94ff18f..d4742c7e5 100644 Binary files a/data/flags/la_flag.png and b/data/flags/la_flag.png differ diff --git a/data/flags/latam_flag.png b/data/flags/latam_flag.png index 3480ad5c1..dd3bb3418 100644 Binary files a/data/flags/latam_flag.png and b/data/flags/latam_flag.png differ diff --git a/data/flags/lk_flag.png b/data/flags/lk_flag.png index 63d98f533..f86182305 100644 Binary files a/data/flags/lk_flag.png and b/data/flags/lk_flag.png differ diff --git a/data/flags/lt_flag.png b/data/flags/lt_flag.png index 3b2704c7e..8703074d6 100644 Binary files a/data/flags/lt_flag.png and b/data/flags/lt_flag.png differ diff --git a/data/flags/lv_flag.png b/data/flags/lv_flag.png index e32b8fc24..7f0c4ba20 100644 Binary files a/data/flags/lv_flag.png and b/data/flags/lv_flag.png differ diff --git a/data/flags/ma_flag.png b/data/flags/ma_flag.png index 8ed48d2c3..1e78d44b4 100644 Binary files a/data/flags/ma_flag.png and b/data/flags/ma_flag.png differ diff --git a/data/flags/mao_flag.png b/data/flags/mao_flag.png index 57053d499..b70c5db65 100644 Binary files a/data/flags/mao_flag.png and b/data/flags/mao_flag.png differ diff --git a/data/flags/me_flag.png b/data/flags/me_flag.png index cfee5ea8d..7f713865a 100644 Binary files a/data/flags/me_flag.png and b/data/flags/me_flag.png differ diff --git a/data/flags/mk_flag.png b/data/flags/mk_flag.png index 50815fa72..a97104116 100644 Binary files a/data/flags/mk_flag.png and b/data/flags/mk_flag.png differ diff --git a/data/flags/ml_flag.png b/data/flags/ml_flag.png index d0325baff..e2c0c492a 100644 Binary files a/data/flags/ml_flag.png and b/data/flags/ml_flag.png differ diff --git a/data/flags/mm_flag.png b/data/flags/mm_flag.png index 10c3ea27e..570e01120 100644 Binary files a/data/flags/mm_flag.png and b/data/flags/mm_flag.png differ diff --git a/data/flags/mn_flag.png b/data/flags/mn_flag.png index 1f59c7f52..930c658a3 100644 Binary files a/data/flags/mn_flag.png and b/data/flags/mn_flag.png differ diff --git a/data/flags/mt_flag.png b/data/flags/mt_flag.png index 926144330..ea4022a4a 100644 Binary files a/data/flags/mt_flag.png and b/data/flags/mt_flag.png differ diff --git a/data/flags/mv_flag.png b/data/flags/mv_flag.png index 1cd95c43f..14ca66eff 100644 Binary files a/data/flags/mv_flag.png and b/data/flags/mv_flag.png differ diff --git a/data/flags/ng_flag.png b/data/flags/ng_flag.png index 919b3456c..727b5c928 100644 Binary files a/data/flags/ng_flag.png and b/data/flags/ng_flag.png differ diff --git a/data/flags/nl_flag.png b/data/flags/nl_flag.png index 3b82622bf..cf8352a20 100644 Binary files a/data/flags/nl_flag.png and b/data/flags/nl_flag.png differ diff --git a/data/flags/no_flag.png b/data/flags/no_flag.png index 6e992f831..b508a6df8 100644 Binary files a/data/flags/no_flag.png and b/data/flags/no_flag.png differ diff --git a/data/flags/np_flag.png b/data/flags/np_flag.png index 3a38889c7..ac1a80c33 100644 Binary files a/data/flags/np_flag.png and b/data/flags/np_flag.png differ diff --git a/data/flags/ph_flag.png b/data/flags/ph_flag.png index 32c32205f..7ba2755cc 100644 Binary files a/data/flags/ph_flag.png and b/data/flags/ph_flag.png differ diff --git a/data/flags/pk_flag.png b/data/flags/pk_flag.png index 3e1dfe18c..ea217d645 100644 Binary files a/data/flags/pk_flag.png and b/data/flags/pk_flag.png differ diff --git a/data/flags/pl_flag.png b/data/flags/pl_flag.png index fd89ea3aa..613927683 100644 Binary files a/data/flags/pl_flag.png and b/data/flags/pl_flag.png differ diff --git a/data/flags/pt_flag.png b/data/flags/pt_flag.png index 721bbb86a..140cbe37a 100644 Binary files a/data/flags/pt_flag.png and b/data/flags/pt_flag.png differ diff --git a/data/flags/ro_flag.png b/data/flags/ro_flag.png index 4b1213fa6..aa37ddcc5 100644 Binary files a/data/flags/ro_flag.png and b/data/flags/ro_flag.png differ diff --git a/data/flags/rs_flag.png b/data/flags/rs_flag.png index ea7757a7d..f197ec30c 100644 Binary files a/data/flags/rs_flag.png and b/data/flags/rs_flag.png differ diff --git a/data/flags/ru_flag.png b/data/flags/ru_flag.png index 856c01ecd..072c142e2 100644 Binary files a/data/flags/ru_flag.png and b/data/flags/ru_flag.png differ diff --git a/data/flags/se_flag.png b/data/flags/se_flag.png index b161f1bd2..c37f3718a 100644 Binary files a/data/flags/se_flag.png and b/data/flags/se_flag.png differ diff --git a/data/flags/si_flag.png b/data/flags/si_flag.png index 8b946e64b..803cd1cd0 100644 Binary files a/data/flags/si_flag.png and b/data/flags/si_flag.png differ diff --git a/data/flags/sk_flag.png b/data/flags/sk_flag.png index bb8b380e1..c9239862a 100644 Binary files a/data/flags/sk_flag.png and b/data/flags/sk_flag.png differ diff --git a/data/flags/sn_flag.png b/data/flags/sn_flag.png index 98a9029e2..b43c6e31b 100644 Binary files a/data/flags/sn_flag.png and b/data/flags/sn_flag.png differ diff --git a/data/flags/sy_flag.png b/data/flags/sy_flag.png index 17575eca4..819572b8f 100644 Binary files a/data/flags/sy_flag.png and b/data/flags/sy_flag.png differ diff --git a/data/flags/th_flag.png b/data/flags/th_flag.png index 68029ee39..9968b79d9 100644 Binary files a/data/flags/th_flag.png and b/data/flags/th_flag.png differ diff --git a/data/flags/tj_flag.png b/data/flags/tj_flag.png index 5dca210a8..250c635f3 100644 Binary files a/data/flags/tj_flag.png and b/data/flags/tj_flag.png differ diff --git a/data/flags/tm_flag.png b/data/flags/tm_flag.png index 3b8d26104..45e116707 100644 Binary files a/data/flags/tm_flag.png and b/data/flags/tm_flag.png differ diff --git a/data/flags/tr_flag.png b/data/flags/tr_flag.png index 037a41656..fe83568ba 100644 Binary files a/data/flags/tr_flag.png and b/data/flags/tr_flag.png differ diff --git a/data/flags/tw_flag.png b/data/flags/tw_flag.png index f89d56e18..b1fbd8340 100644 Binary files a/data/flags/tw_flag.png and b/data/flags/tw_flag.png differ diff --git a/data/flags/tz_flag.png b/data/flags/tz_flag.png index 45a8daf86..2f5f0207f 100644 Binary files a/data/flags/tz_flag.png and b/data/flags/tz_flag.png differ diff --git a/data/flags/ua_flag.png b/data/flags/ua_flag.png index 061135db5..45af3c702 100644 Binary files a/data/flags/ua_flag.png and b/data/flags/ua_flag.png differ diff --git a/data/flags/unknown_flag.png b/data/flags/unknown_flag.png index 2cee86839..2e4dee2de 100644 Binary files a/data/flags/unknown_flag.png and b/data/flags/unknown_flag.png differ diff --git a/data/flags/us_flag.png b/data/flags/us_flag.png index f1f8d096b..26e3c38d6 100644 Binary files a/data/flags/us_flag.png and b/data/flags/us_flag.png differ diff --git a/data/flags/uz_flag.png b/data/flags/uz_flag.png index 899f1781e..b82e9a2bc 100644 Binary files a/data/flags/uz_flag.png and b/data/flags/uz_flag.png differ diff --git a/data/flags/vn_flag.png b/data/flags/vn_flag.png index 15c1913cc..366ab25e2 100644 Binary files a/data/flags/vn_flag.png and b/data/flags/vn_flag.png differ diff --git a/data/flags/za_flag.png b/data/flags/za_flag.png index dec515f48..441346032 100644 Binary files a/data/flags/za_flag.png and b/data/flags/za_flag.png differ diff --git a/data/themes/default.edc b/data/themes/default.edc index 6aeaf7890..ab3fc67d2 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -41315,138 +41315,116 @@ collections { } } - group - { - name: "modules/xkbswitch/main"; - max: 148 128; - - parts - { - part - { - name: "flag"; - type: SWALLOW; - mouse_events: 0; - - description - { - state: "default" 0.0; - align: 0.5 0.5; - } +///////////////////////////////////////////////////////////////////////////// +/*** MOD: XKBSWITCH ***/ + group { name: "modules/xkbswitch/main"; + images { + image: "xkbshad.png" COMP; + } + max: 128 128; + parts { + part { name: "shadow"; + mouse_events: 1; + description { state: "default" 0.0; + rel1.to: "e.swallow.flag"; + rel1.offset: -2 -1; + rel2.to: "e.swallow.flag"; + rel2.offset: 1 2; + image { + normal: "xkbshad.png"; + border: 5 5 5 5; + } + } + } + part { name: "e.swallow.flag"; + type: SWALLOW; + mouse_events: 0; + description { state: "default" 0.0; + rel1.offset: 2 3; + rel2.offset: -3 -4; + } + } + part { name: "e.text.label"; type: TEXT; + effect: SOFT_SHADOW; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { + to: "e.swallow.flag"; + relative: 0.0 0.5; + } + rel2 { + to: "e.swallow.flag"; + relative: 1.0 0.5; + } + color: 255 255 255 0; + color3: 0 0 0 0; + text { + font: "Sans"; + size: 9; + min: 0 1; + text_class: "module_small"; + } } + description { state: "visible" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + color3: 0 0 0 24; + } + } + part { name: "event"; type: RECT; + mouse_events: 1; + description { state: "default" 0.0; + color: 0 0 0 0; + } + } + } + programs { + program { name: "fade1"; + signal: "mouse,in"; + source: "event"; + action: STATE_SET "visible" 0.0; + transition: DECELERATE 1.0; + target: "e.text.label"; + } + program { name: "fade2"; + signal: "mouse,out"; + source: "event"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 1.0; + target: "e.text.label"; + } + } + } - part - { - name: "event"; - type: RECT; - mouse_events: 1; - - description - { - state: "default" 0.0; - color: 255 255 255 0; - } + group { name: "modules/xkbswitch/noflag"; + max: 128 128; + parts { + part { name: "e.text.label"; type: TEXT; + effect: SOFT_SHADOW; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { + relative: 0.0 0.5; + } + rel2 { + relative: 1.0 0.5; + } + color: 255 255 255 255; + color3: 0 0 0 24; + text { + font: "Sans"; + size: 9; + min: 0 1; + text_class: "module_small"; + } } - - part - { - name: "label"; - type: TEXT; - effect: SOFT_SHADOW; - mouse_events: 0; - - description - { - state: "default" 0.0; - align: 0.5 0.5; - - rel1 - { - relative: 0.5 0.5; - offset: 0 0; - } - - rel2 - { - relative: 0.5 0.5; - offset: 0 0; - } - - color: 255 255 255 255; - color3: 0 0 0 128; - - text - { - text: ""; - font: "Sans"; - size: 9; - align: 0.5 0.5; - min: 1 1; - text_class: "module_small"; - } - } - } - } - } - - group - { - name: "modules/xkbswitch/noflag"; - max: 148 128; - - parts - { - part - { - name: "event"; - type: RECT; - mouse_events: 1; - - description - { - state: "default" 0.0; - color: 255 255 255 0; - } - } - - part - { - name: "label"; - type: TEXT; - effect: SOFT_SHADOW; - mouse_events: 0; - - description - { - state: "default" 0.0; - align: 0.5 0.5; - - rel1 - { - relative: 0.5 0.5; - offset: 0 0; - } - - rel2 - { - relative: 0.5 0.5; - offset: 0 0; - } - - color: 255 255 255 255; - color3: 0 0 0 128; - - text - { - text: ""; - font: "Sans"; - size: 9; - align: 0.5 0.5; - min: 1 1; - text_class: "module_small"; - } - } - } - } - } + } + part { name: "event"; type: RECT; + mouse_events: 1; + description { state: "default" 0.0; + color: 0 0 0 0; + } + } + } + } } diff --git a/data/themes/images/Makefile.am b/data/themes/images/Makefile.am index 473f71ab5..03d8d659c 100644 --- a/data/themes/images/Makefile.am +++ b/data/themes/images/Makefile.am @@ -446,4 +446,5 @@ batt_over.png \ batt_power.png \ bg_shadow.png \ bg_over.png \ -bg_base.png +bg_base.png \ +xkbshad.png diff --git a/data/themes/images/xkbshad.png b/data/themes/images/xkbshad.png new file mode 100644 index 000000000..f982f9c0f Binary files /dev/null and b/data/themes/images/xkbshad.png differ diff --git a/src/modules/xkbswitch/e_mod_config.c b/src/modules/xkbswitch/e_mod_config.c index f613d4737..d6531bf23 100644 --- a/src/modules/xkbswitch/e_mod_config.c +++ b/src/modules/xkbswitch/e_mod_config.c @@ -521,22 +521,13 @@ _dlg_add_cb_ok(void *data __UNUSED__, E_Dialog *dlg) { Evas_Object *ic = e_icon_add(cfdata->evas); - { - const char *name = cl->name; - - if (strchr(name, '/')) name = strchr(name, '/') + 1; - snprintf(buf, sizeof(buf), "%s/data/flags/%s_flag.png", - e_prefix_data_get(), name); - - if (!ecore_file_exists(buf)) - snprintf(buf, sizeof(buf), "%s/data/flags/unknown_flag.png", - e_prefix_data_get()); - e_icon_file_set(ic, buf); - } + const char *name = cl->name; - snprintf(buf, sizeof(buf), "%s (%s, %s)", cl->name, cl->model, cl->variant); - - e_widget_ilist_append_full(cfdata->used_list, ic, NULL, buf, _cb_used_select, cfdata, NULL); + e_xkb_e_icon_flag_setup(ic, name); + snprintf(buf, sizeof(buf), "%s (%s, %s)", + cl->name, cl->model, cl->variant); + e_widget_ilist_append_full(cfdata->used_list, ic, NULL, buf, + _cb_used_select, cfdata, NULL); } e_widget_ilist_go (cfdata->used_list); @@ -585,21 +576,13 @@ _cb_dlg_fill_delay(void *data) EINA_LIST_FOREACH(layouts, l, layout) { Evas_Object *ic = e_icon_add(cfdata->dlg_evas); - { - const char *name = layout->name; - - if (strchr(name, '/')) name = strchr(name, '/') + 1; - snprintf(buf, sizeof(buf), "%s/data/flags/%s_flag.png", - e_prefix_data_get(), name); - if (!ecore_file_exists(buf)) - snprintf(buf, sizeof(buf), "%s/data/flags/unknown_flag.png", - e_prefix_data_get()); - e_icon_file_set(ic, buf); - } + const char *name = layout->name; - snprintf(buf, sizeof(buf), "%s (%s)", layout->description, layout->name); - - e_widget_ilist_append_full(cfdata->layout_list, ic, NULL, buf, _cb_layout_select, cfdata, layout->name); + e_xkb_e_icon_flag_setup(ic, name); + snprintf(buf, sizeof(buf), "%s (%s)", + layout->description, layout->name); + e_widget_ilist_append_full(cfdata->layout_list, ic, NULL, buf, + _cb_layout_select, cfdata, layout->name); } e_widget_ilist_go (cfdata->layout_list); @@ -700,17 +683,12 @@ _cb_fill_delay(void *data) { Evas_Object *ic = e_icon_add(cfdata->evas); const char *name = cl->name; - - if (strchr(name, '/')) name = strchr(name, '/') + 1; - snprintf(buf, sizeof(buf), "%s/data/flags/%s_flag.png", - e_prefix_data_get(), name); - if (!ecore_file_exists(buf)) - snprintf(buf, sizeof(buf), "%s/flags/unknown_flag.png", - e_prefix_data_get()); - e_icon_file_set(ic, buf); - - snprintf(buf, sizeof(buf), "%s (%s, %s)", cl->name, cl->model, cl->variant); - e_widget_ilist_append_full(cfdata->used_list, ic, NULL, buf, _cb_used_select, cfdata, NULL); + + e_xkb_e_icon_flag_setup(ic, name); + snprintf(buf, sizeof(buf), "%s (%s, %s)", + cl->name, cl->model, cl->variant); + e_widget_ilist_append_full(cfdata->used_list, ic, NULL, buf, + _cb_used_select, cfdata, NULL); } e_widget_ilist_go(cfdata->used_list); @@ -723,7 +701,8 @@ _cb_fill_delay(void *data) EINA_LIST_FOREACH(models, l, model) { snprintf(buf, sizeof(buf), "%s (%s)", model->description, model->name); - e_widget_ilist_append(cfdata->dmodel_list, NULL, buf, NULL, cfdata, model->name); + e_widget_ilist_append(cfdata->dmodel_list, NULL, buf, NULL, + cfdata, model->name); if (model->name == e_xkb_cfg->default_model) e_widget_ilist_selected_set(cfdata->dmodel_list, n); n++; diff --git a/src/modules/xkbswitch/e_mod_main.c b/src/modules/xkbswitch/e_mod_main.c index 29b83b4da..70bf2fab0 100644 --- a/src/modules/xkbswitch/e_mod_main.c +++ b/src/modules/xkbswitch/e_mod_main.c @@ -284,28 +284,20 @@ e_xkb_update_icon(void) e_theme_edje_object_set(inst->o_xkbswitch, "base/theme/modules/xkbswitch", "modules/xkbswitch/noflag"); - edje_object_part_text_set(inst->o_xkbswitch, "label", name); + edje_object_part_text_set(inst->o_xkbswitch, "e.text.label", name); } } else { - char buf[PATH_MAX]; - - snprintf(buf, sizeof(buf), "%s/data/flags/%s_flag.png", - e_prefix_data_get(), name); - EINA_LIST_FOREACH(instances, l, inst) { if (!inst->o_xkbflag) - { - inst->o_xkbflag = e_icon_add(inst->gcc->gadcon->evas); - e_icon_file_set(inst->o_xkbflag, buf); - edje_object_part_swallow(inst->o_xkbswitch, "flag", - inst->o_xkbflag); - } - else - e_icon_file_set(inst->o_xkbflag, buf); - edje_object_part_text_set(inst->o_xkbswitch, "label", name); + inst->o_xkbflag = e_icon_add(inst->gcc->gadcon->evas); + e_xkb_e_icon_flag_setup(inst->o_xkbflag, name); + edje_object_part_swallow(inst->o_xkbswitch, "e.swallow.flag", + inst->o_xkbflag); + edje_object_part_text_set(inst->o_xkbswitch, "e.text.label", + e_xkb_layout_name_reduce(name)); } } } @@ -316,7 +308,7 @@ e_xkb_update_layout(void) E_XKB_Config_Layout *cl; E_XKB_Config_Option *op; Eina_List *l; - char buf[PATH_MAX]; + Eina_Strbuf *buf; if (!e_xkb_cfg->used_layouts) return; @@ -324,41 +316,45 @@ e_xkb_update_layout(void) * set options. */ - // XXX: this is unsafe. doesn't keep into account size of buf - snprintf(buf, sizeof(buf), "setxkbmap "); + buf = eina_strbuf_new(); + eina_strbuf_append(buf, "setxkbmap '"); EINA_LIST_FOREACH(e_xkb_cfg->used_layouts, l, cl) { - strcat(buf, cl->name); + eina_strbuf_append(buf, cl->name); break; - if (l->next) strcat(buf, ","); + //if (l->next) eina_strbuf_append(buf, ","); } - - strcat(buf, " -variant "); + eina_strbuf_append(buf, "'"); + + eina_strbuf_append(buf, " -variant '"); EINA_LIST_FOREACH(e_xkb_cfg->used_layouts, l, cl) { - strcat(buf, cl->variant); - strcat(buf, ","); + eina_strbuf_append(buf, cl->variant); + eina_strbuf_append(buf, ","); break; } + eina_strbuf_append(buf, "'"); - strcat(buf, " -model "); + eina_strbuf_append(buf, " -model '"); cl = eina_list_data_get(e_xkb_cfg->used_layouts); - if (strcmp(cl->model, "default")) - strcat(buf, cl->model); + eina_strbuf_append(buf, cl->model); else if (strcmp(e_xkb_cfg->default_model, "default")) - strcat(buf, e_xkb_cfg->default_model); + eina_strbuf_append(buf, e_xkb_cfg->default_model); else - strcat(buf, "default"); + eina_strbuf_append(buf, "default"); + eina_strbuf_append(buf, "'"); EINA_LIST_FOREACH(e_xkb_cfg->used_options, l, op) { - strcat(buf, " -option "); - strcat(buf, op->name); + eina_strbuf_append(buf, " -option '"); + eina_strbuf_append(buf, op->name); + eina_strbuf_append(buf, "'"); break; } - printf("RUN: '%s'\n", buf); - ecore_exe_run(buf, NULL); + printf("RUN: '%s'\n", eina_strbuf_string_get(buf)); + ecore_exe_run(eina_strbuf_string_get(buf), NULL); + eina_strbuf_free(buf); } void @@ -399,6 +395,36 @@ e_xkb_layout_prev(void) e_xkb_update_layout(); } +const char * +e_xkb_layout_name_reduce(const char *name) +{ + if ((name) && (strchr(name, '/'))) name = strchr(name, '/') + 1; + return name; +} + +void +e_xkb_e_icon_flag_setup(Evas_Object *eicon, const char *name) +{ + int w, h; + char buf[PATH_MAX]; + + e_xkb_flag_file_get(buf, sizeof(buf), name); + e_icon_file_set(eicon, buf); + e_icon_size_get(eicon, &w, &h); + edje_extern_object_aspect_set(eicon, EDJE_ASPECT_CONTROL_BOTH, w, h); +} + +void +e_xkb_flag_file_get(char *buf, size_t bufsize, const char *name) +{ + name = e_xkb_layout_name_reduce(name); + snprintf(buf, bufsize, "%s/data/flags/%s_flag.png", + e_prefix_data_get(), name ? name : "unknown"); + if (!ecore_file_exists(buf)) + snprintf(buf, bufsize, "%s/data/flags/unknown_flag.png", + e_prefix_data_get()); +} + /* LOCAL STATIC FUNCTIONS */ static E_Gadcon_Client * @@ -407,23 +433,19 @@ _gc_init(E_Gadcon *gc, const char *gcname, const char *id, const char *style) Instance *inst; const char *name; - char buf[PATH_MAX]; - if (e_xkb_cfg->used_layouts) name = ((E_XKB_Config_Layout*)eina_list_data_get(e_xkb_cfg->used_layouts))->name; else name = NULL; - if ((name) && (strchr(name, '/'))) name = strchr(name, '/') + 1; - /* The instance */ inst = E_NEW(Instance, 1); /* The gadget */ inst->o_xkbswitch = edje_object_add(gc->evas); - //XXX add to theme e_theme_edje_object_set(inst->o_xkbswitch, "base/theme/modules/xkbswitch", "modules/xkbswitch/main"); - if (name) edje_object_part_text_set(inst->o_xkbswitch, "label", name); + edje_object_part_text_set(inst->o_xkbswitch, "e.text.label", + e_xkb_layout_name_reduce(name)); /* The gadcon client */ inst->gcc = e_gadcon_client_new(gc, gcname, id, style, inst->o_xkbswitch); inst->gcc->data = inst; @@ -431,11 +453,10 @@ _gc_init(E_Gadcon *gc, const char *gcname, const char *id, const char *style) if (!e_xkb_cfg->only_label) { inst->o_xkbflag = e_icon_add(gc->evas); - snprintf(buf, sizeof(buf), "%s/data/flags/%s_flag.png", - e_prefix_data_get(), name ? name : "unknown"); - e_icon_file_set(inst->o_xkbflag, buf); + e_xkb_e_icon_flag_setup(inst->o_xkbflag, name); /* The icon is part of the gadget. */ - edje_object_part_swallow(inst->o_xkbswitch, "flag", inst->o_xkbflag); + edje_object_part_swallow(inst->o_xkbswitch, "e.swallow.flag", + inst->o_xkbflag); } else inst->o_xkbflag = NULL; @@ -648,12 +669,7 @@ _e_xkb_cb_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSE e_menu_item_radio_group_set(mi, 1); e_menu_item_toggle_set(mi, (l == e_xkb_cfg->used_layouts) ? 1 : 0); - if (strchr(name, '/')) name = strchr(name, '/') + 1; - snprintf(buf, sizeof(buf), "%s/data/flags/%s_flag.png", - e_prefix_data_get(), name); - if (!ecore_file_exists(buf)) - snprintf(buf, sizeof(buf), "%s/data/flags/unknown_flag.png", - e_prefix_data_get()); + e_xkb_flag_file_get(buf, sizeof(buf), name); e_menu_item_icon_file_set(mi, buf); snprintf(buf, sizeof(buf), "%s (%s, %s)", cl->name, cl->model, cl->variant); diff --git a/src/modules/xkbswitch/e_mod_main.h b/src/modules/xkbswitch/e_mod_main.h index 9ca03fd16..2daedeb00 100644 --- a/src/modules/xkbswitch/e_mod_main.h +++ b/src/modules/xkbswitch/e_mod_main.h @@ -90,6 +90,10 @@ void e_xkb_update_layout(void); void e_xkb_layout_next(void); void e_xkb_layout_prev(void); +const char *e_xkb_layout_name_reduce(const char *name); +void e_xkb_e_icon_flag_setup(Evas_Object *eicon, const char *name); +void e_xkb_flag_file_get(char *buf, size_t bufsize, const char *name); + E_Config_Dialog *e_xkb_cfg_dialog(E_Container *con, const char *params); extern E_XKB_Config *e_xkb_cfg;