From 132f182771ce7c169d8d294462ea23cef2dfae50 Mon Sep 17 00:00:00 2001 From: San Cho Date: Mon, 28 Jan 2013 10:57:33 +0900 Subject: [PATCH] Merged with the latest code of setting Change-Id: Ia0e500ac1d091308825c4c43107f4ff5d3f46faf --- common/include/email-common-types.h | 1 + images/A01_2_Icon_google.png | Bin 0 -> 7631 bytes images/A01_2_Icon_others.png | Bin 0 -> 7539 bytes images/A01_2_Icon_samsug.png | Bin 0 -> 8095 bytes images/A01_2_Icon_windows_live.png | Bin 0 -> 9239 bytes images/M02_color_bar_masking.png | Bin 0 -> 2976 bytes images/M02_color_bar_outline.png | Bin 0 -> 3087 bytes setting/include/email-setting.h | 18 ++- setting/include/sp_list.xml | 6 +- setting/src/email-setting-account-set.c | 13 +- setting/src/email-setting-utils.c | 7 +- setting/src/email-setting.c | 56 +++++++- setting/src/email-view-account-edit.c | 103 +++++++++++--- setting/src/email-view-account-options.c | 138 ++++++++++++++++--- setting/src/email-view-account-setup.c | 212 ++++++++++++++--------------- setting/src/email-view-initial.c | 20 ++- setting/src/email-view-mailbox-mapping.c | 6 +- setting/src/email-view-manual-setup.c | 91 +++++++++++-- setting/src/email-view-setting.c | 222 +++++++++++++++++++++++++++---- setting/src/email-view-sp-select.c | 26 +++- setting/src/email-view-sync-schedule.c | 41 +++++- setting/src/email-view-sync-setup.c | 41 +++++- setting/theme/email-setting-theme.edc | 180 ++++++++++++++++++++++++- 23 files changed, 939 insertions(+), 242 deletions(-) create mode 100644 images/A01_2_Icon_google.png create mode 100644 images/A01_2_Icon_others.png create mode 100644 images/A01_2_Icon_samsug.png create mode 100644 images/A01_2_Icon_windows_live.png create mode 100644 images/M02_color_bar_masking.png create mode 100644 images/M02_color_bar_outline.png diff --git a/common/include/email-common-types.h b/common/include/email-common-types.h index b43927c..9eeb958 100755 --- a/common/include/email-common-types.h +++ b/common/include/email-common-types.h @@ -25,6 +25,7 @@ #define MAX_URL_LEN 1024 #define MAX_RECPT_LEN (MAX_STR_LEN * 8 + 1) #define MIN_FREE_SPACE (5) /* 5MB */ +#define MAX_ACCOUNT_COUNT 10 #define DIR_TMP_PREFIX "/tmp" #define DIR_DEFAULT_MEDIA_PHONE "/opt/usr/media" diff --git a/images/A01_2_Icon_google.png b/images/A01_2_Icon_google.png new file mode 100644 index 0000000000000000000000000000000000000000..151e3f5ed1fd4f2e20b1df31601ff72aa3f411ff GIT binary patch literal 7631 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 literal 0 HcmV?d00001 diff --git a/images/A01_2_Icon_windows_live.png b/images/A01_2_Icon_windows_live.png new file mode 100644 index 0000000000000000000000000000000000000000..644a1c3bd10b25dbe4e629bf06ddbcfa8edbac2b GIT binary patch literal 9239 zcmV+yBKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000?6Nkl zc8p1|gF_j%j6vlx*k)7Uz+xxn+VWD1xgAV4aj~(30~jo{m_x!@ExMRPBaJlkoAY

{TKexj-8$by0LHuu#b_{UAwmFqKhtC9>=k_WXY0KwAK9H*cN-!WlhE;hk`3!WeU+B&ZI>1#*iQFK)W#nrqJM?Cd|Vhlh5ZV6bg8rhhtz}wOVD*o;|#yzU=~-Va7HMi~ zqF5{@#zkw4G1L91L{SKY5J)Mf$2vJV$@usE!gmX;Rg&Yg=80;LpM>*Ff^mSrKOL~G6P@GzxPi5)w3 zJovx^58V0ev(NU;kSOy(0+K)mXnN$4M>Z^5w(Od=wl-Q?S}?|-l;T8(5kd$o%K~6z zWQ5`2VYY7Fde@a#UU>&F4g|+4P45?w4dm{+>#k2PUcC4#%a<=dr=z0-DJ5|n|KVeX z6qHhm!NEbcZr%FJty{O=w_(GEXH&JCwIM%NKy{TWKKS5+-&nbF<;|U)ofHZM;yC7m z4m^brIF7@_#6%s`9amm?%Iz%9E~I$Eugwu&3*LIM}NF#&6-Q+&YepXMSoODr|Y^54i57A>#zU( z^2;y(8c;ftO*&dYPO4TvKJB#AKGV_B@ka+|rX&pv46tR(mdCER;)<`QHYt8TfGnW# zp@$y2{Uaaw$d@}iJC6yD-1zs1Ex#m~DiH+{lLJF&A(Ka^Av1q2B3ne{8fjR6BeJ38 zghG1z?YG&ydGp<0{NfkC15BkMz^nlYAb-z2_gu4j_3GPudU|FR-{{d1?0f%`u++=s z*ghtDhf!mbpam*2NJ}6r5K>@g1y%+!i@R_ZF2rtXA-nEIWPA4sfh475`}XZ@+_>?o zZ+zn$kET(#nQghlUA%blyj81K-QL~ZJ!?0<@0(W`K&Ue0Z zYinyOwr#&F$$YOKkB<@z_A=S)Vti;I)+`Pms2)u&CEl9kgL^uL} zXq2hnZX*2sKTW4A$Fpm#@jQ=Z%a)z}lb`%#1CT!)i^BnOZ@J}`ivV*C zw7vZ3y;R41EKgu%lWu1vR#sx?B~C%$6eUhUrbmHWNPc$fe=lUIc};|2$P2%Jkp1PY z#}!f>$F#Mz(bLoOAFjRj+Otwmedve(VTz9 zindE|?ZP3)Q4J>eKd(Q*YdcC+Ud-c^<-*^B0 z_rD1E?*&K#`Bke{{kyidwqwf5!|iEI*|KCrBQ+<2cjfRZ7v;*2dbkYp=Th{`+4$I1M=%kh5;xy5-&7-52Ha`B?)p z#t{AH8KNLY*3~L2aB>nmBM^Ck$brbs0OWu;NP-+)U_uqKZJWKLJ6YIMWU8i!go6|z zLihy6XT%>T2qeA_ejxAzgC7Wjz~INAMba_Q-qu91I-fX>vF&%>c0)r0C!KWCy0gwY z>$|VK^2*dqk0uXJM$bL>+{>Dpnx^xt*&03u-$F)VB0ZS{(j$rj(Ey@RAQ}X+A^BN0 zig)%Vfts@MPrHz6SfX4V#{d~OPsYuWak6B*4A~51Jn%e?>ls{E* zata`e0+ADt1+u9fasXSrLxL1@P%G9lF!BP$Vh+#FV~GeUY$O%}2}UIGodKf_S__l{ zr9e9drPFf@TG|>3OVF{p8zIEI?#&oOV`C$oot^(0xCf}#jrB|kvah}N+A~^PTRZC) znQd23-A5EEq$`ka8XRWQC?hW*Cm;{9Adso5kxza{K_ChO+wrJajW~|O_B|UpdBs9p zD}!ri@a!zEoyBvq)8~oQ7(6FAI<~>G4Ymcg1(t-)jy9UC4qVqoN_oh!JB~wJTia=0 z_`(;KrJnp<66CH}vEt%lv3N|yFQpV}&n{G?60hYX-illzHHmQsnM;f`86YDN?g1|* z1n5DRYV%TT%VKDBCriDRC=F6sNFfpFgsj0}&}gGjIv`dCHx|SW#0p~DVB3N?220v3 znYRktwht*mb?=+c=UKIC)j7axbvrZ@kT++}oU^jo>@lfV9LLDgASMbCu0S{`1dkcV zIv5g2(<*jg;#u!6;(uyAW22k!To1?ckU}N|jR2bjj!`J7v8BSbVq#knJ7C9P%cNTt z6q_=H6L99gI0q@^A?M)gtxzb?(b4g-RLv?g0ZAZJEEZR~u6s-s!sype6PL?L0%|9D zmvIFmBfv>u;2Dg2;9R&QpGg6U$f9Zr*tX4%zL!|Ccpu2h z%8Ib<8jfvnEJ0`|>Sarq+cqC-B#Y;H)9UqJHKSs&xGH^|0x;8n)~{c`G?&Ze>N(eJ z-Mf7G8KOWTErFLcWU@B4XwjnOp64Bt^u%$DHL`=2`4Ttd5tkJcPB$ZSP9u8Rfyq}AkJ`zc3MaEF=;k zB!cuj?UqP9p(HuBwX_qCEqsT2Kbq;HTrM}S?&_xj*|uFgoC`cs`|VpL9{hDbF&1{# z!Ohy_3l_E`a4kdD(&VKfuVaczl8pt*b_iNJXlPr29_nNC>RZTUG8Cm`s#3+V9kf=7 zTNffR)X3Dyr|w=HfK&gR#H1mEz-YsoWor{jKFWKOQsTO9Q#~`R2Z};UnW^jOY>Q8i z{HC86f%ZVT2IHg&CQwTy7H9#Jfg%n=WWl9%@ar_rzn*yI*_^)gOkUmg4?OzhuZT>QVR|@hEuZz z6vr{8vZ5A*N${aH7>QPO2xfX}I#wE`G;y4q$5Ie0jTA66USR<>qKRIznGy2Ey_}h` z7!RAU?X|4#IV*7lLp#{@<_;#pVJiLvXqS%WMKs$UfBMPu5JKSM(^>vsl&lH7?A+VV??`}c46eScQE`r_~R5(Z#Ys#3~e zv_>mMtSsVK5h+QeETTve*^)4n_?EzuAh6Kd5c*Z@mOOd&duaZTm^ez-{n`Z(HEc0J zJ7wD40OiN%Y7MQbICd2i?MH|*!YdHPE0KkAEVtr?z-s8quw%GDZUBt|9mnOJEeWr$);7%M_s5=IK!l31ZYrt1zT{2J}9 zMyN856{4{~hsiihqVmFW!OI{Vh2{BJ#QUv2x3hTDf}?T zj}(3oQ43H@W=rF`_@)RpCVt1U4il>sXnHWQi&;iEy z2;+mPfvzQxw2#mUC>H$ zF>D{4WO5=%rAA<4g|S2eM{0Bgp%mC6&5ve$*BCo7-eE{K4zTS;vSJ_F&V!mro|jQc z&B}ynPr;ZfLMNcmK01mqK_WebhDcf1O{Y$;f}KsPR;%pYyZ8BYX5(E&`{?!8U;p1z zQ&UG(oG(p9Oicz!tfO>N7mjsmq!TsMk)jqW{7_Mg;zYGVMKy@21Tod|D$CkDWaSNP zOM@Cs?aCy=Od|9YLYEP`47v=ug3vPo1rTUVpdrxUE2hX3dp*pyY^=4WTrTtc^UuF< zxLJ+(si&UWHZn4@wN|UW=f$=Uj8ds-f*?v%OeLPnD4jrxV{{awLyZa*)gU?m#g8ca z5tUj5L6u_8qgZ(iom~KGGLaxP0r4cLNsOApsL8|@=?bU{##BJp(7r;~493@JU*ks^ zCY_V8?Ch-5i%O-!zJ2>%+PHD!-kHl`W~!J5DuaWAKkw@5TH$%#dqmH}OqFAd(TTax z5)*5*h!GNMN|6-;h%v%|v8cgx;26i6T%$!)sbbr$8f}LvnPow#md`LJT3o z1fYFT0Xk5ang(BEe1#4)WmUv(?U{A-3@|k{MPFavQwJ}FIe6kQc=p+6e|E|#r`*)s z+<=KR_q%tBP@xW48cFd=*c1vb`9dbKJ&vYW@;SRR zkBs->S(BhfW@K@7Kng(&Cb30A2N1`YKx6zAPAxeXp~4p)rs4Ei$3Jl#Gchs2Bab}t zKW5sWLjj6kc;SV1#_3%J&RW(my}GnM zxZiG@4_N{Ur*l^#>5B{gNo6S!Gx*3 z2}}a2rZ9mfjvYqbCZs!mR;dNR*w`4oy}b_%3=EVGUTtYaelP>;@IgNY188bUB(Vwg>!AwBn<0=jTAu5G_#7tzt=USnfpJpAy( zKTIbK&5>4jgpWV|`0J}zuYRJjvGMcG&CTz+;MdM+CkO&8%fhy89LK?N99-9Z7oac< z@qM2tidg^AHa=5}c<}ilmbB!MQc^Je#N~7skC?&7m_&$TlXR83@>GgUs4-D0MWLbU z6#!o|i~L zU3zA2SE>)vbzQRA>@+CHsd3$>P9mGlB1`|5-9sI8G!Eis4k{ug8kU4ZI*}d|CDJr~ z9vMtv5K1#C3aH}hqbkl%8{8mZbaa%bpMLtkr1N0+ zKBFjQQz#UsH;=qmFjimbUY9b@^T=c}L{Ws}IGEh|4866PiNPV7TLtYcA$I+~bSgnA zm7e;s4k=8IktZoNE@Q&#rkEDTjgi8{*z?tCuS3iQ&Y=1eMYNUhg9m)DH3unz>COS=&I_OxvMEnheGRU${)DES0Jt zsA;Nh4|dOGw48JrnM~%W64bG=F}7^k@^|0-<~OfS7nR4eUF8}ByIa zab5R)1FB1&F$UYV@jMUJ)IoU4*BMcY;a$IAboU#$Vid5 ztbwJcCem3fPVXB#l6v{R&+zatn>TO13z#_EI_V=xP(9Kv-g3(=H!oYZ>@PYyJ7=BW z97&q$`%!DP8bJ^wOZeh=dIEFi&DO^$r9?_OZT~#aBbUo1cI^n`i{qGqfdRH|-TJNX zeeZk!?QphdHd_&Fpz*fbZo6~o(xq2+baWi|UD9<>VHgqw0bv*(cDG_(0_$KL$CFK#_{`~nTWGlJWI$1_@ zgxYw0gYTg{=X>4k;NT!TcI^1un{U4P`c$=|BYkH!+o9YP(hrv`S@O9PAxS5yDW%x6 zXAf_`{r00b-E`A+Bzswpxcl%}Hq^O5^Y_31{ks+|T69@QN5`~b{IIq-ju{*rq_?;C zZ#Hb$aO2U!ITk=O)vfW?TW|etcX#){pFe*-*=+Vh38zx2Ff=qoe}DfEzy0lR-7dma0|#@c;SUBKK}8Kf2*sj>(A!RoA-fBQ>9X2czBq;zP`tweDcX#wrttbPqKPm z9Si8=@nQi7Xt?2q8`jUCKY#s#1q)7{GiMHmE4ZDg=KDUSQi;LA!GGAjd-sEP-+lL! zB%9@qdYAKw0902wNwWI6@ur(@`r5pC^R8%XYwK=qZa(1>RjpPjl}Zc`4{zJMckjcu z-+udFr!M@Mq~=5bI@mU4frjg@yYA0BJ3Ifpxw&~&V`Jm=8()r>w3N$bCMPEu9UXmb zU|`^(yYIgHiPQ+!!I3ecf!ln3O_Ip>_t)vH&Z z+uGWCb~c+`;(6Wz*LCOCQ-y=UD5VI3U|$%9yDOE-_EM>|Y15`nFKpVhX)rCW`yA(Y z2K}J{9SqA#fz9mp1s7b<(bd(}p|uuiGHQ11+SUL3^Uv>30o3=D)?d$cLf$y_K?6FH tk)OFR&CHnE_`qK6Fb(LR+u_^)9{_8q#`^7{k5>Qy002ovPDHLkV1kpb(Te~8 literal 0 HcmV?d00001 diff --git a/images/M02_color_bar_masking.png b/images/M02_color_bar_masking.png new file mode 100644 index 0000000000000000000000000000000000000000..031a0d9ee085e93eede98f2ffd269942067edd3e GIT binary patch literal 2976 zcmV;R3t#k!P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0002XNkl4mDvtTQ860`z~5iGzy1aE?k=yfU>L6F_6HHff+JYJ%V zvM2u}EaZg`0)g*GNCHVvc}NXRfDteNzIZNYU;{M368O2BRl7A+kG?<0*!yN(2R(J= z=d+5|4W64WbCsa>f%b*Hd}i;56);YS60J#4zvD?xnO#tSfnH+x5d7mJr$|Mn6u7_z zE^vYW2Ykxl9x7m;0p3@@Is@Efee7+4MZ(oCfNk~%eYP)5w`z5!wr>F2*sFeYE&~8S W`q4r`YVPL%0000KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0003xNklBO85XRx>T}T&WNGdPd3kRuea;En)`vsB|RuWEoHC7iy(*bHpYLp|>bGZ-?BN&>@Up7r3-F|$Ia|A)cK|OvVAAiL zwIl}^ Hotmail - Windows Live Hotmail + Hotmail IDS_EMAIL_BODY_WINDOWS_LIVE_HOTMAIL - /usr/apps/org.tizen.email/res/images/M02_email_list_icon_hotmail.png + /usr/apps/org.tizen.email/res/images/A01_2_Icon_windows_live.png smtp.live.com 587 2 @@ -17,7 +17,7 @@ Gmail Google IDS_COM_BODY_GOOGLE - /usr/apps/org.tizen.email/res/images/M02_email_list_icon_gmail.png + /usr/apps/org.tizen.email/res/images/A01_2_Icon_google.png smtp.gmail.com 465 1 diff --git a/setting/src/email-setting-account-set.c b/setting/src/email-setting-account-set.c index 6a7b14e..34cc975 100755 --- a/setting/src/email-setting-account-set.c +++ b/setting/src/email-setting-account-set.c @@ -21,6 +21,7 @@ #include "email-setting-utils.h" #define DEFAULT_SIGNATURE _("IDS_EMAIL_BODY_SENT_USING_TIZEN_MOBILE") +#define DEFAULT_EMAIL_SIZE 1024*50 static void _set_sp_email(struct viewdata *vd, EmailSpDesc *desc); static void _set_others_email(struct viewdata *vd); @@ -82,7 +83,7 @@ void setting_set_account_with_server_info(email_protocol_config_t *incomming, account->logo_icon_path = g_strdup(ACCOUNT_ICON_OTHERS); } - account->auto_download_size = 1024*10; /* downloading option, 0 is subject only, 1 is text body, 2 is normal. */ + account->auto_download_size = DEFAULT_EMAIL_SIZE; /* downloading option, 0 is subject only, 1 is text body, 2 is normal. */ account->outgoing_server_use_same_authenticator = 1; /* Specifies the 'Same as POP3' option, 0 is none, 1 is 'Same as POP3' */ account->default_mail_slot_size = 25; @@ -159,14 +160,14 @@ static void _set_sp_email(struct viewdata *vd, EmailSpDesc *desc) _set_display_name_with_email_addr(account->user_email_address, &(account->user_display_name)); if (g_str_has_prefix(desc->name_str_id, "IDS_EMAIL")) - account->account_name = g_strdup(_(desc->name_str_id)); + account->account_name = g_strdup(_(desc->name)); else account->account_name = g_strdup(dgettext("sys_string", desc->name_str_id)); account->reply_to_address = g_strdup(account->user_email_address); account->return_address = g_strdup(account->user_email_address); account->retrieval_mode = EMAIL_IMAP4_RETRIEVAL_MODE_ALL; /* EMAIL_IMAP4_RETRIEVAL_MODE_NEW; */ - account->auto_download_size = 1024*10; /* downloading option, 0 is subject only, 1 is text body, 2 is normal. */ + account->auto_download_size = DEFAULT_EMAIL_SIZE; /* downloading option, 0 is subject only, 1 is text body, 2 is normal. */ account->outgoing_server_use_same_authenticator = 1; /* Specifies the 'Same as POP3' option, 0 is none, 1 is 'Same as POP3' */ account->default_mail_slot_size = 25; @@ -240,15 +241,15 @@ static void _set_others_email(struct viewdata *vd) int rgb = 0x006400ff; - //_set_display_name_with_email_addr(account->user_email_address, &(account->user_display_name)); - //_set_user_name_with_email_addr(account->user_email_address, &(account->incoming_server_user_name)); + _set_display_name_with_email_addr(account->user_email_address, &(account->user_display_name)); + _set_user_name_with_email_addr(account->user_email_address, &(account->incoming_server_user_name)); account->user_display_name = g_strdup(account->incoming_server_user_name); account->reply_to_address = g_strdup(account->user_email_address); account->return_address = g_strdup(account->user_email_address); account->retrieval_mode = EMAIL_IMAP4_RETRIEVAL_MODE_ALL; /* EMAIL_IMAP4_RETRIEVAL_MODE_NEW; */ - account->auto_download_size = 1024*10; /* downloading option, 0 is subject only, 1 is text body, 2 is normal. */ + account->auto_download_size = DEFAULT_EMAIL_SIZE; /* downloading option, 0 is subject only, 1 is text body, 2 is normal. */ account->outgoing_server_use_same_authenticator = 1; /* Specifies the 'Same as POP3' option, 0 is none, 1 is 'Same as POP3' */ account->default_mail_slot_size = 25; diff --git a/setting/src/email-setting-utils.c b/setting/src/email-setting-utils.c index ffaf2a4..5d78fa3 100755 --- a/setting/src/email-setting-utils.c +++ b/setting/src/email-setting-utils.c @@ -768,7 +768,7 @@ char *setting_get_service_fail_type(int type) } else if (type == EMAIL_ERROR_MAIL_MEMORY_FULL) { ret = _("IDS_EMAIL_POP_DEVICE_STORAGE_FULL"); return strdup(ret); - } else if (type == EMAIL_ERROR_NETWORK_NOT_AVAILABLE) { + } else if (type == EMAIL_ERROR_NETWORK_NOT_AVAILABLE || type == EMAIL_ERROR_NO_SIM_INSERTED) { ret = N_("Network not available"); return strdup(ret); } else if (type == EMAIL_ERROR_SECURED_STORAGE_FAILURE) { @@ -786,9 +786,10 @@ char *setting_get_service_fail_type(int type) } else if (type == EMAIL_ERROR_FLIGHT_MODE) { ret = N_("Flight mode enabled"); return strdup(ret); - } else if (type == EMAIL_ERROR_NO_SIM_INSERTED) { +// PLM - P130108-7232 +/* } else if (type == EMAIL_ERROR_NO_SIM_INSERTED) { ret = N_("No SIM inserted"); - return strdup(ret); + return strdup(ret);*/ } else if (type == EMAIL_ERROR_AUTH_REQUIRED) { ret = N_("Authentication required"); return strdup(ret); diff --git a/setting/src/email-setting.c b/setting/src/email-setting.c index ffb42b1..8d8ed9c 100755 --- a/setting/src/email-setting.c +++ b/setting/src/email-setting.c @@ -64,6 +64,8 @@ static void _destroy_block_cb(ui_gadget_h ug, void *priv); static void _popup_ok_cb(void *data, Evas_Object *obj, void *event_info); +static void _create_max_account_popup_create(EmailSettingUGD *ugd); +static void _max_account_popup_ok_cb(void *data, Evas_Object *obj, void *event_info); UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops) { @@ -158,6 +160,12 @@ static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, voi { debug_log(""); + if (!ug || !priv) + return; + + EmailSettingUGD *ugd; + ugd = priv; + switch (event) { case UG_EVENT_LOW_MEMORY: break; @@ -166,12 +174,11 @@ static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, voi case UG_EVENT_LANG_CHANGE: break; case UG_EVENT_ROTATE_PORTRAIT: - break; case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN: - break; case UG_EVENT_ROTATE_LANDSCAPE: - break; case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN: + if (ugd->custom_rotate_cb && ugd->custom_rotate_cb_data) + ugd->custom_rotate_cb(ugd->custom_rotate_cb_data); break; case UG_EVENT_REGION_CHANGE: break; @@ -821,8 +828,12 @@ static void _dispatch_view(struct ug_data *ugd) debug_log("Edit view is up"); setting_change_view(VIEW_SYNC_SCHEDULE, ugd); } else if (!strcmp(ugd->start_view_type, EMAIL_BUNDLE_VAL_VIEW_ACCOUNT_ADD)) { - debug_log("Add view is up"); - setting_change_view(VIEW_ACCOUNT_SETUP, ugd); + if(ugd->account_count >= MAX_ACCOUNT_COUNT) { + _create_max_account_popup_create(ugd); + } else { + debug_log("Add view is up"); + setting_change_view(VIEW_ACCOUNT_SETUP, ugd); + } } else if (!strcmp(ugd->start_view_type, EMAIL_BUNDLE_VAL_VIEW_SELECT_ACCOUNT)) { debug_log("select account view is up"); setting_change_view(VIEW_SP_SELECT, ugd); @@ -964,4 +975,39 @@ static void _popup_ok_cb(void *data, Evas_Object *obj, void *event_info) ug_destroy_me(ugd->ug); } +static void _create_max_account_popup_create(EmailSettingUGD *ugd) +{ + debug_log(""); + Evas_Object *popup = elm_popup_add(ugd->win); + evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_text_set(popup, N_("Maximum number of email accounts reached")); + ugd->popup_one = popup; //Use ugd->popup_one member + + Evas_Object *btn1 = elm_button_add(popup); + elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_OK")); + elm_object_part_content_set(popup, "button1", btn1); + evas_object_smart_callback_add(btn1, "clicked", _max_account_popup_ok_cb, ugd); + evas_object_show(popup); + +} + +static void _max_account_popup_ok_cb(void *data, Evas_Object *obj, void *event_info) +{ + debug_log(""); + + if (!data) { + debug_log("data is NULL"); + return; + } + EmailSettingUGD *ugd = (EmailSettingUGD *)data; + + if (ugd->popup_one) { + evas_object_del(ugd->popup_one); + ugd->popup_one = NULL; + } + + ug_destroy_me(ugd->ug); + +} + /* EOF */ diff --git a/setting/src/email-view-account-edit.c b/setting/src/email-view-account-edit.c index d09ba53..027609a 100755 --- a/setting/src/email-view-account-edit.c +++ b/setting/src/email-view-account-edit.c @@ -63,6 +63,7 @@ static void _gl_secure_sel_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_ex_sending_secure_sel_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_ex_incoming_secure_sel_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_onoff_sel_cb(void *data, Evas_Object *obj, void *event_info); +static void _gl_realized_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_exp_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_con_cb(void *data, Evas_Object *obj, void *event_info); @@ -117,8 +118,22 @@ struct priv_data { Elm_Genlist_Item_Class itc_type; Elm_Genlist_Item_Class itc_onoff; + Elm_Object_Item *gl_account_name_item; + Elm_Object_Item *gl_email_addr_item; + Elm_Object_Item *gl_user_name_item; + Elm_Object_Item *gl_pw_item; + + Elm_Object_Item *gl_smtp_server_item; + Elm_Object_Item *gl_smtp_port_item; Elm_Object_Item *gl_ex_item1; + + Elm_Object_Item *gl_incoming_server_type_item; + Elm_Object_Item *gl_incoming_server_item; + Elm_Object_Item *gl_incoming_port_item; Elm_Object_Item *gl_ex_item2; + + Elm_Object_Item *gl_pop3_before_smtp_item; + Elm_Object_Item *gl_smtp_auth_item; Elm_Object_Item *gl_same_item; Elm_Object_Item *gl_sending_user_item; Elm_Object_Item *gl_sending_pw_item; @@ -548,111 +563,111 @@ static void _create_list(struct viewdata *vd) p->itc_sep2.func.del = NULL; git = elm_genlist_item_append(p->genlist, &(p->itc_sep), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); /* account name */ i = 1; - item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, + p->gl_account_name_item = item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); /* email address */ i = 2; - item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, + p->gl_email_addr_item = item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); elm_object_item_disabled_set(item, EINA_TRUE); /* user name */ i = 3; - item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, + p->gl_user_name_item = item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); elm_object_item_disabled_set(item, EINA_TRUE); /* password */ i = 4; - item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, + p->gl_pw_item = item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); git = elm_genlist_item_append(p->genlist, &(p->itc_sep), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); /* smtp server */ i = 5; - item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, + p->gl_smtp_server_item = item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); /* smtp port */ i = 6; - item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, + p->gl_smtp_port_item = item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); /* sending security */ i = 1; - p->gl_ex_item1 = elm_genlist_item_append(p->genlist, &(p->itc_secure), (void *)i, + p->gl_ex_item1 = item = elm_genlist_item_append(p->genlist, &(p->itc_secure), (void *)i, NULL, ELM_GENLIST_ITEM_TREE, _gl_secure_sel_cb, (void *)vd); git = elm_genlist_item_append(p->genlist, &(p->itc_sep), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); /* incoming server type */ - item = elm_genlist_item_append(p->genlist, &(p->itc_type), NULL, NULL, + p->gl_incoming_server_type_item = item = elm_genlist_item_append(p->genlist, &(p->itc_type), NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_object_item_disabled_set(item, EINA_TRUE); /* incoming server */ i = 7; - item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, + p->gl_incoming_server_item = item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); /* incoming port */ i = 8; - item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, + p->gl_incoming_port_item = item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); /* secure connection */ i = 2; - p->gl_ex_item2 = elm_genlist_item_append(p->genlist, &(p->itc_secure), (void *)i, + p->gl_ex_item2 = item = elm_genlist_item_append(p->genlist, &(p->itc_secure), (void *)i, NULL, ELM_GENLIST_ITEM_TREE, _gl_secure_sel_cb, (void *)vd); git = elm_genlist_item_append(p->genlist, &(p->itc_sep), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); /* SMTP Authentication */ /* POP before SMTP */ i = 0; - elm_genlist_item_append(p->genlist, &(p->itc_onoff), (void *)i, git, + p->gl_pop3_before_smtp_item = item = elm_genlist_item_append(p->genlist, &(p->itc_onoff), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_onoff_sel_cb, (void *)i); /* SMTP Auth */ i = 1; - elm_genlist_item_append(p->genlist, &(p->itc_onoff), (void *)i, git, + p->gl_smtp_auth_item = item = elm_genlist_item_append(p->genlist, &(p->itc_onoff), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_onoff_sel_cb, (void *)i); /* Same as POP3/IMAP4 */ i = 2; - p->gl_same_item = elm_genlist_item_append(p->genlist, &(p->itc_onoff), (void *)i, NULL, + p->gl_same_item = item = elm_genlist_item_append(p->genlist, &(p->itc_onoff), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_onoff_sel_cb, (void *)i); /* user name */ i = 9; - p->gl_sending_user_item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, + p->gl_sending_user_item = item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(p->gl_sending_user_item, ELM_OBJECT_SELECT_MODE_NONE); /* password */ i = 10; - p->gl_sending_pw_item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, + p->gl_sending_pw_item = item = elm_genlist_item_append(p->genlist, &(p->itc_ef), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(p->gl_sending_pw_item, ELM_OBJECT_SELECT_MODE_NONE); @@ -662,9 +677,10 @@ static void _create_list(struct viewdata *vd) } git = elm_genlist_item_append(p->genlist, &(p->itc_sep2), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + evas_object_smart_callback_add(p->genlist, "realized", _gl_realized_cb, (void *)vd); evas_object_smart_callback_add(p->genlist, "expanded", _gl_exp_cb, (void *)vd); evas_object_smart_callback_add(p->genlist, "contracted", _gl_con_cb, (void *)vd); @@ -815,7 +831,14 @@ static void _read_all_entries(struct viewdata *vd) account_data->outgoing_server_password = NULL; else account_data->outgoing_server_password = g_strdup(p->str_sending_password); - debug_log("sending_password %s", account_data->outgoing_server_password); + debug_log("sending_username %s", account_data->outgoing_server_user_name); + } else { + account_data->outgoing_server_user_name = g_strdup(p->str_user_name); + if (g_strcmp0(p->str_password, p->str_password_backup) == 0) + account_data->outgoing_server_password = NULL; + else + account_data->outgoing_server_password = g_strdup(p->str_password); + debug_log("sending_username %s", account_data->outgoing_server_user_name); } } @@ -1993,6 +2016,42 @@ static void _gl_onoff_sel_cb(void *data, Evas_Object *obj, void *event_info) //_update_account_info(vd); } +static void _gl_realized_cb(void *data, Evas_Object *obj, void *event_info) +{ + Elm_Object_Item *it = event_info; + struct viewdata *vd = (struct viewdata *)data; + struct priv_data *p = vd->priv; + Evas_Object *parent = NULL; + + parent = elm_genlist_item_parent_get(it); + + if (!parent) + { + if (p->gl_account_name_item == it || + p->gl_smtp_server_item == it || + p->gl_incoming_server_type_item == it || + p->gl_pop3_before_smtp_item == it) + elm_object_item_signal_emit(it, "elm,state,top", ""); + else if (p->gl_pw_item == it || + p->gl_ex_item1 == it || + p->gl_ex_item2 == it || + p->gl_sending_pw_item == it) + elm_object_item_signal_emit(it, "elm,state,bottom", ""); + else + elm_object_item_signal_emit(it, "elm,state,center", ""); + } + else + { + int index = elm_object_item_data_get(it); + if (index == 0) + elm_object_item_signal_emit(it, "elm,state,top", ""); + else if (index == 2) + elm_object_item_signal_emit(it, "elm,state,bottom", ""); + else + elm_object_item_signal_emit(it, "elm,state,center", ""); + } +} + static void _gl_exp_cb(void *data, Evas_Object *obj, void *event_info) { debug_log(""); diff --git a/setting/src/email-view-account-options.c b/setting/src/email-view-account-options.c index b344ec7..f33e040 100755 --- a/setting/src/email-view-account-options.c +++ b/setting/src/email-view-account-options.c @@ -19,6 +19,7 @@ static email_account_t *account_data = NULL; static struct viewdata *g_vd = NULL; +static int _g_body_size[10] = {0, 1024/2, 1024, 1024*2, 1024*5, 1024*10, 1024*20, 1024*50, 1024*100, 1024*512}; static int _create(struct viewdata *vd); static int _update(struct viewdata *vd); @@ -40,6 +41,7 @@ static void _backup_signature_cb(void *data, Evas_Object *obj, void *event_info) static void _entry_changed_cb(void *data, Evas_Object *obj, void *event_info); static void _entry_focused_cb(void *data, Evas_Object *obj, void *event_info); static void _entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info); +static void _entry_maxlength_reached_cb(void *data, Evas_Object *obj, void *event_info); static void _eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source); static char *_gl_account_text_get_cb(void *data, Evas_Object *obj, const char *part); @@ -68,6 +70,7 @@ static void _gl_ex_cc_sel_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_ex_size_sel_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_ex_recent_sel_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_ex_deleting_sel_cb(void *data, Evas_Object *obj, void *event_info); +static void _gl_realized_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_exp_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_con_cb(void *data, Evas_Object *obj, void *event_info); @@ -106,14 +109,23 @@ struct priv_data { Elm_Genlist_Item_Class itc_ef; Elm_Genlist_Item_Class itc_title; + Elm_Object_Item *gl_account_item; Elm_Object_Item *gl_sig_item; + Elm_Object_Item *gl_size_item; Elm_Object_Item *gl_onoff_sig_item; Elm_Object_Item *gl_cc_item; - Elm_Object_Item *gl_size_item; + Elm_Object_Item *gl_recent_item; Elm_Object_Item *gl_deleting_item; Elm_Object_Item *gl_mailbox_item[4]; + Elm_Object_Item *first_item1; + Elm_Object_Item *last_item1; + Elm_Object_Item *first_item2; + Elm_Object_Item *last_item2; + Elm_Object_Item *first_item3; + Elm_Object_Item *last_item3; + char *signature_backup; }; @@ -413,12 +425,18 @@ static void _create_list(struct viewdata *vd) /*seperator*/ git = elm_genlist_item_append(p->genlist, &(p->itc_sep), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); /*account*/ - item = elm_genlist_item_append(p->genlist, &(p->itc_account), NULL, git, + item = elm_genlist_item_append(p->genlist, &(p->itc_account), NULL, NULL, ELM_GENLIST_ITEM_NONE, _account_edit_cb, (void *)vd); + p->gl_account_item = item; + + /*seperator*/ + git = elm_genlist_item_append(p->genlist, &(p->itc_sep), NULL, NULL, + ELM_GENLIST_ITEM_NONE, NULL, NULL); + elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); /*title-sending option*/ i = 0; @@ -430,42 +448,51 @@ static void _create_list(struct viewdata *vd) /*--replay with body--*/ i = 0; item = elm_genlist_item_append(p->genlist, &(p->itc_onoff), (void *)i, - git, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); + NULL, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); + p->first_item1 = item; /*--forward with files--*/ i = 1; item = elm_genlist_item_append(p->genlist, &(p->itc_onoff), (void *)i, - git, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); + NULL, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); /*--always cc/bcc myself--*/ item = elm_genlist_item_append(p->genlist, &(p->itc_cc), NULL, - git, ELM_GENLIST_ITEM_TREE, _gl_ex_sel_cb, (void *)vd); + NULL, ELM_GENLIST_ITEM_TREE, _gl_ex_sel_cb, (void *)vd); p->gl_cc_item = item; /*--request read report--*/ i = 2; item = elm_genlist_item_append(p->genlist, &(p->itc_onoff), (void *)i, - git, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); + NULL, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); /*--request delivery report--*/ i = 3; item = elm_genlist_item_append(p->genlist, &(p->itc_onoff), (void *)i, - git, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); + NULL, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); /*--add signature--*/ i = 4; item = elm_genlist_item_append(p->genlist, &(p->itc_onoff), (void *)i, - git, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); + NULL, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); p->gl_onoff_sig_item = item; /*--signature--*/ - p->gl_sig_item = elm_genlist_item_append(p->genlist, &(p->itc_ef), NULL, - git, ELM_GENLIST_ITEM_NONE, _gl_sig_sel_cb, NULL); + item = p->gl_sig_item = elm_genlist_item_append(p->genlist, &(p->itc_ef), NULL, + NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); + elm_genlist_item_select_mode_set(p->gl_sig_item, ELM_OBJECT_SELECT_MODE_NONE); if (account_data->options.add_signature == FALSE) { if (p->gl_sig_item) elm_object_item_disabled_set(p->gl_sig_item, EINA_TRUE); } + p->last_item1 = item; + + /*seperator*/ + git = elm_genlist_item_append(p->genlist, &(p->itc_sep), NULL, NULL, + ELM_GENLIST_ITEM_NONE, NULL, NULL); + elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + /*title-receiving option*/ i = 1; git = elm_genlist_item_append(p->genlist, &(p->itc_title), (void *)i, NULL, @@ -474,20 +501,20 @@ static void _create_list(struct viewdata *vd) /*receiving option*/ /*--email size--*/ - item = elm_genlist_item_append(p->genlist, &(p->itc_size), NULL, git, + item = elm_genlist_item_append(p->genlist, &(p->itc_size), NULL, NULL, ELM_GENLIST_ITEM_TREE, _gl_ex_sel_cb, (void *)vd); - p->gl_size_item = item; + p->gl_size_item = p->first_item2 = item; /*--show images--*/ i = 5; item = elm_genlist_item_append(p->genlist, &(p->itc_onoff), (void *)i, - git, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); + NULL, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); /*--recent emails for IMAP POP3--*/ if (account_data->incoming_server_type == EMAIL_SERVER_TYPE_IMAP4 || account_data->incoming_server_type == EMAIL_SERVER_TYPE_POP3) { item = elm_genlist_item_append(p->genlist, &(p->itc_recent), (void *)ugd, - git, ELM_GENLIST_ITEM_TREE, _gl_ex_sel_cb, (void *)vd); + NULL, ELM_GENLIST_ITEM_TREE, _gl_ex_sel_cb, (void *)vd); p->gl_recent_item = item; } @@ -495,16 +522,22 @@ static void _create_list(struct viewdata *vd) if (account_data->incoming_server_type == EMAIL_SERVER_TYPE_IMAP4 || account_data->incoming_server_type == EMAIL_SERVER_TYPE_POP3) { i = 6; - elm_genlist_item_append(p->genlist, &(p->itc_onoff), (void *)i, - git, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); + item = elm_genlist_item_append(p->genlist, &(p->itc_onoff), (void *)i, + NULL, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); } /*--deleting option for POP3--*/ if (account_data->incoming_server_type == EMAIL_SERVER_TYPE_POP3) { item = elm_genlist_item_append(p->genlist, &(p->itc_deleting), NULL, - git, ELM_GENLIST_ITEM_TREE, _gl_ex_sel_cb, (void *)vd); + NULL, ELM_GENLIST_ITEM_TREE, _gl_ex_sel_cb, (void *)vd); p->gl_deleting_item = item; } + p->last_item2 = item; + + /*seperator*/ + git = elm_genlist_item_append(p->genlist, &(p->itc_sep), NULL, NULL, + ELM_GENLIST_ITEM_NONE, NULL, NULL); + elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); /*title-mailbox setup*/ if (account_data->incoming_server_type == EMAIL_SERVER_TYPE_IMAP4) { @@ -513,7 +546,7 @@ static void _create_list(struct viewdata *vd) NULL, ELM_GENLIST_ITEM_GROUP, NULL, NULL); } else { git = elm_genlist_item_append(p->genlist, &(p->itc_sep2), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); } elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); @@ -536,10 +569,14 @@ static void _create_list(struct viewdata *vd) (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _setup_mailbox_cb, (void *)vd); git = elm_genlist_item_append(p->genlist, &(p->itc_sep2), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + + p->first_item3 = p->gl_mailbox_item[0]; + p->last_item3 = p->gl_mailbox_item[3]; } + evas_object_smart_callback_add(p->genlist, "realized", _gl_realized_cb, (void *)vd); evas_object_smart_callback_add(p->genlist, "expanded", _gl_exp_cb, (void *)vd); evas_object_smart_callback_add(p->genlist, "contracted", _gl_con_cb, (void *)vd); @@ -841,6 +878,14 @@ static void _entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info) elm_object_signal_emit(data, "elm,state,eraser,hide", "elm"); } +static void _entry_maxlength_reached_cb(void *data, Evas_Object *obj, void *event_info) +{ + debug_log(""); + + // display warning popup + debug_log("entry length is max now"); +} + static void _eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source) { debug_log(""); @@ -889,7 +934,7 @@ static char *_gl_onoff_text_get_cb(void *data, Evas_Object *obj, const char *par } if (index == 3) { - snprintf(buf, sizeof(buf), "%s", _("IDS_EMAIL_BODY_REQUEST_DELIVERY_REPORT")); //IDS_EMAIL_BODY_REQUEST_DELIVERY_REPORTS will be used after translation. + snprintf(buf, sizeof(buf), "%s", _("IDS_EMAIL_BODY_REQUEST_DELIVERY_REPORTS")); } if (index == 4) { @@ -1283,6 +1328,7 @@ static Evas_Object *_gl_ef_content_get_cb(void *data, Evas_Object *obj, const ch debug_log(""); struct viewdata *vd = g_vd; struct priv_data *p = vd->priv; + static Elm_Entry_Filter_Limit_Size limit_filter_data; if (!g_strcmp0(part, "elm.icon")) { debug_log(""); @@ -1294,6 +1340,9 @@ static Evas_Object *_gl_ef_content_get_cb(void *data, Evas_Object *obj, const ch p->entry_sig = elm_entry_add(p->genlist); elm_entry_cnp_mode_set(p->entry_sig, ELM_CNP_MODE_PLAINTEXT); elm_entry_input_panel_layout_set(p->entry_sig, ELM_INPUT_PANEL_LAYOUT_NORMAL); + limit_filter_data.max_char_count = 0; + limit_filter_data.max_byte_count = EMAIL_LIMIT_SIGNATURE_LENGTH; + elm_entry_markup_filter_append(p->entry_sig, elm_entry_filter_limit_size, &limit_filter_data); if (account_data->options.add_signature) { elm_entry_editable_set(p->entry_sig, TRUE); elm_entry_context_menu_disabled_set(p->entry_sig, EINA_FALSE); @@ -1301,6 +1350,8 @@ static Evas_Object *_gl_ef_content_get_cb(void *data, Evas_Object *obj, const ch elm_entry_editable_set(p->entry_sig, FALSE); elm_entry_context_menu_disabled_set(p->entry_sig, EINA_TRUE); } + + evas_object_smart_callback_add(p->entry_sig, "maxlength,reached", _entry_maxlength_reached_cb, NULL); evas_object_smart_callback_add(p->entry_sig, "cursor,changed", _backup_signature_cb, vd); evas_object_smart_callback_add(p->entry_sig, "changed", _entry_changed_cb, p->ef); evas_object_smart_callback_add(p->entry_sig, "focused", _entry_focused_cb, p->ef); @@ -1709,6 +1760,51 @@ static void _gl_ex_deleting_sel_cb(void *data, Evas_Object *obj, void *event_inf elm_genlist_item_update(p->gl_deleting_item); } +static void _gl_realized_cb(void *data, Evas_Object *obj, void *event_info) +{ + Elm_Object_Item *it = event_info; + struct viewdata *vd = (struct viewdata *)data; + struct priv_data *p = vd->priv; + Elm_Object_Item *parent = NULL; + + parent = elm_genlist_item_parent_get(it); + + if (!parent) { + if (p->gl_account_item != it) + { + if (p->first_item1 == it || + p->first_item2 == it || + (p->first_item3 && p->first_item3 == it)) + elm_object_item_signal_emit(it, "elm,state,top", ""); + else if (p->last_item1 == it || + p->last_item2 == it || + (p->last_item3 && p->last_item3 == it)) + elm_object_item_signal_emit(it, "elm,state,bottom", ""); + else + elm_object_item_signal_emit(it, "elm,state,center", ""); + } + } else { + int index = elm_object_item_data_get(it); + int start_index = 0; + int end_index = 0; + if (p->gl_cc_item == parent) + end_index = 2; + else if (p->gl_size_item == parent) + end_index = 9; + else if (p->gl_recent_item == parent) + end_index = 5; + else if (p->gl_deleting_item == parent) + end_index = 1; + + if (index == start_index) + elm_object_item_signal_emit(it, "elm,state,top", ""); + else if (index == end_index) + elm_object_item_signal_emit(it, "elm,state,bottom", ""); + else + elm_object_item_signal_emit(it, "elm,state,center", ""); + } +} + static void _gl_exp_cb(void *data, Evas_Object *obj, void *event_info) { debug_log(""); diff --git a/setting/src/email-view-account-setup.c b/setting/src/email-view-account-setup.c index 171def3..79e692b 100755 --- a/setting/src/email-view-account-setup.c +++ b/setting/src/email-view-account-setup.c @@ -61,6 +61,7 @@ static void _input_panel_state_changed_cb(void *data, Ecore_IMF_Context *ctx, in static void _gl_ef_sel_cb(void *data, Evas_Object *obj, void *event_info); static char *_gl_group_text_get(void *data, Evas_Object *obj, const char *part); static Evas_Object *_gl_ef_content_get_cb(void *data, Evas_Object *obj, const char *part); +static void _gl_realized_cb(void *data, Evas_Object *obj, void *event_info); static struct viewdata *g_vd = NULL; @@ -106,6 +107,8 @@ struct priv_data { Elm_Genlist_Item_Class itc3; Evas_Object *cbar; + Elm_Object_Item *gl_email_address_item; + Elm_Object_Item *gl_pw_item; Elm_Object_Item * c_item[4]; Elm_Object_Item *navi_it; @@ -368,6 +371,8 @@ static void _push_naviframe(struct viewdata *vd) evas_object_smart_callback_add(p->tool_btn, "clicked", _save_cb, vd); } + elm_object_disabled_set(p->tool_btn, EINA_TRUE); + Elm_Object_Item *navi_it = NULL; navi_it = elm_naviframe_item_push(vd->ugd->navi_bar, _("IDS_EMAIL_HEADER_ADD_ACCOUNT"), NULL, NULL, p->layout, NULL); elm_object_item_part_content_set(navi_it, "title_toolbar_button1", p->l_button); @@ -397,98 +402,67 @@ static void _create_view(struct viewdata *vd) debug_log("WINDOW W[%d] H[%d]", w, h); Evas_Object *sub_ly = elm_layout_add(ugd->navi_bar); + elm_layout_file_set(sub_ly, EV_THEME_PATH, "add_account"); - if (w == 480) { - if (vd->ugd->account_info == NULL) - elm_layout_file_set(sub_ly, EV_THEME_PATH, "other_account_add_wvga"); - else - elm_layout_file_set(sub_ly, EV_THEME_PATH, "account_add_wvga"); - } else { - if (vd->ugd->account_info == NULL) - elm_layout_file_set(sub_ly, EV_THEME_PATH, "other_account_add"); - else - elm_layout_file_set(sub_ly, EV_THEME_PATH, "account_add"); - } evas_object_size_hint_weight_set(sub_ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(sub_ly); _create_list(vd); - elm_object_part_content_set(sub_ly, "list", p->genlist); + elm_object_part_content_set(sub_ly, "add_account/layout", p->genlist); - Evas_Object *checkbox_set = elm_layout_add(sub_ly); - if (w == 480) { - elm_layout_file_set(checkbox_set, EV_THEME_PATH, "account_add_checkbox_set_wvga"); - } else { - elm_layout_file_set(checkbox_set, EV_THEME_PATH, "account_add_checkbox_set"); - } - evas_object_size_hint_weight_set(checkbox_set, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_show(checkbox_set); - - Evas_Object *check1 = elm_check_add(checkbox_set); + Evas_Object *check1 = elm_check_add(sub_ly); elm_check_state_set(check1, EINA_FALSE); evas_object_smart_callback_add(check1, "changed", _check1_clicked_cb, (void *)vd); - elm_object_part_content_set(checkbox_set, "checkbox.1", check1); + elm_object_part_content_set(sub_ly, "add_account/check1", check1); elm_object_focus_allow_set(check1, EINA_FALSE); p->default_account_check = check1; - Evas_Object *check2 = elm_check_add(checkbox_set); + Evas_Object *check2 = elm_check_add(sub_ly); elm_check_state_set(check2, EINA_FALSE); evas_object_smart_callback_add(check2, "changed", _check2_clicked_cb, (void *)vd); - elm_object_part_content_set(checkbox_set, "checkbox.2", check2); + elm_object_part_content_set(sub_ly, "add_account/check2", check2); elm_object_focus_allow_set(check2, EINA_FALSE); p->show_passwd_check = check2; char *desc = g_strdup(_("IDS_EMAIL_BODY_SEND_EMAIL_FROM_THIS_ACCOUNT_BY_DEFAULT")); - Evas_Object *label1 = elm_label_add(checkbox_set); + Evas_Object *label1 = elm_label_add(sub_ly); elm_label_wrap_width_set(label1, 600*elm_config_scale_get()); elm_label_line_wrap_set(label1, ELM_WRAP_WORD); - char *text = g_strconcat("", - desc, "", NULL); - edje_object_signal_callback_add(elm_layout_edje_get(checkbox_set), + char *text = g_strconcat("", + desc, "", NULL); + edje_object_signal_callback_add(elm_layout_edje_get(sub_ly), "elm,action,text1_clicked", "elm", _check1_clicked_cb2, (void *)vd); elm_object_text_set(label1, text); evas_object_show(label1); g_free(desc); g_free(text); - elm_object_part_content_set(checkbox_set, "text.1", label1); + elm_object_part_content_set(sub_ly, "add_account/text1", label1); desc = g_strdup(_("IDS_EMAIL_BODY_SHOW_PASSWORD")); - Evas_Object *label2 = elm_label_add(checkbox_set); + Evas_Object *label2 = elm_label_add(sub_ly); elm_label_wrap_width_set(label2, 600*elm_config_scale_get()); elm_label_line_wrap_set(label2, ELM_WRAP_WORD); - text = g_strconcat("", - desc, "", NULL); - edje_object_signal_callback_add(elm_layout_edje_get(checkbox_set), + text = g_strconcat("", + desc, "", NULL); + edje_object_signal_callback_add(elm_layout_edje_get(sub_ly), "elm,action,text2_clicked", "elm", _check2_clicked_cb2, (void *)vd); elm_object_text_set(label2, text); evas_object_show(label2); g_free(desc); g_free(text); - elm_object_part_content_set(checkbox_set, "text.2", label2); + elm_object_part_content_set(sub_ly, "add_account/text2", label2); - elm_object_part_content_set(sub_ly, "checkbox_set", checkbox_set); - - Evas_Object *button_set = elm_layout_add(sub_ly); - if (w == 480) { - elm_layout_file_set(button_set, EV_THEME_PATH, "account_add_manual_button_wvga"); - } else { - elm_layout_file_set(button_set, EV_THEME_PATH, "account_add_manual_button"); - } - evas_object_size_hint_weight_set(button_set, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_show(button_set); - - Evas_Object *btn = elm_button_add(button_set); + Evas_Object *btn = elm_button_add(sub_ly); elm_object_text_set(btn, _("IDS_EMAIL_BODY_MANUAL_SETUP")); evas_object_smart_callback_add(btn, "clicked", _manual_cb, (void *)vd); elm_object_style_set(btn, "text_only/style2"); evas_object_show(btn); p->manual_btn = btn; - elm_object_part_content_set(button_set, "btn", btn); + elm_object_part_content_set(sub_ly, "add_account/button", btn); elm_object_disabled_set(p->manual_btn, EINA_TRUE); - elm_object_part_content_set(sub_ly, "button_set", button_set); - elm_object_content_set(p->scroller, sub_ly); + elm_scroller_policy_set(p->scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); } static void _create_list(struct viewdata *vd) @@ -538,10 +512,10 @@ static void _create_list(struct viewdata *vd) if (ugd->account_info == NULL) { /* Account name for OTHER */ - i = 1; + /* i = 1; item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, git, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); - elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); + elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); */ /* User name */ /*i = 2; @@ -556,15 +530,17 @@ static void _create_list(struct viewdata *vd) /* Email address */ i = 4; - item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, git, + p->gl_email_address_item = item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); - elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); + elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); /* Password */ i = 5; - item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, git, + p->gl_pw_item = item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); - elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); + elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + + evas_object_smart_callback_add(p->genlist, "realized", _gl_realized_cb, (void *)vd); } static void _create_validation_popup(struct viewdata *vd, int account_id) @@ -737,6 +713,7 @@ static void _read_all_entries(struct viewdata *vd) struct priv_data *p; p = vd->priv; + /*char *buf;*/ if (!p) { debug_log("priv is NULL"); @@ -749,26 +726,34 @@ static void _read_all_entries(struct viewdata *vd) setting_new_acct_init(vd); email_account_t *account = vd->ugd->new_account; - if (vd->ugd->account_info == NULL) { - /*buf = elm_entry_markup_to_utf8(elm_entry_entry_get(p->entry_account_name));*/ - if (p->entry_account_name) { - /*buf = (char *)elm_entry_entry_get(p->entry_account_name); - debug_log("account name : %s", buf); - if (buf) - account->account_name = g_strdup(buf);*/ - account->account_name = g_strdup(p->str_account_name); - } - } - /*buf = elm_entry_markup_to_utf8(elm_entry_entry_get(p->entry_email_address));*/ if (p->entry_email_address) { /*buf = (char *)elm_entry_entry_get(p->entry_email_address); debug_log("email addr : %s", buf); if (buf) - account->user_email_address = g_strdup(buf);*/ + account->user_email_address = g_strdup(buf);*/ account->user_email_address = g_strdup(p->str_email_address); } + if (vd->ugd->account_info == NULL) { + if (p->entry_email_address) { + gchar **token1 = NULL; + gchar **token2 = NULL; + + token1 = g_strsplit(p->str_email_address, "@", -1); + if (token1[1]) + token2 = g_strsplit(token1[1], ".", -1); + + if (token2) + account->account_name = g_strdup(token2[0] ? token2[0] : "Other"); + + g_strfreev(token1); + g_strfreev(token2); + } + else + account->account_name = g_strdup("Other"); + } + if (p->entry_password) { /*buf = (char *)elm_entry_markup_to_utf8(elm_entry_entry_get(p->entry_password)); debug_log("password : %s", buf); @@ -1007,12 +992,7 @@ static void _manual_cb(void *data, Evas_Object *obj, void *event_info) } /* check Null field */ - if (vd->ugd->account_info == NULL) { - ret = _check_null_field(vd); - } else { - ret = _check_preset_null_field(vd); - } - + ret = _check_preset_null_field(vd); if (!ret) { ugd->popup_one = setting_get_notify(vd, dgettext("sys_string", "IDS_COM_POP_WARNING"), @@ -1057,8 +1037,7 @@ static void _manual_cb(void *data, Evas_Object *obj, void *event_info) g_free(buf); /* account info setting */ - if (ugd->account_info) - setting_set_account(vd); + setting_set_account(vd); setting_change_view(VIEW_MANUAL_SETUP, ugd); @@ -1356,14 +1335,9 @@ static Eina_Bool _startup_focus_cb(void *data) ugd->focus_timer = NULL; } - if (ugd->account_info == NULL) { - p->clicked_object = p->entry_account_name; - elm_object_focus_set(p->entry_account_name, EINA_TRUE); - } else { - p->clicked_object = p->entry_email_address; - elm_object_focus_set(p->entry_email_address, EINA_TRUE); - elm_entry_cursor_begin_set(p->entry_email_address); - } + p->clicked_object = p->entry_email_address; + elm_object_focus_set(p->entry_email_address, EINA_TRUE); + elm_entry_cursor_begin_set(p->entry_email_address); return ECORE_CALLBACK_CANCEL; } @@ -1396,6 +1370,31 @@ static void _popup_ok_cb(void *data, Evas_Object *obj, void *event_info) elm_object_disabled_set(p->tool_btn, EINA_FALSE); } +/*static void _popup_cancel_cb(void *data, Evas_Object *obj, void *event_info) +{ + debug_log(""); + if (!data) { + debug_log("data is NULL"); + return; + } + + struct viewdata *vd = (struct viewdata *)data; + EmailSettingUGD *ugd = vd->ugd; + struct priv_data *p = vd->priv; + + if (ugd->popup_one) { + evas_object_del(ugd->popup_one); + ugd->popup_one = NULL; + } + if (ugd->popup_validate) { + evas_object_del(ugd->popup_validate); + ugd->popup_validate = NULL; + } + + elm_object_disabled_set(p->r_button, EINA_FALSE); + elm_object_disabled_set(p->r_button2, EINA_FALSE); +}*/ + static void _popup_cancel_validation_cb(void *data, Evas_Object *obj, void *event_info) { debug_log(""); @@ -1452,15 +1451,7 @@ static void _backup_input_cb(void *data, Evas_Object *obj, void *event_info) elm_object_signal_emit(data, "elm,state,eraser,show", "elm"); } - if (eo == p->entry_account_name) { - debug_log("entry_account_name"); - if (p->str_account_name) { - g_free(p->str_account_name); - p->str_account_name = NULL; - } - - p->str_account_name = g_strdup(elm_entry_entry_get(eo)); - } else if (eo == p->entry_user_id) { + if (eo == p->entry_user_id) { debug_log("entry_user_id"); if (p->str_user_id) { g_free(p->str_user_id); @@ -1494,22 +1485,6 @@ static void _backup_input_cb(void *data, Evas_Object *obj, void *event_info) p->str_password = (char *)elm_entry_markup_to_utf8(elm_entry_entry_get(eo)); } - if (ugd->account_info == NULL) { - if (p->str_account_name == NULL) { - elm_object_disabled_set(p->l_button, EINA_TRUE); - elm_object_disabled_set(p->manual_btn, EINA_TRUE); - elm_object_disabled_set(p->tool_btn, EINA_TRUE); - return; - } - - if (g_strcmp0(p->str_account_name, "") == 0) { - elm_object_disabled_set(p->l_button, EINA_TRUE); - elm_object_disabled_set(p->manual_btn, EINA_TRUE); - elm_object_disabled_set(p->tool_btn, EINA_TRUE); - return; - } - } - if (p->str_email_address == NULL || p->str_password == NULL) { elm_object_disabled_set(p->l_button, EINA_TRUE); elm_object_disabled_set(p->manual_btn, EINA_TRUE); @@ -1829,7 +1804,7 @@ static Evas_Object *_gl_ef_content_get_cb(void *data, Evas_Object *obj, const ch p->entry_email_address = elm_entry_add(p->genlist); elm_entry_scrollable_set(p->entry_email_address, EINA_TRUE); elm_entry_single_line_set(p->entry_email_address, EINA_TRUE); - elm_entry_input_panel_return_key_disabled_set(p->entry_email_address, EINA_TRUE); + //elm_entry_input_panel_return_key_disabled_set(p->entry_email_address, EINA_TRUE); elm_entry_cnp_mode_set(p->entry_email_address, ELM_CNP_MODE_PLAINTEXT); elm_entry_input_panel_layout_set(p->entry_email_address, ELM_INPUT_PANEL_LAYOUT_EMAIL); elm_entry_editable_set(p->entry_email_address, TRUE); @@ -1879,7 +1854,7 @@ static Evas_Object *_gl_ef_content_get_cb(void *data, Evas_Object *obj, const ch p->entry_password = elm_entry_add(p->genlist); elm_entry_scrollable_set(p->entry_password, EINA_TRUE); elm_entry_single_line_set(p->entry_password, EINA_TRUE); - elm_entry_input_panel_return_key_disabled_set(p->entry_password, EINA_TRUE); + //elm_entry_input_panel_return_key_disabled_set(p->entry_password, EINA_TRUE); elm_entry_cnp_mode_set(p->entry_password, ELM_CNP_MODE_PLAINTEXT); elm_entry_input_panel_layout_set(p->entry_password, ELM_INPUT_PANEL_LAYOUT_NORMAL); elm_entry_editable_set(p->entry_password, EINA_TRUE); @@ -1922,5 +1897,18 @@ static Evas_Object *_gl_ef_content_get_cb(void *data, Evas_Object *obj, const ch return NULL; } -/* EOF */ +static void _gl_realized_cb(void *data, Evas_Object *obj, void *event_info) +{ + Elm_Object_Item *it = event_info; + struct viewdata *vd = (struct viewdata *)data; + struct priv_data *p = vd->priv; + if (p->gl_email_address_item == it) + elm_object_item_signal_emit(it, "elm,state,top", ""); + else if (p->gl_pw_item == it) + elm_object_item_signal_emit(it, "elm,state,bottom", ""); + else + elm_object_item_signal_emit(it, "elm,state,center", ""); +} + +/* EOF */ diff --git a/setting/src/email-view-initial.c b/setting/src/email-view-initial.c index 64e80f5..28719ee 100755 --- a/setting/src/email-view-initial.c +++ b/setting/src/email-view-initial.c @@ -46,8 +46,8 @@ struct priv_data { Evas_Object *b_btn; Elm_Genlist_Item_Class itc1; - Elm_Genlist_Item_Class itc2; Elm_Genlist_Item_Class itc3; + Elm_Genlist_Item_Class itc4; Ecore_Timer *vc_timer; int as_flag; }; @@ -228,25 +228,31 @@ static void _create_list(struct viewdata *vd) p->itc1.func.state_get = _gl_state_get_cb; p->itc1.func.del = _gl_del_cb; - p->itc3.item_style = "dialogue/separator/11/with_line"; + p->itc3.item_style = "dialogue/separator"; p->itc3.func.text_get = NULL; p->itc3.func.content_get = NULL; p->itc3.func.state_get = NULL; p->itc3.func.del = NULL; - git = elm_genlist_item_append(p->list, &(p->itc3), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); - elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + p->itc4.item_style = "dialogue/separator/end"; + p->itc4.func.text_get = NULL; + p->itc4.func.content_get = NULL; + p->itc4.func.state_get = NULL; + p->itc4.func.del = NULL; for (index = 0; index < ugd->sp_list_len; index++) { EmailSpDesc *desc = &(ugd->sp_list[index]); - elm_genlist_item_append(p->list, &p->itc1, (void *)desc, git, + elm_genlist_item_append(p->list, &p->itc1, (void *)desc, NULL, ELM_GENLIST_ITEM_NONE, _new_account_cb, vd); } index = -1; - elm_genlist_item_append(p->list, &p->itc1, NULL, git, + elm_genlist_item_append(p->list, &p->itc1, NULL, NULL, ELM_GENLIST_ITEM_NONE, _new_account_cb, vd); + + git = elm_genlist_item_append(p->list, &(p->itc4), NULL, NULL, + ELM_GENLIST_ITEM_NONE, NULL, NULL); + elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); } static void _new_account_cb(void *data, Evas_Object *obj, void *event_info) diff --git a/setting/src/email-view-mailbox-mapping.c b/setting/src/email-view-mailbox-mapping.c index e3f5a0e..680e2af 100755 --- a/setting/src/email-view-mailbox-mapping.c +++ b/setting/src/email-view-mailbox-mapping.c @@ -193,19 +193,19 @@ static void _create_list(struct viewdata *vd) p->itc3.func.del = _gl_del_cb; git = elm_genlist_item_append(p->genlist, &(p->itc2), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); for (i = 0; i < count; i++) { if ((p->mailbox_list[i]).mailbox_type == p->mailbox_type->mailbox_type || (p->mailbox_list[i]).mailbox_type == EMAIL_MAILBOX_TYPE_USER_DEFINED) { - elm_genlist_item_append(p->genlist, &(p->itc), (void *)i, git, + elm_genlist_item_append(p->genlist, &(p->itc), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); } } git = elm_genlist_item_append(p->genlist, &(p->itc3), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); elm_object_part_content_set(p->layout, "elm.swallow.content", p->genlist); diff --git a/setting/src/email-view-manual-setup.c b/setting/src/email-view-manual-setup.c index 497a2ec..f5b9d32 100755 --- a/setting/src/email-view-manual-setup.c +++ b/setting/src/email-view-manual-setup.c @@ -55,6 +55,7 @@ static void _gl_ex_sel_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_ex_sending_secure_sel_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_ex_incoming_type_sel_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_ex_incoming_secure_sel_cb(void *data, Evas_Object *obj, void *event_info); +static void _gl_realized_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_exp_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_con_cb(void *data, Evas_Object *obj, void *event_info); @@ -119,9 +120,20 @@ struct priv_data { Elm_Genlist_Item_Class itc6; Elm_Genlist_Item_Class itc7; + Elm_Object_Item *gl_account_name_item; + Elm_Object_Item *gl_user_name_item; + Elm_Object_Item *gl_pw_item; + + Elm_Object_Item *gl_smtp_server_item; + Elm_Object_Item *gl_smtp_port_item; Elm_Object_Item *gl_ex_item1; + Elm_Object_Item *gl_ex_item2; + Elm_Object_Item *gl_incoming_server_type_item; + Elm_Object_Item *gl_incoming_server_item; + Elm_Object_Item *gl_incoming_port_item; Elm_Object_Item *gl_ex_item3; + Elm_Object_Item * c_item[4]; Elm_Object_Item *navi_it; }; @@ -463,40 +475,40 @@ static void _create_list(struct viewdata *vd) p->itc7.func.del = NULL; git = elm_genlist_item_append(p->genlist, &(p->itc1), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); /* Account name */ i = 1; - item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, NULL, + p->gl_account_name_item = item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); /* User name */ i = 2; - item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, NULL, + p->gl_user_name_item = item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); /* Password */ i = 3; - item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, NULL, + p->gl_pw_item = item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); git = elm_genlist_item_append(p->genlist, &(p->itc1), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); /* smtp server */ i = 4; - item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, NULL, + p->gl_smtp_server_item = item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); /* smtp port */ i = 5; - item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, NULL, + p->gl_smtp_port_item = item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); @@ -506,7 +518,7 @@ static void _create_list(struct viewdata *vd) NULL, ELM_GENLIST_ITEM_TREE, _gl_ex_sel_cb, (void *)vd); git = elm_genlist_item_append(p->genlist, &(p->itc1), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); /* incoming server type */ @@ -516,13 +528,13 @@ static void _create_list(struct viewdata *vd) /* incoming server */ i = 6; - item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, NULL, + p->gl_incoming_server_item = item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); /* incoming port */ i = 7; - item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, NULL, + p->gl_incoming_port_item = item = elm_genlist_item_append(p->genlist, &(p->itc2), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_ef_sel_cb, (void *)i); elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE); @@ -532,11 +544,12 @@ static void _create_list(struct viewdata *vd) NULL, ELM_GENLIST_ITEM_TREE, _gl_ex_sel_cb, (void *)vd); git = elm_genlist_item_append(p->genlist, &(p->itc7), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); /*evas_object_smart_callback_add(p->genlist, "expand,request", _gl_exp_req_cb, (void *)vd); evas_object_smart_callback_add(p->genlist, "contract,request", _gl_con_req_cb, (void *)vd);*/ + evas_object_smart_callback_add(p->genlist, "realized", _gl_realized_cb, (void *)vd); evas_object_smart_callback_add(p->genlist, "expanded", _gl_exp_cb, (void *)vd); evas_object_smart_callback_add(p->genlist, "contracted", _gl_con_cb, (void *)vd); @@ -625,10 +638,13 @@ static void _validate_account(struct viewdata *vd, int account_id) ugd->cancel_event = 0; +/* + // remove unnessary disabling because of focus problem elm_object_disabled_set(p->r_button, EINA_TRUE); elm_object_disabled_set(p->l_button, EINA_TRUE); elm_object_disabled_set(p->l_button2, EINA_TRUE); elm_object_disabled_set(p->tool_btn, EINA_TRUE); +*/ debug_log("Start Account Validation"); ugd->popup_validate = setting_get_pb_notify(vd, @@ -814,6 +830,12 @@ static void _save_cb(void *data, Evas_Object *obj, void *event_info) ugd = vd->ugd; account = p->account; + Ecore_IMF_Context *imf_context = NULL; + imf_context = elm_entry_imf_context_get(p->clicked_object); + if (imf_context) { + ecore_imf_context_input_panel_hide(imf_context); + } + /* Save the data */ _read_all_entries(vd); debug_log("Account Structure Info\nEmail Addr:%s\nUser Dispname:%s\nUser Password:%s", @@ -1764,6 +1786,53 @@ static void _gl_ex_incoming_secure_sel_cb(void *data, Evas_Object *obj, void *ev elm_genlist_item_update(p->gl_ex_item3); } +static void _gl_realized_cb(void *data, Evas_Object *obj, void *event_info) +{ + Elm_Object_Item *it = event_info; + struct viewdata *vd = (struct viewdata *)data; + struct priv_data *p = vd->priv; + Evas_Object *parent = NULL; + + parent = elm_genlist_item_parent_get(it); + + if (!parent) + { + if (p->gl_account_name_item == it || + p->gl_smtp_server_item == it || + p->gl_ex_item2 == it) + elm_object_item_signal_emit(it, "elm,state,top", ""); + else if (p->gl_pw_item == it || + p->gl_ex_item1 == it || + p->gl_ex_item3 == it) + elm_object_item_signal_emit(it, "elm,state,bottom", ""); + else + elm_object_item_signal_emit(it, "elm,state,center", ""); + } + else + { + int index = elm_object_item_data_get(it); + + if (p->gl_ex_item2 != parent) + { + if (index == 0) + elm_object_item_signal_emit(it, "elm,state,top", ""); + else if (index == 2) + elm_object_item_signal_emit(it, "elm,state,bottom", ""); + else + elm_object_item_signal_emit(it, "elm,state,center", ""); + } + else + { + if (index == 0) + elm_object_item_signal_emit(it, "elm,state,top", ""); + else if (index == 1) + elm_object_item_signal_emit(it, "elm,state,bottom", ""); + else + elm_object_item_signal_emit(it, "elm,state,center", ""); + } + } +} + static void _gl_exp_cb(void *data, Evas_Object *obj, void *event_info) { debug_log(""); diff --git a/setting/src/email-view-setting.c b/setting/src/email-view-setting.c index d7f846f..451d7ec 100755 --- a/setting/src/email-view-setting.c +++ b/setting/src/email-view-setting.c @@ -17,6 +17,8 @@ #include "email-setting.h" #include "email-setting-utils.h" +#define PADDING_GENLIST_MAX 5 + static int _create(struct viewdata *vd); static int _update(struct viewdata *vd); static int _destroy(struct viewdata *vd); @@ -28,7 +30,7 @@ static void _create_list(struct viewdata *vd); static void _get_default_account(struct viewdata *vd); static void _back_cb(void *data, Evas_Object *obj, void *event_info); static void _add_account_cb(void *data, Evas_Object *obj, void *event_info); -static void _color_rect_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info); +static void _color_rect_cb(void *data, Evas_Object *obj, const char *emission, const char *source); static void _colorselector_cb(void *data, Evas_Object *obj, void *event_info); static void _btn_clicked_cb(void *data, Evas_Object *obj, void *event_info); static void _popup_ok_cb(void *data, Evas_Object *obj, void *event_info); @@ -45,9 +47,13 @@ static void _gl_sel_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_default_sel_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_ex_sel_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_account_sel_cb(void *data, Evas_Object *obj, void *event_info); +static void _gl_realized_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_exp_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_con_cb(void *data, Evas_Object *obj, void *event_info); +static void _create_max_account_popup_create(EmailSettingUGD *ugd); +static void _max_account_popup_ok_cb(void *data, Evas_Object *obj, void *event_info); + static struct viewdata *g_vd = NULL; struct priv_data { @@ -96,10 +102,17 @@ struct priv_data { Elm_Genlist_Item_Class itc5; Elm_Genlist_Item_Class itc6; Elm_Genlist_Item_Class itc7; + Elm_Genlist_Item_Class itc_temp; + Elm_Genlist_Item_Class itc_sepa; Elm_Object_Item * c_item[10]; Elm_Object_Item *color_item; Elm_Object_Item *default_account_item; + Elm_Object_Item *first_account_item; + Elm_Object_Item *last_account_item; + Elm_Object_Item *tmp_item[PADDING_GENLIST_MAX]; + + Ecore_Idler *bring_in_idler; }; typedef struct { @@ -107,6 +120,7 @@ typedef struct { Elm_Object_Item *it; Evas_Object *color_rect; Evas_Object *color_bar; + struct priv_data *p; } ListItemData; void setting_init_setting_view(struct viewdata *vd) @@ -201,6 +215,11 @@ static int _destroy(struct viewdata *vd) evas_object_del(p->r_button); evas_object_del(p->genlist); + if (p->bring_in_idler) { + ecore_idler_del(p->bring_in_idler); + p->bring_in_idler = NULL; + } + vd->ugd->popup_one = NULL; return TRUE; @@ -295,6 +314,13 @@ static void _create_list(struct viewdata *vd) p->genlist = elm_genlist_add(ugd->navi_bar); elm_object_style_set(p->genlist, "dialogue"); + /*separator*/ + p->itc_sepa.item_style = "dialogue/separator"; + p->itc_sepa.func.text_get = NULL; + p->itc_sepa.func.content_get = NULL; + p->itc_sepa.func.state_get = NULL; + p->itc_sepa.func.del = NULL; + /*default account*/ p->itc.item_style = "dialogue/2text.3/expandable"; p->itc.func.text_get = _gl_text_get_cb; @@ -343,6 +369,12 @@ static void _create_list(struct viewdata *vd) p->itc7.func.state_get = NULL; p->itc7.func.del = NULL; + p->itc_temp.item_style = "1icon/with_no_line"; + p->itc_temp.func.text_get = NULL; + p->itc_temp.func.content_get = NULL; + p->itc_temp.func.state_get = NULL; + p->itc_temp.func.del = NULL; + i = 1; git = elm_genlist_item_append(p->genlist, &(p->itc5), (void *)i, NULL, ELM_GENLIST_ITEM_GROUP, NULL, NULL); @@ -350,11 +382,22 @@ static void _create_list(struct viewdata *vd) i = 2; if (ugd->account_count > 0) - p->default_account_item = elm_genlist_item_append(p->genlist, &(p->itc), (void *)i, git, + p->default_account_item = elm_genlist_item_append(p->genlist, &(p->itc), (void *)i, NULL, ELM_GENLIST_ITEM_TREE, _gl_default_sel_cb, (void *)vd); else - p->default_account_item = elm_genlist_item_append(p->genlist, &(p->itc6), (void *)i, git, + { + p->default_account_item = elm_genlist_item_append(p->genlist, &(p->itc6), (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, NULL); + elm_object_item_disabled_set(p->default_account_item, EINA_TRUE); + } + +/* For Text templates + i = 5; + elm_genlist_item_append(p->genlist, &(p->itc3), (void *)i, git, + ELM_GENLIST_ITEM_NONE, NULL, (void *)vd); + */ + git = elm_genlist_item_append(p->genlist, &(p->itc_sepa), NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); + elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); i = 6; git = elm_genlist_item_append(p->genlist, &(p->itc5), (void *)i, NULL, @@ -366,17 +409,22 @@ static void _create_list(struct viewdata *vd) if (account_data) { ListItemData *item_data = calloc(1, sizeof(ListItemData)); + item_data->p = p; item_data->account_data = account_data; item_data->it = elm_genlist_item_append(p->genlist, &(p->itc4), - (void *)item_data, git, ELM_GENLIST_ITEM_NONE, + (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, _gl_account_sel_cb, (void *)account_data); + if (i == 0) + p->first_account_item = item_data->it; + p->last_account_item = item_data->it; } } git = elm_genlist_item_append(p->genlist, &(p->itc7), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + evas_object_smart_callback_add(p->genlist, "realized", _gl_realized_cb, (void *)vd); evas_object_smart_callback_add(p->genlist, "expanded", _gl_exp_cb, (void *)vd); evas_object_smart_callback_add(p->genlist, "contracted", _gl_con_cb, (void *)vd); @@ -461,13 +509,28 @@ static void _add_account_cb(void *data, Evas_Object *obj, void *event_info) ugd->popup_color = NULL; } - setting_change_view(VIEW_SP_SELECT, vd->ugd); + if(ugd->account_count >= MAX_ACCOUNT_COUNT) { + _create_max_account_popup_create(ugd); + } else { + setting_change_view(VIEW_SP_SELECT, vd->ugd); + } } -static void _color_rect_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info) +Eina_Bool _genlist_bring_in_idler(void *data) { debug_log(""); + ListItemData *li = (ListItemData *)data; + Elm_Object_Item *it = li->it; + struct priv_data *p = li->p; + elm_genlist_item_bring_in(it, ELM_GENLIST_ITEM_SCROLLTO_TOP); + + p->bring_in_idler = NULL; + + return ECORE_CALLBACK_CANCEL; +} +static void _show_color_rect(void *data) +{ struct viewdata *vd = g_vd; EmailSettingUGD *ugd = vd->ugd; struct priv_data *p = vd->priv; @@ -478,11 +541,6 @@ static void _color_rect_cb(void *data, Evas * evas, Evas_Object *obj, void *even return; } - if (ugd->popup_color) { - evas_object_del(ugd->popup_color); - ugd->popup_color = NULL; - } - ListItemData *item_data = NULL; email_account_t *account_data = NULL; @@ -492,22 +550,35 @@ static void _color_rect_cb(void *data, Evas * evas, Evas_Object *obj, void *even return; } + int i = 0; + for (i = 0; i < PADDING_GENLIST_MAX; i++) { + if (p->tmp_item[i]) { + elm_object_item_del(p->tmp_item[i]); + p->tmp_item[i] = NULL; + } + p->tmp_item[i] = elm_genlist_item_append(p->genlist, &(p->itc_temp), + NULL, NULL, ELM_GENLIST_ITEM_NONE, + NULL, NULL); + elm_genlist_item_select_mode_set(p->tmp_item[i], ELM_OBJECT_SELECT_MODE_NONE); + } + account_data = item_data->account_data; account_user_data_t *user_data = (account_user_data_t *)account_data->user_data; unsigned int val = user_data->index_color; - int r = (val & 0xff000000) >> 24; - int g = (val & 0x00ff0000) >> 16; - int b = (val & 0x0000ff00) >> 8; - int a = val & 0x000000ff; - - ugd->popup_color = elm_notify_add(ugd->navi_bar); - elm_notify_align_set(ugd->popup_color, ELM_NOTIFY_ALIGN_FILL, 1.0); - evas_object_size_hint_weight_set(ugd->popup_color, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - /*elm_popup_buttons_add(ugd->popup_color, 2, dgettext("sys_string", "IDS_COM_SK_OK"), - ELM_POPUP_RESPONSE_OK, - dgettext("sys_string", "IDS_COM_SK_CANCEL"), - ELM_POPUP_RESPONSE_CANCEL, NULL);*/ + int r = p->color_r = (val & 0xff000000) >> 24; + int g = p->color_g = (val & 0x00ff0000) >> 16; + int b = p->color_b = (val & 0x0000ff00) >> 8; + int a = p->color_a = val & 0x000000ff; + + if (ugd->popup_color) { + evas_object_del(elm_object_content_get(ugd->popup_color)); + elm_object_content_unset(ugd->popup_color); + } else { + ugd->popup_color = elm_notify_add(ugd->navi_bar); + elm_notify_align_set(ugd->popup_color, ELM_NOTIFY_ALIGN_FILL, 1.0); + evas_object_size_hint_weight_set(ugd->popup_color, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + } p->ly = elm_layout_add(ugd->popup_color); elm_layout_file_set(p->ly, EV_THEME_PATH, "color_palette"); @@ -561,6 +632,25 @@ static void _color_rect_cb(void *data, Evas * evas, Evas_Object *obj, void *even evas_object_show(ugd->popup_color); } +static void _color_rect_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + debug_log(""); + struct viewdata *vd = g_vd; + EmailSettingUGD *ugd = vd->ugd; + struct priv_data *p = vd->priv; + + ugd->custom_rotate_cb = _show_color_rect; + ugd->custom_rotate_cb_data = data; + + _show_color_rect(data); + + if (p->bring_in_idler) { + ecore_idler_del(p->bring_in_idler); + p->bring_in_idler = NULL; + } + p->bring_in_idler = ecore_idler_add(_genlist_bring_in_idler, data); +} + static void _colorselector_cb(void *data, Evas_Object *obj, void *event_info) { debug_log(""); @@ -588,6 +678,18 @@ static void _btn_clicked_cb(void *data, Evas_Object *obj, void *event_info) EmailSettingUGD *ugd = vd->ugd; struct priv_data *p = vd->priv; + ugd->custom_rotate_cb = NULL; + ugd->custom_rotate_cb_data = NULL; + + int i = 0; + for (i = 0; i < PADDING_GENLIST_MAX; i++) { + if (p->tmp_item[i]){ + elm_object_item_del(p->tmp_item[i]); + p->tmp_item[i] = NULL; + } + } + elm_scroller_content_min_limit(p->genlist, EINA_TRUE, EINA_TRUE); + if (!item_data) { if (ugd->popup_color) { evas_object_del(ugd->popup_color); @@ -813,13 +915,19 @@ static Evas_Object *_gl_account_content_get_cb(void *data, Evas_Object *obj, con debug_log("R[%d] G[%d] B[%d] A[%d]", r, g, b, a); - color_rect = evas_object_rectangle_add(evas_object_evas_get(obj)); - evas_object_size_hint_fill_set(color_rect, EVAS_HINT_FILL, EVAS_HINT_FILL); + Evas_Object *rect_ly = elm_layout_add(obj); + elm_layout_file_set(rect_ly, EV_THEME_PATH, "email_color_rect"); + + color_rect = elm_image_add(obj); + elm_image_file_set(color_rect, EMAIL_COLOR_RECT_IMG, NULL); evas_object_color_set(color_rect, r, g, b, a); - evas_object_propagate_events_set(color_rect, EINA_FALSE); - evas_object_event_callback_add(color_rect, EVAS_CALLBACK_MOUSE_DOWN, _color_rect_cb, (void *)item_data); item_data->color_rect = color_rect; - return color_rect; + edje_object_signal_callback_add(elm_layout_edje_get(rect_ly), "elm,action,color_rect_clicked", "elm", _color_rect_cb, (void *)item_data); + elm_object_part_content_set(rect_ly, "color_rect", color_rect); + evas_object_propagate_events_set(color_rect, EINA_FALSE); + evas_object_propagate_events_set(rect_ly, EINA_FALSE); + + return rect_ly; } return NULL; @@ -933,6 +1041,36 @@ static void _gl_account_sel_cb(void *data, Evas_Object *obj, void *event_info) return; } +static void _gl_realized_cb(void *data, Evas_Object *obj, void *event_info) +{ + + Elm_Object_Item *it = event_info; + struct viewdata *vd = (struct viewdata *)data; + struct priv_data *p = vd->priv; + EmailSettingUGD *ugd = vd->ugd; + Evas_Object *parent = NULL; + int account_count = ugd->account_count; + + parent = elm_genlist_item_parent_get(it); + + if (!parent) { + if ((p->first_account_item == it || p->last_account_item == it) && (account_count == 1)) + return; + if (p->default_account_item == it) + return; + } else { + if (account_count == 1) + return; + int index = elm_object_item_data_get(it); + if (index == 0) + elm_object_item_signal_emit(it, "elm,state,top", ""); + else if (index == ugd->account_count - 1) + elm_object_item_signal_emit(it, "elm,state,bottom", ""); + else + elm_object_item_signal_emit(it, "elm,state,center", ""); + } +} + static void _gl_exp_cb(void *data, Evas_Object *obj, void *event_info) { debug_log(""); @@ -967,5 +1105,31 @@ static void _gl_con_cb(void *data, Evas_Object *obj, void *event_info) Elm_Object_Item *item = event_info; elm_genlist_item_subitems_clear(item); } +static void _create_max_account_popup_create(EmailSettingUGD *ugd) +{ + debug_log(""); + Evas_Object *popup = elm_popup_add(ugd->win); + evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_text_set(popup, N_("Maximum number of email accounts reached")); + + Evas_Object *btn1 = elm_button_add(popup); + elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_OK")); + elm_object_part_content_set(popup, "button1", btn1); + evas_object_smart_callback_add(btn1, "clicked", _max_account_popup_ok_cb, popup); + evas_object_show(popup); + +} +static void _max_account_popup_ok_cb(void *data, Evas_Object *obj, void *event_info) +{ + debug_log(""); + + if (!data) { + debug_log("data is NULL"); + return; + } + + evas_object_del(data); + +} /* EOF */ diff --git a/setting/src/email-view-sp-select.c b/setting/src/email-view-sp-select.c index 477ea8f..5dda026 100755 --- a/setting/src/email-view-sp-select.c +++ b/setting/src/email-view-sp-select.c @@ -201,21 +201,21 @@ static void _create_list(struct viewdata *vd) p->itc4.func.del = NULL; git = elm_genlist_item_append(p->list, &(p->itc3), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); for (index = 0; index < ugd->sp_list_len; index++) { EmailSpDesc *desc = &(ugd->sp_list[index]); - elm_genlist_item_append(p->list, &p->itc1, (void *)desc, git, + elm_genlist_item_append(p->list, &p->itc1, (void *)desc, NULL, ELM_GENLIST_ITEM_NONE, _add_account_cb, vd); } index = -1; - elm_genlist_item_append(p->list, &p->itc1, NULL, git, + elm_genlist_item_append(p->list, &p->itc1, NULL, NULL, ELM_GENLIST_ITEM_NONE, _add_account_cb, vd); git = elm_genlist_item_append(p->list, &(p->itc4), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); } @@ -260,6 +260,24 @@ static void _back_cb(void *data, Evas_Object *obj, void *event_info) return; } +static void _popup_ok_cb(void *data, Evas_Object *obj, void *event_info) +{ + debug_log(""); + + if (!data) { + debug_log("data is NULL"); + return; + } + + struct viewdata *vd = (struct viewdata *)data; + EmailSettingUGD *ugd = vd->ugd; + + if (ugd->popup_one) { + evas_object_del(ugd->popup_one); + ugd->popup_one = NULL; + } +} + static char *_gl_text_get_cb(void *data, Evas_Object *obj, const char *part) { debug_log(""); diff --git a/setting/src/email-view-sync-schedule.c b/setting/src/email-view-sync-schedule.c index 3f2f796..ca4a9db 100755 --- a/setting/src/email-view-sync-schedule.c +++ b/setting/src/email-view-sync-schedule.c @@ -63,6 +63,7 @@ static Evas_Object *_gl_ex_sync_content_get_cb(void *data, Evas_Object *obj, con static void _gl_sel_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_ex_sel_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_ex_sync_sel_cb(void *data, Evas_Object *obj, void *event_info); +static void _gl_realized_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_exp_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_con_cb(void *data, Evas_Object *obj, void *event_info); @@ -435,34 +436,35 @@ static void _create_list(struct viewdata *vd) /*seperator*/ git = elm_genlist_item_append(p->genlist, &(p->itc_sep), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); /*account*/ - item = elm_genlist_item_append(p->genlist, &(p->itc_account), NULL, git, + item = elm_genlist_item_append(p->genlist, &(p->itc_account), NULL, NULL, ELM_GENLIST_ITEM_NONE, _account_edit_cb, (void *)vd); p->gl_account_item = item; /*sync schedule*/ item = elm_genlist_item_append(p->genlist, &(p->itc_sync), NULL, - git, ELM_GENLIST_ITEM_TREE, _gl_ex_sel_cb, (void *)vd); + NULL, ELM_GENLIST_ITEM_TREE, _gl_ex_sel_cb, (void *)vd); p->gl_sync_item = item; /*seperator*/ git = elm_genlist_item_append(p->genlist, &(p->itc_sep), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); /*sync on/off*/ item = elm_genlist_item_append(p->genlist, &(p->itc_onoff), (void *)i, - git, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); + NULL, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); p->gl_onoff_item = item; /*seperator*/ git = elm_genlist_item_append(p->genlist, &(p->itc_sep2), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + evas_object_smart_callback_add(p->genlist, "realized", _gl_realized_cb, (void *)vd); evas_object_smart_callback_add(p->genlist, "expanded", _gl_exp_cb, (void *)vd); evas_object_smart_callback_add(p->genlist, "contracted", _gl_con_cb, (void *)vd); @@ -1103,6 +1105,33 @@ static void _gl_ex_sync_sel_cb(void *data, Evas_Object *obj, void *event_info) elm_genlist_item_update(p->gl_sync_item); } +static void _gl_realized_cb(void *data, Evas_Object *obj, void *event_info) +{ + Elm_Object_Item *it = event_info; + struct viewdata *vd = (struct viewdata *)data; + struct priv_data *p = vd->priv; + Evas_Object *parent = NULL; + + parent = elm_genlist_item_parent_get(it); + + if (!parent && p->gl_onoff_item != it) { + if (p->gl_account_item == it) + elm_object_item_signal_emit(it, "elm,state,top", ""); + else if (p->gl_sync_item == it) + elm_object_item_signal_emit(it, "elm,state,bottom", ""); + else + elm_object_item_signal_emit(it, "elm,state,center", ""); + } else if (parent) { + int index = elm_object_item_data_get(it); + if (index == 0) + elm_object_item_signal_emit(it, "elm,state,top", ""); + else if (index == 6) + elm_object_item_signal_emit(it, "elm,state,bottom", ""); + else + elm_object_item_signal_emit(it, "elm,state,center", ""); + } +} + static void _gl_exp_cb(void *data, Evas_Object *obj, void *event_info) { debug_log(""); diff --git a/setting/src/email-view-sync-setup.c b/setting/src/email-view-sync-setup.c index 2660907..d2bd98b 100755 --- a/setting/src/email-view-sync-setup.c +++ b/setting/src/email-view-sync-setup.c @@ -63,6 +63,7 @@ static Evas_Object *_gl_ex_sync_content_get_cb(void *data, Evas_Object *obj, con static void _gl_sel_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_ex_sel_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_ex_sync_sel_cb(void *data, Evas_Object *obj, void *event_info); +static void _gl_realized_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_exp_cb(void *data, Evas_Object *obj, void *event_info); static void _gl_con_cb(void *data, Evas_Object *obj, void *event_info); @@ -435,34 +436,35 @@ static void _create_list(struct viewdata *vd) /*seperator*/ git = elm_genlist_item_append(p->genlist, &(p->itc_sep), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); /*account*/ - item = elm_genlist_item_append(p->genlist, &(p->itc_account), NULL, git, + item = elm_genlist_item_append(p->genlist, &(p->itc_account), NULL, NULL, ELM_GENLIST_ITEM_NONE, _account_edit_cb, (void *)vd); p->gl_account_item = item; /*sync schedule*/ item = elm_genlist_item_append(p->genlist, &(p->itc_sync), NULL, - git, ELM_GENLIST_ITEM_TREE, _gl_ex_sel_cb, (void *)vd); + NULL, ELM_GENLIST_ITEM_TREE, _gl_ex_sel_cb, (void *)vd); p->gl_sync_item = item; /*seperator*/ git = elm_genlist_item_append(p->genlist, &(p->itc_sep), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); /*sync on/off*/ item = elm_genlist_item_append(p->genlist, &(p->itc_onoff), (void *)i, - git, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); + NULL, ELM_GENLIST_ITEM_NONE, _gl_sel_cb, (void *)i); p->gl_onoff_item = item; /*seperator*/ git = elm_genlist_item_append(p->genlist, &(p->itc_sep2), NULL, NULL, - ELM_GENLIST_ITEM_GROUP, NULL, NULL); + ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); + evas_object_smart_callback_add(p->genlist, "realized", _gl_realized_cb, (void *)vd); evas_object_smart_callback_add(p->genlist, "expanded", _gl_exp_cb, (void *)vd); evas_object_smart_callback_add(p->genlist, "contracted", _gl_con_cb, (void *)vd); @@ -1130,6 +1132,33 @@ static void _gl_ex_sync_sel_cb(void *data, Evas_Object *obj, void *event_info) elm_genlist_item_update(p->gl_sync_item); } +static void _gl_realized_cb(void *data, Evas_Object *obj, void *event_info) +{ + Elm_Object_Item *it = event_info; + struct viewdata *vd = (struct viewdata *)data; + struct priv_data *p = vd->priv; + Evas_Object *parent = NULL; + + parent = elm_genlist_item_parent_get(it); + + if (!parent && p->gl_onoff_item != it) { + if (p->gl_account_item == it) + elm_object_item_signal_emit(it, "elm,state,top", ""); + else if (p->gl_sync_item == it) + elm_object_item_signal_emit(it, "elm,state,bottom", ""); + else + elm_object_item_signal_emit(it, "elm,state,center", ""); + } else if (parent) { + int index = elm_object_item_data_get(it); + if (index == 0) + elm_object_item_signal_emit(it, "elm,state,top", ""); + else if (index == 6) + elm_object_item_signal_emit(it, "elm,state,bottom", ""); + else + elm_object_item_signal_emit(it, "elm,state,center", ""); + } +} + static void _gl_exp_cb(void *data, Evas_Object *obj, void *event_info) { debug_log(""); diff --git a/setting/theme/email-setting-theme.edc b/setting/theme/email-setting-theme.edc index f7408ab..b51f845 100755 --- a/setting/theme/email-setting-theme.edc +++ b/setting/theme/email-setting-theme.edc @@ -18,6 +18,124 @@ #include "email-setting-theme-macro.edc" collections { + group { + name: "add_account"; + parts { + part { + name: "add_account/bg"; + type: RECT; + repeat_events: 1; + scale: 1; + description { + min: 0 650; + state: "default" 0.0; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + color: 0 0 0 0; + align: 0.0 0.0; + } + } + part { + name: "add_account/layout"; + type: SWALLOW; + scale: 1; + description { + fixed: 1 0; + min: 0 320; + state: "default" 0.0; + rel1 { relative: 0 0; to: "add_account/bg"; } + rel2 { relative: 1 0; offset: 0 330; to: "add_account/bg"; } + color: 0 0 0 255; + } + } + part { + name: "add_account/check1"; + type: SWALLOW; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + rel1.relative: 0.03 1.1; + rel1.to_y: "add_account/layout"; + rel2.relative: 0.08 1.15; + rel2.to_y: "add_account/layout"; + color: 255 255 255 255; + } + } + part { + name: "add_account/text1"; + type: SWALLOW; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + rel1.relative: 1.0 0.2; + rel1.to_x: "add_account/check1"; + rel1.to_y: "add_account/check1"; + rel2.relative: 0.93 1.0; + rel2.to_y: "add_account/check1"; + color: 255 255 255 255; + } + } + part { + name: "add_account/check2"; + type: SWALLOW; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + rel1.relative: 0.03 1.3; + rel1.to_y: "add_account/layout"; + rel2.relative: 0.08 1.35; + rel2.to_y: "add_account/layout"; + color: 255 255 255 255; + } + } + part { + name: "add_account/text2"; + type: SWALLOW; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + rel1.relative: 1.0 0.2; + rel1.to_x: "add_account/check2"; + rel1.to_y: "add_account/check2"; + rel2.relative: 0.93 1.0; + rel2.to_y: "add_account/check2"; + color: 255 255 255 255; + } + } + part { + name: "add_account/button"; + type: SWALLOW; + scale: 1; + description { + fixed: 1 1; + state: "default" 0.0; + rel1.relative: 0.22 1.6; + rel1.to_y: "add_account/check2"; + rel2.relative: 0.78 2.6; + rel2.to_y: "add_account/check2"; + color: 0 0 0 255; + } + } + } + programs { + program { + name: "text1_clicked"; + signal: "mouse,up,1"; + source: "add_account/text1"; + action: SIGNAL_EMIT "elm,action,text1_clicked" "elm"; + } + program { + name: "text2_clicked"; + signal: "mouse,up,1"; + source: "add_account/text2"; + action: SIGNAL_EMIT "elm,action,text2_clicked" "elm"; + } + } + } group { name: "dg_email_colorbar"; parts { @@ -965,7 +1083,6 @@ collections { fixed: 0 1; rel1 { relative: 0 0; to: "bg"; } rel2 { relative: 1 0; to: "bg"; } - align: 0.0 0.0; visible: 0; } @@ -1929,5 +2046,64 @@ collections { } } } -} + group { name: "email_color_rect"; + images { + image: "M02_color_bar_outline.png" COMP; + image: "M02_color_bar_masking.png" COMP; + } + parts { + part { + name: "bg"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + color: 0 0 0 0; + min: 30 30; + max: 80 80; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + } + } + part { + name: "color_rect"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + visible: 1; + align: 0.0 0.0; + rel1 { relative: 0 0; to: "bg"; } + rel2 { relative: 1 1; to: "bg"; } + } + } + part { + name: "color_rect_outline"; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + visible: 1; + align: 0.0 0.0; + rel1 { relative: 0 0; to: "color_rect"; } + rel2 { relative: 1 1; to: "color_rect"; } + image { + normal: "M02_color_bar_outline.png"; + } + } + } + } + programs { + program { + name: "color_rect_clicked"; + signal: "mouse,up,1"; + source: "color_rect_outline"; + action: SIGNAL_EMIT "elm,action,color_rect_clicked" "elm"; + } + } + } +} -- 2.7.4