From 0279810e42b19d9b6018c34c51b934502f7ea799 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sat, 29 Apr 2006 03:51:27 +0000 Subject: [PATCH] ou can choose shelf styles now - finally. added 2 more styles (gold and invisible). themes can provide as many styles as u like. SVN revision: 22391 --- data/themes/default_shelf.edc | 615 +++++++++++++++++++++++++ data/themes/images/Makefile.am | 4 +- data/themes/images/e17_shelf_bg2_h.png | Bin 0 -> 7855 bytes data/themes/images/e17_shelf_bg2_v.png | Bin 0 -> 8056 bytes src/bin/e_gadcon.c | 63 ++- src/bin/e_gadcon.h | 6 +- src/bin/e_int_shelf_config.c | 71 ++- src/bin/e_theme.c | 26 ++ src/bin/e_theme.h | 2 + 9 files changed, 757 insertions(+), 30 deletions(-) create mode 100644 data/themes/images/e17_shelf_bg2_h.png create mode 100644 data/themes/images/e17_shelf_bg2_v.png diff --git a/data/themes/default_shelf.edc b/data/themes/default_shelf.edc index ec3b454ed..b37e6250a 100644 --- a/data/themes/default_shelf.edc +++ b/data/themes/default_shelf.edc @@ -1,6 +1,8 @@ images { image: "e17_shelf_bg_h.png" COMP; image: "e17_shelf_bg_v.png" COMP; + image: "e17_shelf_bg2_h.png" COMP; + image: "e17_shelf_bg2_v.png" COMP; image: "e17_ibar_bg_h.png" COMP; image: "e17_ibar_over_h.png" COMP; } @@ -491,3 +493,616 @@ group { } } } + + + + + + + + + + + + + + + + + + + + + + + +group { + name: "shelf/gold/base"; + data { + // this tells e the border is shaped + item: "shaped" "1"; + } + parts { + part { + name: "base"; + mouse_events: 0; + description { + state: "default" 0.0; + image { + normal: "e17_shelf_bg2_h.png"; + border: 19 19 9 9; + } + fill { + origin { + offset: 0 -6; + } + size { + offset: 0 6; + } + } + } + description { + state: "top_left" 0.0; + inherit: "default" 0.0; + fill { + origin { + offset: -16 -6; + } + size { + offset: 16 6; + } + } + } + description { + state: "top_right" 0.0; + inherit: "default" 0.0; + fill { + origin { + offset: 0 -6; + } + size { + offset: 16 6; + } + } + } + description { + state: "bottom" 0.0; + inherit: "default" 0.0; + fill { + origin { + offset: 0 0; + } + size { + offset: 0 6; + } + } + } + description { + state: "bottom_left" 0.0; + inherit: "default" 0.0; + fill { + origin { + offset: -16 0; + } + size { + offset: 16 6; + } + } + } + description { + state: "bottom_right" 0.0; + inherit: "default" 0.0; + fill { + origin { + offset: 0 0; + } + size { + offset: 16 6; + } + } + } + description { + state: "left" 0.0; + image { + normal: "e17_shelf_bg2_v.png"; + border: 9 9 19 19; + } + fill { + origin { + offset: -6 0; + } + size { + offset: 6 0; + } + } + } + description { + state: "left_top" 0.0; + image { + normal: "e17_shelf_bg2_v.png"; + border: 9 9 19 19; + } + fill { + origin { + offset: -6 -16; + } + size { + offset: 6 16; + } + } + } + description { + state: "left_bottom" 0.0; + image { + normal: "e17_shelf_bg2_v.png"; + border: 9 9 19 19; + } + fill { + origin { + offset: -6 0; + } + size { + offset: 6 16; + } + } + } + description { + state: "right" 0.0; + image { + normal: "e17_shelf_bg2_v.png"; + border: 9 9 19 19; + } + fill { + origin { + offset: 0 0; + } + size { + offset: 6 0; + } + } + } + description { + state: "right_top" 0.0; + image { + normal: "e17_shelf_bg2_v.png"; + border: 9 9 19 19; + } + fill { + origin { + offset: 0 -16; + } + size { + offset: 6 16; + } + } + } + description { + state: "right_bottom" 0.0; + image { + normal: "e17_shelf_bg2_v.png"; + border: 9 9 19 19; + } + fill { + origin { + offset: 0 0; + } + size { + offset: 6 16; + } + } + } + } + part { + name: "items"; + mouse_events: 0; + type: SWALLOW; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + offset: 18 2; + } + rel2 { + relative: 1.0 1.0; + offset: -19 -3; + } + } + description { + state: "top_left" 0.0; + rel1 { + relative: 0.0 0.0; + offset: 2 2; + } + rel2 { + relative: 1.0 1.0; + offset: -19 -3; + } + } + description { + state: "top_right" 0.0; + rel1 { + relative: 0.0 0.0; + offset: 18 2; + } + rel2 { + relative: 1.0 1.0; + offset: -3 -3; + } + } + description { + state: "bottom" 0.0; + rel1 { + relative: 0.0 0.0; + offset: 18 2; + } + rel2 { + relative: 1.0 1.0; + offset: -19 -3; + } + } + description { + state: "bottom_left" 0.0; + rel1 { + relative: 0.0 0.0; + offset: 2 2; + } + rel2 { + relative: 1.0 1.0; + offset: -19 -3; + } + } + description { + state: "bottom_right" 0.0; + rel1 { + relative: 0.0 0.0; + offset: 18 2; + } + rel2 { + relative: 1.0 1.0; + offset: -3 -3; + } + } + description { + state: "left" 0.0; + rel1 { + relative: 0.0 0.0; + offset: 2 18; + } + rel2 { + relative: 1.0 1.0; + offset: -3 -19; + } + } + description { + state: "left_top" 0.0; + rel1 { + relative: 0.0 0.0; + offset: 2 2; + } + rel2 { + relative: 1.0 1.0; + offset: -3 -19; + } + } + description { + state: "left_bottom" 0.0; + rel1 { + relative: 0.0 0.0; + offset: 2 18; + } + rel2 { + relative: 1.0 1.0; + offset: -3 -3; + } + } + description { + state: "right" 0.0; + rel1 { + relative: 0.0 0.0; + offset: 2 18; + } + rel2 { + relative: 1.0 1.0; + offset: -3 -19; + } + } + description { + state: "right_top" 0.0; + rel1 { + relative: 0.0 0.0; + offset: 2 2; + } + rel2 { + relative: 1.0 1.0; + offset: -3 -19; + } + } + description { + state: "right_bottom" 0.0; + rel1 { + relative: 0.0 0.0; + offset: 2 18; + } + rel2 { + relative: 1.0 1.0; + offset: -3 -3; + } + } + } + } + programs { + program { + name: "orient1"; + signal: "set_orientation"; + source: "top"; + action: STATE_SET "default" 0.0; + target: "base"; + target: "items"; + } + program { + name: "orient2"; + signal: "set_orientation"; + source: "top_left"; + action: STATE_SET "top_left" 0.0; + target: "base"; + target: "items"; + } + program { + name: "orient3"; + signal: "set_orientation"; + source: "top_right"; + action: STATE_SET "top_right" 0.0; + target: "base"; + target: "items"; + } + program { + name: "orient4"; + signal: "set_orientation"; + source: "bottom"; + action: STATE_SET "bottom" 0.0; + target: "base"; + target: "items"; + } + program { + name: "orient5"; + signal: "set_orientation"; + source: "bottom_left"; + action: STATE_SET "bottom_left" 0.0; + target: "base"; + target: "items"; + } + program { + name: "orient6"; + signal: "set_orientation"; + source: "bottom_right"; + action: STATE_SET "bottom_right" 0.0; + target: "base"; + target: "items"; + } + program { + name: "orient7"; + signal: "set_orientation"; + source: "left"; + action: STATE_SET "left" 0.0; + target: "base"; + target: "items"; + } + program { + name: "orient8"; + signal: "set_orientation"; + source: "left_top"; + action: STATE_SET "left_top" 0.0; + target: "base"; + target: "items"; + } + program { + name: "orient9"; + signal: "set_orientation"; + source: "left_bottom"; + action: STATE_SET "left_bottom" 0.0; + target: "base"; + target: "items"; + } + program { + name: "orient10"; + signal: "set_orientation"; + source: "right"; + action: STATE_SET "right" 0.0; + target: "base"; + target: "items"; + } + program { + name: "orient11"; + signal: "set_orientation"; + source: "right_top"; + action: STATE_SET "right_top" 0.0; + target: "base"; + target: "items"; + } + program { + name: "orient12"; + signal: "set_orientation"; + source: "right_bottom"; + action: STATE_SET "right_bottom" 0.0; + target: "base"; + target: "items"; + } + } +} +group { + name: "shelf/gold/inset"; + parts { + part { + name: "background"; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + to: "overlay"; + } + rel2 { + to: "overlay"; + } + image { + normal: "e17_ibar_bg_h.png"; + border: 6 6 6 6; + } + fill { + smooth: 0; + } + } + } + part { + name: "items_clip"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + to: "background"; + offset: 4 4; + } + rel2 { + to: "background"; + offset: -5 -5; + } + color: 255 255 255 255; + } + } + part { + name: "items"; + type: SWALLOW; + mouse_events: 0; + clip_to: "items_clip"; + description { + state: "default" 0.0; + rel1 { + offset: 4 4; + } + rel2 { + offset: -5 -5; + } + color: 0 0 0 0; + } + } + part { + name: "overlay"; + mouse_events: 0; + description { + state: "default" 0.0; + image { + normal: "e17_ibar_over_h.png"; + border: 13 13 13 13; + middle: 0; + } + fill { + smooth: 0; + } + } + } + } +} + + + + + + + + + + + + + + +group { + name: "shelf/invisible/base"; + data { + // this tells e the border is shaped + item: "shaped" "1"; + } + parts { + part { + name: "items"; + mouse_events: 0; + type: SWALLOW; + description { + state: "default" 0.0; + } + } + } +} +group { + name: "shelf/invisible/inset"; + parts { + part { + name: "background"; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + to: "overlay"; + } + rel2 { + to: "overlay"; + } + image { + normal: "e17_ibar_bg_h.png"; + border: 6 6 6 6; + } + fill { + smooth: 0; + } + } + } + part { + name: "items_clip"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + to: "background"; + offset: 4 4; + } + rel2 { + to: "background"; + offset: -5 -5; + } + color: 255 255 255 255; + } + } + part { + name: "items"; + type: SWALLOW; + mouse_events: 0; + clip_to: "items_clip"; + description { + state: "default" 0.0; + rel1 { + offset: 4 4; + } + rel2 { + offset: -5 -5; + } + color: 0 0 0 0; + } + } + part { + name: "overlay"; + mouse_events: 0; + description { + state: "default" 0.0; + image { + normal: "e17_ibar_over_h.png"; + border: 13 13 13 13; + middle: 0; + } + fill { + smooth: 0; + } + } + } + } +} diff --git a/data/themes/images/Makefile.am b/data/themes/images/Makefile.am index 76036e655..afeaff048 100644 --- a/data/themes/images/Makefile.am +++ b/data/themes/images/Makefile.am @@ -421,4 +421,6 @@ e17_border3b.png \ e17_border5b.png \ e17_border7b.png \ e17_shelf_bg_h.png \ -e17_shelf_bg_v.png +e17_shelf_bg_v.png \ +e17_shelf_bg2_h.png \ +e17_shelf_bg2_v.png diff --git a/data/themes/images/e17_shelf_bg2_h.png b/data/themes/images/e17_shelf_bg2_h.png new file mode 100644 index 0000000000000000000000000000000000000000..e897ccb3513c5685851156ec70c47db70b358c66 GIT binary patch literal 7855 zcmV;g9#G+lP)WFU8GbZ8({Xk{QrNlj4iWF>9@03H)bL_t(|+U;G-jwMM_ zJ?0UaRbAapPxF{54Weg>2F;c=D>N%Ufq!7ftXLo<20ns6Kw<$O02>wvv0#DJj0S0# zX}bDRmG#QXyy0fX!p+^yJUnh@bwkf)O3KQc_Zc_h#Ia+?%sdDHuCA_rczJpGS48yv zl+q>c`R~(DKgHw6kMYa-r^C;=`}N=lcifiY`C>na&r`LB1z@qi-ThEN>~DWt0aYD- z>^_v+fV1q)-#jO**`(@%f;Uq5;F^vgf{lRy8Pzoo0Is~^7e&O3j%EX%``5&(dR z@T-5n`X|g#6$qc8oWXp8F$ zdU0{_;|i{~1=c5@e1h+O_q)HuT`*%MnLIW!5)N+b9c(vYuj%bd2hx8F24*uR;r_U? z7%M15?6+ezF}Bpon%FZ^XD$@R37e~pu^Ky09_kc+C^0S<;Qe>s!K>@j@2n}M2mVmK4U37$H^@`~ zKz5rBz(xSl02ny{+4%nTc{~A`>;dfcm7)NP1&|7=&L$0bn6a4qk;-NYQU!@3DL_yp zQX~jH@I zx_%warK;ah_`?}Cx{J|{m}>-&7`WsN6KcdVRp8jcO$rd99eFS8aR;!%_O zd7{2G6l6NJ&msk+@s0-8B8|YR%;l2^7)w@hKSa_9V21^1Cy4+ctX~TP|K|X^Pv-Zw zKQjCreTE!_NST1R9vJC5YdDbe_jPO+SZn@65Et?cIHU#GUXK}_G-hgVTbNB;mI|lo z+BfkOM0VcPZTBdGV?*^Jm|D0NRj?@7K5xY@{oh?;`fY%uXTsxMV5T7y!-ZQmFt8KX z-hPm%zjOeT%(U9U-$7^f+g{tLdt5Xo0_ABASQ4!Vbwa;~RA*H`ibJ^cfU6;h zEi{R?gVnq+8T>Id!QVgxmu(JUbBu+cuizLkvY1aCqypGLC++?Suzvn1SOu9GY#H(T z%`wz{!Sr>)BhCO&?vWkZ{em7IJVVVw-1NukvQfN<0?bfm2rEP+W^e`=h1k<$c$2mX z(hh#JHbOS24eV7zk-#voA9eCX#)-KNX}7RAQw$k=VCR`*4F;w1b2}NTiXcOZ#>}eI~6>Ni+DhCh{ zmgxHXP#AQg(_2G$l)B9=ENTNbD?>!USqwlJj$LE}WA z-T=5clWE=88OIq5Lhb=Nxkmzkcw1${QU|wjKHEFCAKdGSfRs>cADN8-tVT%yQX(kFtWLb&g?Jxo-BJd3ey~_#R*4>F(JcoSMdsYj z39@Y_07|8lTKA{6-=(6VP^<+YBf##*LWRMy3$J&9@@;_gHmx@Y0KK`Me?=4v z%b}1xuvufqYClwG-mjESqFcC5ZWUFA9g^&8G!k}vmMy&jK_6f(7Y|U za9;F#fiP;QX*k0qGn5Dz@;Qn3$z)pksihwH0yE6_a?J&BA{kT;d{VI#$TV3}tR}qG z^qY`?h^!%_l!uzoH^vM-V(2|(Kn07-Y^m3y$z`zI*mv-l?IaQ_5otYPv=^xygXIGj zI|i6)HgIi2*8{#r$izKBGy@ztAL}k*UUe6uRs!a)!6c;WIp8`bF|)K;0#3IC>p(lm zngEw>9n{Y$fDHNrXgH>e2Q%8Tu9ytO;0B$y}vo zh&m})G}5-lL_6u$4vy?VhBHhyGT6v`cZEuwfblCnM~4(#kBrcXPvzN0bY2@gTjJSw zMtI>II~KHsNJS+t>cwF*RlNgWOFW_6qY5ZtQ353(X<@e|mCQ~Q;G_)*41g@7YYB!W zu&QF`Bw6-KNCYHM***dm01GKDQ+Y4$jb;Y4o_P2Un+itLU|!^Jllt8exX2hRPXLBH z!r)h6wDF+M4AJp%(SsJ5p~fKt*eVT-Hii8ztW+{RjM<#VqO-cPPSry708;CP=vIMF z->>>)=I%=@IFsqMW-nA05&=jcTn>1RfuxF*sJ5+^B%y}?F2=x8j8+v!vSec+0t>)G z$XSrJf_qk?nu`27Xs{1LGj4!zSS}O|9 zH8Do&MSzlcw7x&>ZoY8sm_SS@jHv}JM0yRj4I%Qp4vP$SUpB(tLh#{j^qq8cpS|{( zgiD=(R2-5I%2bRmxzTW)~eV2JGA zGxm!ugpwH4uStW`??BdizZ502RW3lY``BuYT=iB^9d$o(GmnQXayz5Jj@2AE2Ed5_@?(gL2YebHb?8`_YBO&gUuZT-VF(Bba}O-`yQ>e*p;Ofh_Bzbb8Il4pYx$^# z?$o+T%9ogg$n8uU^2}&8P|n!I7pxG?$H-3D&k*|O&$QLJEM2Z!P#XfTo`J-V5jd%Y&-L2{{JoOxNiI z#EvCnYs{dfnjcjV5t(Sux@6A3sv^}qk@~>JLY|o@lxX(vi@2{G5CeJpDIquf;d{;0 z?N14t9#f9i-z8j5Fw0(pX%u*)uvqyvr3I;29y^e((1an2RCM_=XfEvQ^2zJ6@Ks#jeYG!a7tml~knftPgBe~w4YQCV zh)PeshB~S?r&xzW;ii$)vQHJP$QgJ5AXg?jMP}HAD_2+Bw(`2|v_J5>@G-OxPXT~^ zXq}!JG)W$G|K8RPT*0S415-Ej<+CHlOfBnc%;cG>3n;ZyIX3!ftMygT(F8OAwK1|f z(AqLI?V*+Y$yFzRsNW}Pm=tp1mWH++8qRI%c3Jt37TW8;2PwD1PjJ2;u$z}`1@FdS zY>dSlASXb!gM&UfkZc-^^CXm=W1MmL0Q+zT%!T|xXXgIB+?fao7J*+t#E;WA=#bMT z6oO$)azKTZhNQVXOx?k!{x~&z(?Y4nHkpw51t#gEVSW~}eLVGAC8&djCdY6bRqlR+ z!*B(9tvFD(Aw;7=980#n5wh46Y$89inT!Y1GlZR>R>?LVpLc_wnDl=)YQ?}p@Lm}9 zK*eyX9b~y45VI_)K}83>6tFuv*pvB#?y0*3U^b>tvB#?Ioq-K?8RP?X+oNWHuW?Bt?c{=@yJk68d5?v$awifhdCLCgZlM^N!BF9~Z-c&xFQgQWX$t%x!v+{CQ`w zFOAuKjB*6)=fYA2QSsak;0Q;^7 z>xxhr({kPUM#0&hZ0fGMF&M5R6ZSW8fCHdJZk&wvt;~TbP0x|VLW-&-zPwB^DPiya z6Co`r^rS6K+er)a)h52UBwSno>uT-W)B`lt_6?NoTuP~h^(`~5t{>o?M;BQ8mL!1I zZeWhnWI% zK2%OiCgdx@7&&g#XF5qf6dFt;4J;kmQ(cxBjaMC#N6<1nb-5s|2`kbg+pvdbQ`C-z+F2k6 zrf3PzrL3NMFOjA=P18y}$&FL_b1S)e3AL#fEYaLm)iMn&0x&~_o73DDL6hEd)koej zZHuYp8*#&`2+e|slQd-gRI0|>y9R1AaF1ax7w0?t8`eH6LDnaN z$&l(K+k--RE4~?@VvF;v$lb+<`y(~92ZpKs5Mf%c>pM*0MBbP&PH;VFpVLnPef7OjZ%{O$MI?e5;^T$tj^UR=Y&cx+l~OKUQtS z!fRimXjYWQ?o1Ch#kBlG0Z2OC@na{n_flx+3>fG6$gxrdSp9-BEc~I(Eia)v*-4X7 z%e|`HWI@PG-5jMFz@#n2ri~G$HYl3dP1e6mp;wf;n71>%^q6rBaTQyO>$$2mL<|37 z>{_BE^*Se{yXdSVbi`2>|ySVW`jx6~-OHIxUlzLs2EwQj8Pj0?_U1lH)( z$KlX!MM#*$QSCj!y`~?BTzgEC21s>lfOQs>2Be%%1ppMyU=?(NNGIYf8I4SJ)^u;w^UEgAblpU#j1Ice7x>^5^Ee4zt z60M*mfoKI$avd*aWW1c%1lK#@ZkvXwA|}z^8`9XM*viTS_|yX>^h&iQI9z*asg|KiRk|oQm+B9|oEeq1cQkaU8t&>wi!)VL2b-c(1ZjqX1S(Xys zVn$flK#`zIAX<=?go{UY$-%B6jqH#Sys?t6QG>z2TN zh)OJESFmMvEk14usn8(o8V9oU&s|vw7n-5CfTjn4B(t@W#pHe(sGS|HP@)7)1WD99 zG!1P&vKQ@EWv^^e|5oe&hI>qFmWcYCL7@9gO`?@iZ4Px~Y*qY+HMi9j5~Olbj;04=RIFQ{f{lcAPoyI7XoJ6)*(7%1V`;~$xLB!IlqvcC~%V*x0!LX<^7CJTe8U&^g(T8O^krn67VyGlF3}@ zo-OA-nBet}d0Kq)0{rGV^vxH87|u{;sN}{FV1{tEDHV3sLZSIOz0z!l(BXhM&ec|! z@s%wK9+bLTU95wmiC7{)sx4v>o|^WfDrLjUfh{~Lx>aGCi(0nnhc|lbj|@vP)$J{T zqQ4KEwyB6piOM<_?u4il+?)l>g1iZst94UA#Wk!~%@x*g-S>U=`?Rnkb9v8U_-eiq z6WQ_yZgrj0tDocY!yjOK@!!z=5|GL?j7fEHM zG1sYMUVg=p3ODJ?Ii(tQ!-6OUWNGNRst zv%k*c*&-dV5hkeO)#qQ}^_Nd^`}7Of32mTp6TTfF8YtNRu3R%N8>t}+8@`O&8Q2vb z2vN#WDC<;U@4QcnZn<;mV!|?1g2rKvV=%{VVGTuh+PBz1gGQ^0B_-2?q|UtV-(6cy zR=}E4LQ250EN!w}M9P|~wjyB`jq9zlwk0uxZR0%K*r`G-32F@X`im>P|Itg_JbMm4 z6@U?q^w)QSzr@L#>ubEZzQLQ9uZPkS#U+XoH6Ongio@6yDAYLnx@Y^0wJj^5qsk%I zixfLFs~+giIJuf8cKzt2wt#r+=|UgxAG^nP-4&DZuU+X?Lpf*$Ma8VpNc{i{4n_>S zRt(;F3u)BNfclO!>Cl3SbrEFI$#SXMUg!r=+8VER9M<)cKyr(VOG3f|+1M45`%WV> z{1O4UAY7yc7Y|lEeD47kdAHQEtd1paB&!*K?TZa|hg)SP3|UzEESbTav27WWdkLp4 z#36m9<#s(EU|3jJK~gV3FkE@8^{RLN7f2h?sw>8jh3*ENW)Qnobn1PsZ%X|P!+?cy z&J$wEoA#G@nKZWS>X+leCk>5fiaFEIdJgLIITtqCYR@2sYqaTJg{iHs)7o_sGIYBJ zXag;bMA9;hLbb_UUcy2N%d#S+1xO1nKiKf#{SUCN-zi=W$ay10CKrFF>V?#r-qckK zijFbi&s?tPB^gB7Iy6foiBJu@9k@bNydWw9mRd+Rz_C#_iltIJ0Kz<@AE+3zDL=m$ zyU2B5GX(#wvL1oQ8`^k@Z^4ePrPi}9zqpVti(CBrP~^oq1xg4PQx4{wm(`4DPz zk*d_Lu;RMBU5`_r$7!qG)XY@4^pzz6U93o|pbJ4##Y%3NK&-@J$po7RRF<2}5HlgU zI@92?Yo&IEQe01dOc;hK=F#gJMJ*0GF%-uvn8ifXZ)LRv@j# zAiQ`AT^>Q#M>~7KT`eiJ#_XqooJL3rN@B(A?vY7jw+*bhuviu3i9kz2f?~l6N&-cK zY?~!;y?Id}c4n1IZ%;I2Si-{T#8&c>kce~*DSOa0T|tu>1oURbS!Ls>ItM)-h1NSV zVjYNP441=m`Zy+oRlvggF3F*jeLAoU#fpcIf%Osa=(n+0+X&GDqQ#gi?I%^Flw8>K z5$D{x4|F$0jp(7Z3mbI9wQ3$|pei1kNO7r!i%VTDhRMyJ=?RCW+*+2P%&d0t*_vv1 z^DkzwZiqpt)%wD)s#3Ug-8iC!MBU5nO2 zJKS~8no}J{b4y30TNQNNc^R5$>eW8jO!8IM-+%S7_{$Y6o zF_-bRdRB*pJfyq!r~@UnK9{XTQ+^9GG@ptYTMb!eGhzEU6r0b&*}NO8eKBh=U+a(p zYrpb@e_Y1}N(N?v&c?vTu}(d_phsuDxuPDIuiO!u?73^aqEfq0>$QR?toGTLpwPqD z;?NH)QUta>m=1%sla!-njvF&x-<+^9W4*q9@#^8DtM~Nu8U%JzMFs?BC~xg5r)4eA z^2Yi0CHV9L`R17&7*_*qMdezuDeo;-=W9#+lq(B_E2oyf(Z<%dW)$=kT7-K4z5UjiwJ}%_VeV%iB7M8okXG*8yt5Z9)aa<|Y&Zw| zaaA2c+>DMCC{cn1lKBi2d%_`Bin_hs@a*{;dQne^x6F^a2FxyWuk6X zjJAck2^Sx!$$4oK*6<3}fXnE115r8{uS5S=ygVN5TbhR=3(b3O&sQJx0FS$J+2ps* zO^-1~7Mp^xoi^l?%yH$DR`Wv8IjWcMLqR!=v;S`b$5`!(ac}5X-MNC9ws;rVHU=bdfjxk z3BBjOzb7djRv0w2v;$9{zrim)dx|GdU*5@IEQ;Gx#3ZEUcNrv{?><&{*(aV zuYdGMe|Yuc`Y+$yoPHo855ng84p2XWuD~yzyu?QzeGl8~&x27KCwPWs7S(~Joplr@ zgyUjo8rNk&G=RgU=teQzSKOUU1kr)=n4{+Wgwb6AM9+zx9g)naP4(Q?P+%>(Q(p~4 zr1MukdwGNJee^xNc=jZKPn{{;*XwO{%hS4~kKcdy!H@p_A3y$w{{{5|ip~Crj(`9F N002ovPDHLkV1fx}`OyFX literal 0 HcmV?d00001 diff --git a/data/themes/images/e17_shelf_bg2_v.png b/data/themes/images/e17_shelf_bg2_v.png new file mode 100644 index 0000000000000000000000000000000000000000..fc776fc36f82ede65f3152d14be14cebb19a41b3 GIT binary patch literal 8056 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 literal 0 HcmV?d00001 diff --git a/src/bin/e_gadcon.c b/src/bin/e_gadcon.c index c2a36eb10..a7851f1be 100644 --- a/src/bin/e_gadcon.c +++ b/src/bin/e_gadcon.c @@ -484,9 +484,9 @@ e_gadcon_client_new(E_Gadcon *gc, char *name, char *id, char *style, Evas_Object { gcc->o_frame = gc->frame_request.func(gc->frame_request.data, gcc, style); + gcc->style = evas_stringshare_add(style); if (gcc->o_frame) { - gcc->inset = 1; edje_object_size_min_calc(gcc->o_frame, &(gcc->pad.w), &(gcc->pad.h)); gcc->o_box = e_box_add(gcc->gadcon->evas); @@ -811,15 +811,30 @@ e_gadcon_client_resizable_set(E_Gadcon_Client *gcc, int resizable) } static void -_e_gadcon_client_cb_menu_inset(void *data, E_Menu *m, E_Menu_Item *mi) +_e_gadcon_client_cb_menu_style_plain(void *data, E_Menu *m, E_Menu_Item *mi) { E_Gadcon_Client *gcc; E_Gadcon *gc; gcc = data; gc = gcc->gadcon; - if (gcc->inset) gcc->inset = 0; - else gcc->inset = 1; + if (gcc->style) evas_stringshare_del(gcc->style); + gcc->style = NULL; + _e_gadcon_client_save(gcc); + e_gadcon_unpopulate(gc); + e_gadcon_populate(gc); +} + +static void +_e_gadcon_client_cb_menu_style_inset(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Gadcon_Client *gcc; + E_Gadcon *gc; + + gcc = data; + gc = gcc->gadcon; + if (gcc->style) evas_stringshare_del(gcc->style); + gcc->style = evas_stringshare_add("inset"); _e_gadcon_client_save(gcc); e_gadcon_unpopulate(gc); e_gadcon_populate(gc); @@ -870,17 +885,38 @@ _e_gadcon_client_cb_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi) EAPI void e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu, int flags) { + E_Menu *mn; E_Menu_Item *mi; E_OBJECT_CHECK(gcc); E_OBJECT_TYPE_CHECK(gcc, E_GADCON_CLIENT_TYPE); + mn = e_menu_new(); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _("Plain")); + e_util_menu_item_edje_icon_set(mi, "enlightenment/plain"); + e_menu_item_radio_group_set(mi, 1); + e_menu_item_radio_set(mi, 1); + if (!gcc->style) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_style_plain, gcc); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _("Inset")); + e_util_menu_item_edje_icon_set(mi, "enlightenment/plain"); + e_menu_item_radio_group_set(mi, 1); + e_menu_item_radio_set(mi, 1); + if ((gcc->style) && (!strcmp(gcc->style, "inset"))) + e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_style_inset, gcc); + + /***/ + mi = e_menu_item_new(menu); - e_menu_item_label_set(mi, _("Inset appearance")); - e_util_menu_item_edje_icon_set(mi, "enlightenment/inset"); - e_menu_item_check_set(mi, 1); - if (gcc->o_frame) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_inset, gcc); + e_menu_item_label_set(mi, _("Appearance")); + e_util_menu_item_edje_icon_set(mi, "enlightenment/appearance"); + e_menu_item_submenu_set(mi, mn); + e_object_del(E_OBJECT(mn)); mi = e_menu_item_new(menu); e_menu_item_label_set(mi, _("Automatically scroll contents")); @@ -989,6 +1025,7 @@ _e_gadcon_client_free(E_Gadcon_Client *gcc) evas_stringshare_del(gcc->id); if (gcc->scroll_timer) ecore_timer_del(gcc->scroll_timer); if (gcc->scroll_animator) ecore_animator_del(gcc->scroll_animator); + if (gcc->style) evas_stringshare_del(gcc->style); free(gcc); } @@ -1136,8 +1173,8 @@ _e_gadcon_client_save(E_Gadcon_Client *gcc) cf_gcc->autoscroll = gcc->autoscroll; if (cf_gcc->style) evas_stringshare_del(cf_gcc->style); cf_gcc->style = NULL; - if (gcc->inset) - cf_gcc->style = evas_stringshare_add("inset"); + if (gcc->style) + cf_gcc->style = evas_stringshare_add(gcc->style); cf_gcc->resizable = gcc->resizable; ok++; break; @@ -1165,8 +1202,8 @@ _e_gadcon_client_save(E_Gadcon_Client *gcc) cf_gcc->autoscroll = gcc->autoscroll; if (cf_gcc->style) evas_stringshare_del(cf_gcc->style); cf_gcc->style = NULL; - if (gcc->inset) - cf_gcc->style = evas_stringshare_add("inset"); + if (gcc->style) + cf_gcc->style = evas_stringshare_add(gcc->style); cf_gcc->resizable = gcc->resizable; cf_gc->clients = evas_list_append(cf_gc->clients, cf_gcc); ok++; diff --git a/src/bin/e_gadcon.h b/src/bin/e_gadcon.h index e6e8aaa2d..1a1019145 100644 --- a/src/bin/e_gadcon.h +++ b/src/bin/e_gadcon.h @@ -105,14 +105,14 @@ struct _E_Gadcon_Client struct { Evas_Coord w, h; } pad, min, aspect; - unsigned char inset : 1; - unsigned char autoscroll : 1; - unsigned char resizable : 1; Ecore_Timer *scroll_timer; Ecore_Animator *scroll_animator; double scroll_pos; double scroll_wanted; E_Menu *menu; + char *style; + unsigned char autoscroll : 1; + unsigned char resizable : 1; unsigned char moving : 1; unsigned char resizing : 1; diff --git a/src/bin/e_int_shelf_config.c b/src/bin/e_int_shelf_config.c index 1fe701165..fd08fcdbc 100644 --- a/src/bin/e_int_shelf_config.c +++ b/src/bin/e_int_shelf_config.c @@ -4,7 +4,7 @@ #include "e.h" /* PROTOTYPES - same all the time */ -//typedef struct _CFBorder CFBorder; +typedef struct _CFStyle CFStyle; static void *_create_data(E_Config_Dialog *cfd); static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); @@ -22,13 +22,14 @@ struct _E_Config_Dialog_Data int fit_size; int size; int layering; + Evas_List *cfslist; }; -//struct _CFBorder -//{ -// E_Config_Dialog_Data *cfdata; -// const char *bordername; -//}; +struct _CFStyle +{ + E_Config_Dialog_Data *cfdata; + const char *style; +}; /* a nice easy setup function that does the dirty work */ EAPI void @@ -101,6 +102,11 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) /* Free the cfdata */ cfdata->es->config_dialog = NULL; if (cfdata->style) free(cfdata->style); + while (cfdata->cfslist) + { + E_FREE(cfdata->cfslist->data); + cfdata->cfslist = evas_list_remove_list(cfdata->cfslist, cfdata->cfslist); + } free(cfdata); } @@ -138,7 +144,7 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) zone = cfdata->es->zone; id = cfdata->es->id; cfdata->es->config_dialog = NULL; - e_object_del(cfdata->es); + e_object_del(E_OBJECT(cfdata->es)); cfdata->es = e_shelf_zone_new(zone, cfdata->escfg->name, cfdata->escfg->style, cfdata->escfg->popup, @@ -160,12 +166,17 @@ static Evas_Object * _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) { /* generate the core widget layout for a basic dialog */ - Evas_Object *o, *of, *ob; + Evas_Object *o, *o2, *of, *ob, *oi, *oj; E_Radio_Group *rg; + Evas_Coord wmw, wmh; + Evas_List *styles, *l; int sel, n; - + CFStyle *cfs; + /* FIXME: this is just raw config now - it needs UI improvments */ - o = e_widget_list_add(evas, 0, 0); + o = e_widget_list_add(evas, 1, 1); + + o2 = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, _("Stacking"), 0); rg = e_widget_radio_group_new(&(cfdata->layering)); @@ -175,7 +186,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf e_widget_framelist_object_append(of, ob); ob = e_widget_radio_add(evas, _("Above Everything"), 2, rg); e_widget_framelist_object_append(of, ob); - e_widget_list_object_append(o, of, 1, 1, 0.5); + e_widget_list_object_append(o2, of, 1, 1, 0.5); of = e_widget_framelist_add(evas, _("Size"), 0); ob = e_widget_check_add(evas, _("Shrink length fit contents"), &(cfdata->fit_along)); @@ -186,7 +197,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf e_widget_framelist_object_append(of, ob); ob = e_widget_slider_add(evas, 1, 0, _("%3.0f pixels"), 4, 200, 4, 0, NULL, &(cfdata->size), 200); e_widget_framelist_object_append(of, ob); - e_widget_list_object_append(o, of, 1, 1, 0.5); + e_widget_list_object_append(o2, of, 1, 1, 0.5); of = e_widget_framelist_add(evas, _("Layout"), 0); rg = e_widget_radio_group_new(&(cfdata->orient)); @@ -214,7 +225,41 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf e_widget_framelist_object_append(of, ob); ob = e_widget_radio_add(evas, _("Right Bottom"), E_GADCON_ORIENT_CORNER_RB, rg); e_widget_framelist_object_append(of, ob); - e_widget_list_object_append(o, of, 1, 1, 0.5); + e_widget_list_object_append(o2, of, 1, 1, 0.5); + + e_widget_list_object_append(o, o2, 1, 1, 0.5); + + oi = e_widget_ilist_add(evas, 128, 20, &(cfdata->style)); + + sel = 0; + styles = e_theme_shelf_list(); + + for (n = 0, l = styles; l; l = l->next, n++) + { + char buf[4096]; + + cfs = E_NEW(CFStyle, 1); + cfs->cfdata = cfdata; + cfs->style = "default"; + cfdata->cfslist = evas_list_append(cfdata->cfslist, cfs); + ob = e_livethumb_add(evas); + e_livethumb_vsize_set(ob, 256, 40); + oj = edje_object_add(e_livethumb_evas_get(ob)); + snprintf(buf, sizeof(buf), "shelf/%s/base", + (char *)l->data); + e_theme_edje_object_set(oj, "base/theme/shelf", buf); + e_livethumb_thumb_set(ob, oj); + e_widget_ilist_append(oi, ob, (char *)l->data, NULL, NULL, l->data); + if (!strcmp(cfdata->es->style, (char *)l->data)) + sel = n; + } + e_widget_min_size_get(oi, &wmw, &wmh); + e_widget_min_size_set(oi, wmw, 250); + + e_widget_ilist_go(oi); + e_widget_ilist_selected_set(oi, sel); + + e_widget_list_object_append(o, oi, 1, 1, 0.5); return o; } diff --git a/src/bin/e_theme.c b/src/bin/e_theme.c index 7922b7e4d..ece0ba39d 100644 --- a/src/bin/e_theme.c +++ b/src/bin/e_theme.c @@ -25,6 +25,7 @@ static Evas_Hash *group_cache = NULL; static Evas_List *categories = NULL; static Evas_List *transitions = NULL; static Evas_List *borders = NULL; +static Evas_List *shelfs = NULL; /* externally accessible functions */ @@ -51,6 +52,7 @@ e_theme_init(void) /* Find transitions */ transitions = _e_theme_collection_items_find("base/theme/transitions", "transitions"); borders = _e_theme_collection_items_find("base/theme/borders", "widgets/border"); + shelfs = _e_theme_collection_items_find("base/theme/shelf", "shelf"); return 1; } @@ -118,6 +120,11 @@ e_theme_shutdown(void) evas_stringshare_del(borders->data); borders = evas_list_remove_list(borders, borders); } + while (shelfs) + { + evas_stringshare_del(shelfs->data); + shelfs = evas_list_remove_list(shelfs, shelfs); + } return 1; } @@ -423,6 +430,25 @@ e_theme_border_list(void) return borders; } +EAPI int +e_theme_shelf_find(const char *shelf) +{ + Evas_List *l; + + for (l = shelfs; l; l = l->next) + { + if (!strcmp(shelf, l->data)) + return 1; + } + return 0; +} + +EAPI Evas_List * +e_theme_shelf_list(void) +{ + return shelfs; +} + /* local subsystem functions */ static Evas_Bool diff --git a/src/bin/e_theme.h b/src/bin/e_theme.h index 31839cfd0..bb4e23781 100644 --- a/src/bin/e_theme.h +++ b/src/bin/e_theme.h @@ -24,6 +24,8 @@ EAPI int e_theme_transition_find(const char *transition); EAPI Evas_List *e_theme_transition_list(void); EAPI int e_theme_border_find(const char *border); EAPI Evas_List *e_theme_border_list(void); +EAPI int e_theme_shelf_find(const char *shelf); +EAPI Evas_List *e_theme_shelf_list(void); #endif #endif