From 448dc78561648b88a157fe181cc9094e1b608cae Mon Sep 17 00:00:00 2001 From: Rodrigo Moya Date: Tue, 4 Jan 2005 18:47:48 +0000 Subject: [PATCH] added category icons from GAL. 2005-01-04 Rodrigo Moya * art/Makefile.am: * art/category*.png: added category icons from GAL. * Makefile.am: * configure.in: added 'art' directory to build. * libedataserver/e-categories.[ch]: moved categories API from evolution. * libedataserver/Makefile.am: added new files to the build. --- ChangeLog | 12 ++ Makefile.am | 4 +- art/.cvsignore | 2 + art/Makefile.am | 22 +++ art/category_birthday_16.png | Bin 0 -> 429 bytes art/category_business_16.png | Bin 0 -> 680 bytes art/category_favorites_16.png | Bin 0 -> 671 bytes art/category_gifts_16.png | Bin 0 -> 551 bytes art/category_goals_16.png | Bin 0 -> 583 bytes art/category_holiday-cards_16.png | Bin 0 -> 549 bytes art/category_holiday_16.png | Bin 0 -> 691 bytes art/category_hot-contacts_16.png | Bin 0 -> 776 bytes art/category_ideas_16.png | Bin 0 -> 781 bytes art/category_international_16.png | Bin 0 -> 715 bytes art/category_key-customer_16.png | Bin 0 -> 717 bytes art/category_miscellaneous_16.png | Bin 0 -> 698 bytes art/category_personal_16.png | Bin 0 -> 548 bytes art/category_phonecalls_16.png | Bin 0 -> 608 bytes art/category_status_16.png | Bin 0 -> 668 bytes art/category_strategies_16.png | Bin 0 -> 696 bytes art/category_suppliers_16.png | Bin 0 -> 656 bytes art/category_time-and-expenses_16.png | Bin 0 -> 649 bytes configure.in | 4 + libedataserver/Makefile.am | 3 + libedataserver/e-categories.c | 312 ++++++++++++++++++++++++++++++++++ libedataserver/e-categories.h | 40 +++++ 26 files changed, 397 insertions(+), 2 deletions(-) create mode 100644 art/.cvsignore create mode 100644 art/Makefile.am create mode 100644 art/category_birthday_16.png create mode 100644 art/category_business_16.png create mode 100644 art/category_favorites_16.png create mode 100644 art/category_gifts_16.png create mode 100644 art/category_goals_16.png create mode 100644 art/category_holiday-cards_16.png create mode 100644 art/category_holiday_16.png create mode 100644 art/category_hot-contacts_16.png create mode 100644 art/category_ideas_16.png create mode 100644 art/category_international_16.png create mode 100644 art/category_key-customer_16.png create mode 100644 art/category_miscellaneous_16.png create mode 100644 art/category_personal_16.png create mode 100644 art/category_phonecalls_16.png create mode 100644 art/category_status_16.png create mode 100644 art/category_strategies_16.png create mode 100644 art/category_suppliers_16.png create mode 100644 art/category_time-and-expenses_16.png create mode 100644 libedataserver/e-categories.c create mode 100644 libedataserver/e-categories.h diff --git a/ChangeLog b/ChangeLog index b551424..27678e5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2005-01-04 Rodrigo Moya + + * art/Makefile.am: + * art/category*.png: added category icons from GAL. + + * Makefile.am: + * configure.in: added 'art' directory to build. + + * libedataserver/e-categories.[ch]: moved categories API from evolution. + + * libedataserver/Makefile.am: added new files to the build. + 2004-12-31 JP Rosevear * Makefile.am: clean iconv-detect.h diff --git a/Makefile.am b/Makefile.am index aec1009..65de60d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,8 +1,8 @@ AUTOMAKE_OPTIONS = 1.6 DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc -SUBDIRS = libdb libedataserver servers camel addressbook calendar libedataserverui src docs po -DIST_SUBDIRS= libedataserver servers camel addressbook calendar libedataserverui src docs po +SUBDIRS = libdb libedataserver servers camel addressbook calendar libedataserverui src docs art po +DIST_SUBDIRS= libedataserver servers camel addressbook calendar libedataserverui src docs art po changelogs = \ ChangeLog diff --git a/art/.cvsignore b/art/.cvsignore new file mode 100644 index 0000000..282522d --- /dev/null +++ b/art/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/art/Makefile.am b/art/Makefile.am new file mode 100644 index 0000000..4bc6dac --- /dev/null +++ b/art/Makefile.am @@ -0,0 +1,22 @@ +images_DATA = \ + category_birthday_16.png \ + category_business_16.png \ + category_favorites_16.png \ + category_gifts_16.png \ + category_goals_16.png \ + category_holiday_16.png \ + category_holiday-cards_16.png \ + category_hot-contacts_16.png \ + category_ideas_16.png \ + category_international_16.png \ + category_key-customer_16.png \ + category_miscellaneous_16.png \ + category_personal_16.png \ + category_phonecalls_16.png \ + category_status_16.png \ + category_strategies_16.png \ + category_suppliers_16.png \ + category_time-and-expenses_16.png + +EXTRA_DIST = \ + $(images_DATA) diff --git a/art/category_birthday_16.png b/art/category_birthday_16.png new file mode 100644 index 0000000000000000000000000000000000000000..eb153967d22a5bf82d087b34c8c68c78f01028f1 GIT binary patch literal 429 zcmV;e0aE^nP)v1-Cl6g^4$Oqk^eJ)D#95o-Z z6KC@i8tel4hbJJSAcVMqykbcZ5bazDX$SN*8i9yFMED+$K}7g43=k1M2Lr5J7e=Q8 zdpb=FOE|EGL$Fc_5@VQ{CNy2gTdRe;N(JxTE^ajq)mkl~;{g*zavTSjs+zDpF-?e~ zh~F^8k7ePZTFra{1OWbGftBlWakSZh$ucCyunvOEz3>L%c3bEd=)~W!o`TjbX&D@*$eCa95IYm*#YPi5cF$}!Utf;iLAk8(q~`^B_frgi X5|hRGVZ-SQ00000NkvXXu0mjfy8f`l literal 0 HcmV?d00001 diff --git a/art/category_business_16.png b/art/category_business_16.png new file mode 100644 index 0000000000000000000000000000000000000000..9021898963f20279a48ee1c6b6c1cc9b804b6939 GIT binary patch literal 680 zcmV;Z0$2TsP)u}H0006vNklDn-Ms&k`yv4-P}@}WQ@45`;DP~`mhd4RRnj&CZ`kaOo1-6)$l$T**_r4)A;BFcF->4ouse^#8B=u|hJ6~6(Y*eLMBd`@2g O0000#+M0jnLXl}ukOo#z5k=NHgrJ*H$Aai!hrmP7HHj_~MNmQ) z35pKsB_ukO)v+`z%`7vgYje}Ny>r{U-uLNH%9bW{=s7*l!}ENe@8SEvKZHonx}GX6 z_6JP*jm+iCvOu>0wRlj^^P zQNJBk;l-$LVsKZClOLC4Rf(}i3N@fAeQ0PXkBPsdlj&p2Xx=S2sU-H~dz|lcC_`f- z1)vGI4(^JDWGz&s7sFqL6pJ{~SqkGLBvZ>wT6P&=4QEe%z)7c29upA66~tPmIP(d6 zVwB?NamLbl-ll&6&T6U*pz1DNr|{+#PHYZmaRJF?aaSyyL<}bpV=j~9YsRL3sX+f} zQw4tmj8ZxCgAWMpJAhsjLPQX|z>nxGZa&A9Ws}Pl0SE?twA8LZJYNP-dtOK6MYce5 zs2Za&j25WDbsXlS^TacGt}f(IpnU!ieid17gm=Tk0P<*OwTvEWlrJ4^^89dEZttiT zk3zaTJJ)8P9BkgyRdRoums+3BbRN3nSu&1nII93mvx45<3p6xr#dT9eB5}I99?F1M z<5bRN>UfiO-tN_zAD?@tB?DJ~jXV002ovPDHLk FV1jG8E=&Lb literal 0 HcmV?d00001 diff --git a/art/category_gifts_16.png b/art/category_gifts_16.png new file mode 100644 index 0000000000000000000000000000000000000000..331720c93f51b20afa7e30ce00e1102c3e50c0e6 GIT binary patch literal 551 zcmV+?0@(eDP)KMe%0jOL}PMu9mLe6(P};0`*EK4`#9fu1+FhGM+^CygzLcl zX)~t!J^+rsu2J`KHZLROf;;cKk&FdAXfjdMQbBw-fV}Jh!0=MU@*&$uxCA}(&6GUp zLrnxxHhe^^-!sm}o>~meCrs`Nz~|i7GvD1T)g05=>-7tR5hh-otWOdBIcb&O#}gmemg*3bOZ1M zJ<{_{0A3ILMt5}}$&jDm%mjjE1!HYLqP~=fa}<4}7thHa32PM~B3)s0`MxF#-YhJQRbr_! puxdXh8cWkZ68dKr{wt05u5;71q6hO&R(AjZ002ovPDHLkV1gcT@H+qi literal 0 HcmV?d00001 diff --git a/art/category_goals_16.png b/art/category_goals_16.png new file mode 100644 index 0000000000000000000000000000000000000000..90c4b132801f3658869fa2d68df50464ec6b06c3 GIT binary patch literal 583 zcmV-N0=WH&P)6o#K~?vFE5qF`lCKVY+%vPeUSgmmYoB52XiCR#|`A`Ak5pdYA6XQ4!` zVj=_=A}$Q?re!3x3TmK+BW-Nf9TpPPJm^3FkG7nFTp1W)>%mSGE=DHDFZ={em#h)s>+~37Lp=aW zFQwiYZla;3lXONAjo$+$;0Of#42HT0cbtWS0lre*PhGl+D?&7WyRe8jpt+FAa((VG zIv!oaPXWXi({+g%hQx|sZQFO0?YR{Y7peu?tDxP4kOsLtJue2>5jg^YZaI!BA}s*7 zPV5H2DjF*}dWOA`8b}EN)5UaG3kJoVtpZdTv_ErUc8btK0uGtH{;|j-`vcaoW|}Y% zPvQHEU$;tJ!trU?jmNp1NkmaC Vp~iZX@6P}L002ovPDHLkV1j3v|26;s literal 0 HcmV?d00001 diff --git a/art/category_holiday-cards_16.png b/art/category_holiday-cards_16.png new file mode 100644 index 0000000000000000000000000000000000000000..4c596e146231577ca746982bdcc09cec91367557 GIT binary patch literal 549 zcmV+=0^0qFP)kNm$r{A95oE!YAgGmKE9hU)DvgbeMSA~&h4>3>?YvZi zi8gB?k~NF2j;OheJDZ(MX1?#6u`m#@bzx6+c#Ff~c@G@71d#tvfCb?DK0-@Wswi0| zhM6-AraXM%v!B3&8*4NigA7TU+eoD`g~^3WTYm#&nh?zt%Z9>TIl;#-Bi5EI9^J09 zyR*x>710|Pc=J6XRt9IiWk%!4qQSH6AIMnZRZ7eb2AHD2tt&3h65N0M4us9g%`LpD z&Cej_Q{U(A^^HZq+Yi66M8;=zNRWV<9iX|RFQ#AsXJsf{JoN8VIA{ANweA0@|eF#G=0VWK8jL^Vq%DZ3jJFbg0 z^OmcX6qqKT-?>zl6^o)in*vP*XCCS2t0}0yvB9_HZGfCkCCRs>tSyP01$OO{RF3H2+#QmzWI!< z=@eEw)(3V108m`t&bv+@(O+QeCs zk?L`1sd3{Sn%MAIu0%nx1WD|RgIT9+3aQbb_M9k z4aD-dPf|_9@ca6@qY<^NqN&4kzpZ{Q&zYqGMqz$-z^s^}x@PPG78mBVP~El8hL@iG z)Q-(!QWG&g4t70^1mmYFnmRl!4W8A&N+f%JF`NS;|NC69bjBYzAf+^$1jT^8t+koj zu~~Y%?xCoOIIeu#2{oZ7-ao!NY3O<`QrOLkhyZDTM3RZbs%i3%D@SpiD=Fv2(8ybN zv8z(CWja`x*ZT7IWfUo9p&*2o%wH-1hQxxzq#K4X48n=Ht}RTD5A^puxRsH$JDCCh Zp}!<&?c8P-d29dx002ovPDHLkV1kVkHu?Yn literal 0 HcmV?d00001 diff --git a/art/category_hot-contacts_16.png b/art/category_hot-contacts_16.png new file mode 100644 index 0000000000000000000000000000000000000000..ee71411f5559f850eea84358ae51053c90bd3fe7 GIT binary patch literal 776 zcmV+j1NZ!iP)czCo^x_tgAdxhY)W!nAl7&?*?MQ@#SXfxN zFKpd*5(yG*DWer74dPO5wbQDWUgq*&UWRE~K1wNZl*f@sAtOpK3Wuk8qG|y+zq*4BE5djcQEu#8!oCBSrDa<^ zdU*jNY3hnIXl;=FFiiQ!K`Osbqa*=ETal-mEe&jd45d4pv1(R5ZvAb_Z~U8-V8u5ZXL(Y4`8T9 zc-LpsnfQb^*n^k#p^OxUnFClbX`{xI$mn}se$D`>Us%5C{w3s0w1B-$ege^DP#QxV zf$=HaFJF;~emYzG*?#9cwj=5flz->^^vVKi${=1>h;OMMXCz5?tIM(HX&#Sc$abJq zWdP)00079(U6o#Mk-Ful%X`nNeRLB$rM4^g}8M`f%4G9}bSV?r_%8;%MB!tAIhPWU$ zCe@8`rKWEDN!64FLP!g3h)IXPX+R?`j96Ns+&jZKL+{-0e#b?z3TVQcoW=Qj&&kPq zgomM-Oom)8M?Rm&_k9|T2DMs^N~J;^#{ly0h80Id^!&*aJl|bpZN2~|g8=GcQd_4I z&T-@CpV+nU$ipPB9XyDL=+&tYbtx*VZC2H#O?7EgQyXiV)YZnJ#gV-5`r5Cj38>z~DM?ZWtNAU=qP7!NT4Vp{NmcFd|g#h&em2qJ=2Fr80z5Cj2h z+B*;vJaQ35)%`sX5szGZ+e&)6r4@5=DItzye!uxE⪙)K~vOOoQqL=A7^W%Nfnpe zBMhSzg5sYw{1NAqrYWV;MGA!tc-aEtwJc9hW7NgqnrK?XB@xp+4}u` z6%jI-4B2cJ-}kZB(rh+Kl7u8l07O;M%Qu*wUBCx;ajWq3tNny;u9N)!&-Cb#0lGFm zL%DpF#l^dLp2z1SUjc|`AXVsj_fyvOtX(F!9r+l&OMd^jPEMR=^OkK`Yw3PrCx0x= zQ>|9mvUwAO$A>g^%OWa&`yPFL!}#(F1YW|W(r?tqUYFJVdv)-g!|dqZ$%PBk0L?H_R5r&J*-94!&iFIUq?w3Hsf=Y=E@~4*6c|BKi*~IFYTK@D1g#QUL=?0N z45B1jv}hF=3E@VRQd2Z!%xoN;8J+p&`?O@fx!M1UBL~}P++9a|T<|qD%lOGnQ#R z%%S9IV&NLr(qp_CevYY%u$V3~J-XtJ4?eXvAabL-sV~WN+qC7LNU)fgWyBsPTk@Iv zzDy`sMNu_VxhqclKFbnfYpw(kLYRx^&k|HYa&8gZ{lWagdnPgg)?;V*66qynrE#ib zNafJbeGVan*`^@aY~e%;OfOEboLS;%{Vj5(5Cvc1s}=HknFHY@5fSF(sap7@!rBBB z3#4X0)6sO5&XxJrEB9Zi+e zU^LQr#Dl%;m!qr&T~tEj=QHI)|E{1EtR$5gfuRiD-8WFtdN5@XHU2l8$!ARI0=BP- z3b}c|@(zT+o~$MkOAxK~nIC?HS6st)ZEV}7ke=t0uvrO8)&mlw1jl6^K0o-}A_=W+@hnHn4*<0G#q0YI<%28tXmp~8>>Ob?O^qzjS-Z~Ocq?yTe89>T xn0fd3(%*ieoRqR`5~V{m0*vcaGn)Va002ovPDHLkV1ih{Iza#c literal 0 HcmV?d00001 diff --git a/art/category_key-customer_16.png b/art/category_key-customer_16.png new file mode 100644 index 0000000000000000000000000000000000000000..035ccf8b4b26d2c6f7258f6176c126a10156ec8d GIT binary patch literal 717 zcmV;;0y6!HP)SR1NJL1G zpa@~IpC-96Z5orz3Nj^iY{qfMao!u>yxZc9lT+G(ySV3a&-cqYpCkA;6#oyg=>`t#3nW8i0!Zc)OuG zpoU)dC|%c;loDh)H$HvEHDavt(dXs#_51iPpCtV4HOa_0rkNoeT_QX;O)pF%{o{Rb>A2ny25K`g~gm9IF zR{+Q;i2^zv4-4s$oH|^oz$O|s0J!Gs6WBIWQ&Z?3H=5=GKz5Z>0I-y{uq=y&nI>(T z02qb=T9MOR%O;gd;dV)ckU3ghYt1hd8GeQ5DcM%Waxx7-fk(r(Gmb;s;&$V)9AqxH z$C-?SlVD|Lj6^(6bbb~ymCQOYDJpaWaI@j48trf8(StSz7~6IVi38vd1gWpCpyBF0 zY~{i-okv|SpvYr0@}iwsWR8O3J=7em2B5ufl+NDPtOG#Vitk^>h%77+i!C}imBH;P zB)%ACOX+SbE6u>uo*Z+7{*FHY`U4@P)Nr{ycrP{ssHyRQYHMlCjqv@ePBqZqt2SLY ze;|ZE5JE`F-xOxYwm!GvHs%U#7IlaA<=uY+k$NK8s;YUW00000NkvXXu0mjfx41!! literal 0 HcmV?d00001 diff --git a/art/category_miscellaneous_16.png b/art/category_miscellaneous_16.png new file mode 100644 index 0000000000000000000000000000000000000000..452f001adafce28e55d7c16360b19b8d6cfa9905 GIT binary patch literal 698 zcmV;r0!96aP)Nklsq^SFy9+uNNeCxo4doJhux#ym9F8psB_uV8q z=>?FrtJm9v`(ACT;9_<4`XkA+rvr%DcUnTPkFP*hpoEMD0J;MPbbGx?;=$HSiCbl^ zMrNKBCVX@FtN@~v0-&qMKsz0F_FZiNkVT`0U3sI-x9y4JteUhmOPn0Jfa-5&@L@h8 zBIr`yrQ4v%_>5ADYqy`r(;ho75;`E#St7DjB};9^A`?eMx@ z6@hOl1(V1zk^U?ZsS(p(F7keh%)Tg;^>J>Gfi-*b4?7&040W7gvyNgdwn2sswz>cd zs$h=ga3xvg8VMdGIuPaUn_en!g^9&XtdFzHP`_Y!Xcp`59!f?x!B&lO6+w|5=?}0l z8Dz?rPUvTZk(o5IZ1EDsOu3#S#8C{AsFZeM>#ACna(MugP9zyn@Z}pQlL?w zv{n#D$ygN<=w*B$2WDVo#KD)3+gKz*^NpN@R%?sW+JaVPAf^c*3m+;leI5eeT@+j% zL*|7a;U!A1Pv8&cveQ1tt2!ruJZSOrf2+4^+jkL30kJZk@h(mG`}{=rjBZ3J3gjuA6u%@Y+? gi-jvE_b0{v1xoW6oy~_iBme*a07*qoM6N<$f{FJybN~PV literal 0 HcmV?d00001 diff --git a/art/category_personal_16.png b/art/category_personal_16.png new file mode 100644 index 0000000000000000000000000000000000000000..a35b684eb6d7fcc8bc6c9a257667cf956dfa27bd GIT binary patch literal 548 zcmV+<0^9wGP)(xR1lmkR4Foz=D&30R zLMrrAQm`X}spE#$1Q=J(`4kzrdT=LNcwwg5iYK- znOfXT)1l|(Hs1_WMY1ux5M26 mKnOuwg9E(j9c0@^8vhQPgP*}yg}{yg0000vGA`1DWDyl|;VmAIbKbq@oGYZ1^iv9b z)Plx$B5p%!&g1Q@Re&6qGK!-3T+@Dq?An&rIc8f<<6c=Fyu7&urSYZ zJ`caj7>0pum00}tlMo&<(^E`m-nuO(x^fVYXzV!-CoZH(CMKCWd!D0-1gVQ@PDe)A zDOU)(qIV9~Hn;E!!NR>6wzjw7;eE_(4i{L-=Fo-$lxt4!B#y literal 0 HcmV?d00001 diff --git a/art/category_status_16.png b/art/category_status_16.png new file mode 100644 index 0000000000000000000000000000000000000000..a2c89d38702bad569b1bb3b2dfdd0b97f78a4919 GIT binary patch literal 668 zcmV;N0%QG&P)VFnE5xj_G^1vB#oBroz-beL-X@%%P56-k0xCfcjWb zp^glWv364tZ%!ZMZm9>uFt7qRb90DIhUw{e2>BN3ms_X@bY160%OyH*_6k7hy3XgV zo0+vPA}=d5e!{<`lvjIHFtb4Te!f$|j6&gyO{(CMLg9-}sz$X+l-z&xSG~2o+M@s* zE;oRPOog!>J_^@sDL8i#PF0d!a~v-Fc{VYDS#NS^9ez9^0E%~^{GZ@zE{yfXNg8aq z1Hf>1Hvqq|01#>)5vG3TztQ1x& zIn$L_3((hmExti}Ydp5K;?)8~_HI#LEs%P^_KhV15U~?}k-eb^fSmPn(V36ld`kdg z=1i?f5|XLHwz6WDrY~mNwv5o~4CUw^5s}>^*;V`$W%JJ$(Hi)t?7)CEh{sCbKjk=P=2)cULtwFG>pdVft z2wg|yMR_GCGeOr#%H@{zu5j&Lx}^{;-f?=mNQbfPq8>PK&U2pc_dI;R&(T~i7ylFc z{*>&yavG(S7=|HADfugd%jK#sfYp)(AhvBwHk*}rJT8Fjg>eHYr2r`1y~U-`7+qam zG&MD`xw%Q9P#_wO^3*uNkIH8jpTD3lovRaR0QsA7{Kt<`TT0PAH9>B6Lrl|TYio;i zI*nyn%)egHjFV?ryl@V2zLR|XjPoBiera$(KTK^Y#iM%<0C?MbL`$dBRI61i%c4@L zXjeyL6bc3GuMS1_6Y_fYltoO_luRZg!^6YU(a|A+KtKSoqDLEw-JQLy00bjp0N%e^ z(GrP-^z`&lE|+l}2ivyk>}}PayveguUnh7s_hoy#!o&x-d*Vu!a=9GK%gbc5SyHLgZ#ZrDZ&XT2EEXda3gPqlux*>k$w@Mq436V8 eJlb&hm-q=47yoLxqQIa40000K(y6!cgmB#buW_y}}Jy6Mb)oEGNINr}L-I(*;x{l4#w?fOmpJ{?U_ zD40dUJ_7*PE@9aY_wL;0`I7;L$KO&{74}-t0HkG6`00>5+|0rH81JU?BwOOl%&*W` z8>OQ&&HM3(+3w zx4BsW&h?(*(~D6Lu8u`nCxB^Jph}Cd0onX=nLq=`&StpLca^6jgY-XoO?&GBYU&RW ziN^57T>uh^M%?gM_C&&{_Szr8zN#<{O$mlZCm9@jNvf?07f{!h_>o^CySNH~z4)0g zxdOqUk7X;keHI$(>(DhFRnu@?2USsVTn8iwMIeO0wjBgeEEUP-7B+e0aQ_wAl}gIr qG6~48RPvwk&BA|Aqu8?lulO%_*Vcc6gOq0g0000swhUpXa;doo7xs>3pO^dY2M?|n#7bs!3Qqf1NS`VdCoZ({u8P$mVLbW z2d3KO*>sB8bP9mkbc)G|@x4eZu+%2IJ%{P&3;-}NoS@NW2VipguI#0xRsqKX;mW;S z-a>2ZBpeK~Ukiu`X7jeFmZNPP4|cPu7q=Usl+>Pj3ji2K8Gx0gZ>+DavAXtykJ%6t~#0>73yyw zB1}$<(-jV}Q79lH(le5VsxFakg{G(sW~L)Ud8u~T?75Bl#SWur{;(g^Q9Wl>6@ zR2{+7`6mEqJ}(}d7pv8Zx829r+#)E2u_YivQ)3e%Qc+N`@NoJu03UK$a$mAEYiK57A(?Vs|)b(Oe9)o<=X} j956NP{%N%vwqN`KV)nISHqu**00000NkvXXu0mjfv#S>f literal 0 HcmV?d00001 diff --git a/configure.in b/configure.in index 718ad62..02ea0f8 100644 --- a/configure.in +++ b/configure.in @@ -1125,6 +1125,9 @@ AC_SUBST(privlibdir) idldir="$datadir/idl/evolution-data-server-$BASE_VERSION" AC_SUBST(idldir) +imagesdir="$datadir/pixmaps/evolution-data-server-$BASE_VERSION" +AC_SUBST(imagesdir) + serverdir="$libdir/bonobo/servers" AC_SUBST(serverdir) @@ -1189,6 +1192,7 @@ addressbook/backends/groupwise/Makefile addressbook/tests/Makefile addressbook/tests/ebook/Makefile addressbook/tests/vcard/Makefile +art/Makefile calendar/Makefile calendar/idl/Makefile calendar/libecal/Makefile diff --git a/libedataserver/Makefile.am b/libedataserver/Makefile.am index 4f68e33..5e0bbea 100644 --- a/libedataserver/Makefile.am +++ b/libedataserver/Makefile.am @@ -3,6 +3,7 @@ INCLUDES = \ -DG_LOG_DOMAIN=\"e-data-server\" \ -I$(top_srcdir)/libdb/dist \ -DE_DATA_SERVER_EXTENSIONDIR=\"$(extensiondir)\" \ + -DE_DATA_SERVER_IMAGESDIR=\"$(imagesdir)\" \ $(E_DATA_SERVER_CFLAGS) # The marshallers @@ -16,6 +17,7 @@ libedataserver_1_2_la_SOURCES = \ $(MARSHAL_GENERATED) \ e-account-list.c \ e-account.c \ + e-categories.c \ e-component-listener.c \ e-data-server-module.c \ e-dbhash.c \ @@ -52,6 +54,7 @@ libedataserverincludedir = $(privincludedir)/libedataserver libedataserverinclude_HEADERS = \ e-account-list.h \ e-account.h \ + e-categories.h \ e-component-listener.h \ e-data-server-module.h \ e-db3-utils.h \ diff --git a/libedataserver/e-categories.c b/libedataserver/e-categories.c new file mode 100644 index 0000000..96e921d --- /dev/null +++ b/libedataserver/e-categories.c @@ -0,0 +1,312 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * Copyright (C) 2005 Novell, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public + * License as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include +#include "e-categories.h" + +typedef struct { + char *category; + char *icon_file; + char *color; +} CategoryInfo; + +static gboolean initialized = FALSE; +static GHashTable *categories_table = NULL; +static GConfClient *conf_client = NULL; +static gboolean conf_is_dirty = FALSE; + +static void +free_category_info (CategoryInfo *cat_info) +{ + if (cat_info->category) + g_free (cat_info->category); + if (cat_info->icon_file) + g_free (cat_info->icon_file); + if (cat_info->color) + g_free (cat_info->color); + + g_free (cat_info); +} + +static void +cleanup_at_exit (void) +{ + if (categories_table) { + g_hash_table_destroy (categories_table); + categories_table = NULL; + } + + if (conf_client) { + g_object_unref (conf_client); + conf_client = NULL; + } + + initialized = FALSE; +} + +static void +initialize_categories_config (void) +{ + char *str; + + if (initialized) + return; + + /* create all the internal data we need */ + categories_table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, free_category_info); + + conf_client = gconf_client_get_default (); + + g_atexit (cleanup_at_exit); + + /* load the categories config from the config database */ + str = gconf_client_get_string (conf_client, "/apps/evolution/general/category_master_list", NULL); + if (str) { + xmlDoc *doc; + xmlNode *node, *children; + + doc = xmlParseMemory (str, strlen (str)); + if (doc) { + node = xmlDocGetRootElement (doc); + + for (children = node->xmlChildrenNode; children != NULL; children = children->next) { + e_categories_add (xmlGetProp (children, "a"), + xmlGetProp (children, "color"), + xmlGetProp (children, "icon")); + } + + xmlFreeDoc (doc); + } + + conf_is_dirty = FALSE; + } else { + e_categories_add (N_("Birthday"), NULL, E_DATA_SERVER_IMAGESDIR "/category_birthday_16.png"); + e_categories_add (N_("Business"), NULL, E_DATA_SERVER_IMAGESDIR "/category_business_16.png"); + e_categories_add (N_("Competition"), NULL, NULL); + e_categories_add (N_("Favorites"), NULL, E_DATA_SERVER_IMAGESDIR "/category_favorites_16.png"); + e_categories_add (N_("Gifts"), NULL, E_DATA_SERVER_IMAGESDIR "/category_gifts_16.png"); + e_categories_add (N_("Goals/Objectives"), NULL, E_DATA_SERVER_IMAGESDIR "/category_goals_16.png"); + e_categories_add (N_("Holiday"), NULL, E_DATA_SERVER_IMAGESDIR "/category_holiday_16.png"); + e_categories_add (N_("Holiday Cards"), NULL, E_DATA_SERVER_IMAGESDIR "/category_holiday-cards_16.png"); + e_categories_add (N_("Hot Contacts"), NULL, E_DATA_SERVER_IMAGESDIR "/category_hot-contacts_16.png"); + e_categories_add (N_("Ideas"), NULL, E_DATA_SERVER_IMAGESDIR "/category_ideas_16.png"); + e_categories_add (N_("International"), NULL, E_DATA_SERVER_IMAGESDIR "/category_international_16.png"); + e_categories_add (N_("Key Customer"), NULL, E_DATA_SERVER_IMAGESDIR "/category_key-customer_16.png"); + e_categories_add (N_("Miscellaneous"), NULL, E_DATA_SERVER_IMAGESDIR "/category_miscellaneous_16.png"); + e_categories_add (N_("Personal"), NULL, E_DATA_SERVER_IMAGESDIR "/category_personal_16.png"); + e_categories_add (N_("Phone Calls"), NULL, E_DATA_SERVER_IMAGESDIR "/category_phonecalls_16.png"); + e_categories_add (N_("Status"), NULL, E_DATA_SERVER_IMAGESDIR "/category_status_16.png"); + e_categories_add (N_("Strategies"), NULL, E_DATA_SERVER_IMAGESDIR "/category_strategies_16.png"); + e_categories_add (N_("Suppliers"), NULL, E_DATA_SERVER_IMAGESDIR "/category_suppliers_16.png"); + e_categories_add (N_("Time & Expenses"), NULL, E_DATA_SERVER_IMAGESDIR "/category_time-and-expenses_16.png"); + e_categories_add (N_("VIP"), NULL, NULL); + e_categories_add (N_("Waiting"), NULL, NULL); + } + + g_free (str); + initialized = TRUE; +} + +static void +add_hash_to_list (gpointer key, gpointer value, gpointer user_data) +{ + GList **list = user_data; + + *list = g_list_append (*list, key); +} + +/** + * e_categories_get_list: + * + * Returns a list of all the category names currently configured. + * + * Return value: a GList containing the names of the categories. The list + * should be freed using g_list_free, but the names of the categories should + * not be touched at all, they are internal strings. + */ +GList * +e_categories_get_list (void) +{ + GList *list = NULL; + + if (!initialized) + initialize_categories_config (); + + g_hash_table_foreach (categories_table, (GHFunc) add_hash_to_list, &list); + + return list; +} + +/** + * e_categories_add: + * @category: name of category to add. + * @color: associated color. + * @icon_file: full path of the icon associated to the category. + * + * Adds a new category, with its corresponding color and icon, to the + * configuration database. + */ +void +e_categories_add (const char *category, const char *color, const char *icon_file) +{ + CategoryInfo *cat_info; + + if (!initialized) + initialize_categories_config (); + + /* remove the category if already in the hash table */ + if (g_hash_table_lookup (categories_table, category)) + g_hash_table_remove (categories_table, category); + + /* add the new category */ + cat_info = g_new0 (CategoryInfo, 1); + cat_info->category = g_strdup (category); + cat_info->color = g_strdup (color); + cat_info->icon_file = g_strdup (icon_file); + + g_hash_table_insert (categories_table, g_strdup (category), cat_info); + + conf_is_dirty = TRUE; +} + +/** + * e_categories_remove: + * @category: category to be removed. + * + * Removes the given category from the configuration. + */ +void +e_categories_remove (const char *category) +{ + g_return_if_fail (category != NULL); + + if (!initialized) + initialize_categories_config (); + + if (g_hash_table_lookup (categories_table, category)) { + g_hash_table_remove (categories_table, category); + + conf_is_dirty = TRUE; + } +} + +/** + * e_categories_get_color_for: + * @category: category to retrieve the color for. + * + * Gets the color associated with the given category. + * + * Return value: a string representation of the color. + */ +const char * +e_categories_get_color_for (const char *category) +{ + CategoryInfo *cat_info; + + if (!initialized) + initialize_categories_config (); + + cat_info = g_hash_table_lookup (categories_table, category); + if (!cat_info) + return NULL; + + return (const char *) cat_info->color; +} + +/** + * e_categories_set_color_for: + * @category: category to set the color for. + * @color: X color. + * + * Sets the color associated with the given category. + */ +void +e_categories_set_color_for (const char *category, const char *color) +{ + CategoryInfo *cat_info; + + if (!initialized) + initialize_categories_config (); + + cat_info = g_hash_table_lookup (categories_table, category); + if (!cat_info) + return; + + if (cat_info->color) + g_free (cat_info->color); + cat_info->color = g_strdup (color); + + conf_is_dirty = TRUE; +} + +/** + * e_categories_get_icon_file_for: + * @category: category to retrieve the icon file for. + * + * Gets the icon file associated with the given category. + * + * Return value: a string representation of the color. + */ +const char * +e_categories_get_icon_file_for (const char *category) +{ + CategoryInfo *cat_info; + + if (!initialized) + initialize_categories_config (); + + cat_info = g_hash_table_lookup (categories_table, category); + if (!cat_info) + return NULL; + + return (const char *) cat_info->icon_file; +} + +/** + * e_categories_set_icon_file_for: + * @category: category to set the icon file for. + * @color: X color. + * + * Sets the icon file associated with the given category. + */ +void +e_categories_set_icon_file_for (const char *category, const char *icon_file) +{ + CategoryInfo *cat_info; + + if (!initialized) + initialize_categories_config (); + + cat_info = g_hash_table_lookup (categories_table, category); + if (!cat_info) + return; + + if (cat_info->icon_file) + g_free (cat_info->icon_file); + cat_info->icon_file = g_strdup (icon_file); + + conf_is_dirty = TRUE; +} diff --git a/libedataserver/e-categories.h b/libedataserver/e-categories.h new file mode 100644 index 0000000..9246f30 --- /dev/null +++ b/libedataserver/e-categories.h @@ -0,0 +1,40 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * Copyright (C) 2005 Novell, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public + * License as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __E_CATEGORIES__ +#define __E_CATEGORIES__ + +#include +#include + +G_BEGIN_DECLS + +GList *e_categories_get_list (void); + +void e_categories_add (const char *category, const char *color, const char *icon_file); +void e_categories_remove (const char *category); + +const char *e_categories_get_color_for (const char *category); +void e_categories_set_color_for (const char *category, const char *color); +const char *e_categories_get_icon_file_for (const char *category); +void e_categories_set_icon_file_for (const char *category, const char *icon_file); + +G_END_DECLS + +#endif -- 2.7.4