From 0638c3ab4cb3b8859c8fd6f0010ecc2ac6f8478f Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Thu, 15 Apr 2010 21:34:00 +0000 Subject: [PATCH] * Add some more icons for better testing * Use the country name instead of the language name to identify each icon * Cleanup, fixed copyrights, and some more checks to avoid crashing in case of a missing icon git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36321 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- data/artwork/icons/flags/Algeria | Bin 0 -> 4304 bytes data/artwork/icons/flags/Antigua_and_Barbuda | Bin 0 -> 6570 bytes data/artwork/icons/flags/Armenia | Bin 0 -> 3268 bytes data/artwork/icons/flags/Austia | Bin 0 -> 2335 bytes data/artwork/icons/flags/Australia | Bin 0 -> 15919 bytes data/artwork/icons/flags/Azerbaijan | Bin 0 -> 6073 bytes data/artwork/icons/flags/Bahrain | Bin 0 -> 2560 bytes src/kits/locale/Country.cpp | 21 +++-- src/kits/locale/CountryFlags.rdef | 94 ++++++++++++++++++- src/kits/locale/Language.cpp | 2 - src/preferences/locale/LanguageListView.cpp | 31 ++++-- src/preferences/locale/LanguageListView.h | 16 ++-- 12 files changed, 140 insertions(+), 24 deletions(-) create mode 100644 data/artwork/icons/flags/Algeria create mode 100644 data/artwork/icons/flags/Antigua_and_Barbuda create mode 100644 data/artwork/icons/flags/Armenia create mode 100644 data/artwork/icons/flags/Austia create mode 100644 data/artwork/icons/flags/Australia create mode 100644 data/artwork/icons/flags/Azerbaijan create mode 100644 data/artwork/icons/flags/Bahrain diff --git a/data/artwork/icons/flags/Algeria b/data/artwork/icons/flags/Algeria new file mode 100644 index 0000000000000000000000000000000000000000..2e9681cacdc963758110cbca5d8bf45ef5c9033e GIT binary patch literal 4304 zcmeHJOGs2v82+azom4D?givZoa8pJZM1r|rE+-+LQ|$-SS|a+bY+#$>U>dl%dN3GZE? z63=wrE4-O?X5K6O3gc$p1IK*Jb0*$@N#eicy%@=gYiuO;I0<~`)gvBFb&HMPmW#VF zpE$c=z39`5r5wz@k&%vHGQ?E*D(R_8+8>|L!e85Dq=~7J zcrn6- z`}=r2AP%h@)3AW8>mWzqvW>GkhEBk+Ea*4>lQ7i4hhyHy} zHRzv=zWLeje-jw}|J#u*e85%9!@`JYtTz;lQjtw!jPm~RPd1Mi*%UNJ4fU?aOKup3 zJfM?l=nPAC=vTycT#(G7BC{wnL&m#Xy;k#}-~k-3Rd1cI28ltVf+Q~KfqSAt)=^1; zNGQ@pbaeA{hLwb;$gq+o3reS>9sW*c$q3*1cKX-Kc8VoY<|6eXRr&anXTFigo#oXnUk9 z?2qXYgL13eKbPmc+9Ewoe uhl0{S?C+UL5%>JRT|pn^or$hMnCnUgoE4n(R97I(btTiff{QqVy7B`fn;k6x literal 0 HcmV?d00001 diff --git a/data/artwork/icons/flags/Antigua_and_Barbuda b/data/artwork/icons/flags/Antigua_and_Barbuda new file mode 100644 index 0000000000000000000000000000000000000000..bbc6fb9daa9d865abb0a442e4e06e85614a0d030 GIT binary patch literal 6570 zcmeHKUuaWT82@70+SaNST&HvDeUPD0hGnJQL#erEvr$ZqEM?QDn#O1^OK-9yZpuK) zrbAao*@pP%NksHj#t;#PK5SzTLy(q_twN+=*xxVz{$z? z=X~FHzCY(Xck5s*yk&5pi+BWh7OIRlRuTo7-Z+PcLA@_PO%x8t1|j3tB4CTM0<^G< z-^>F3WZD9zIq`qB5N%jmd0IxTHh7D#*Krw(n34j5m0;^TggDwYcy-jEC$XwYu=b zjKf~wBhjdq1Na!vqMSC3hhEGRCA=LUOS0FA`f$vC%A_qjPqQz6xHR?q`F9J2t4h{Z z8dtz$)m(;Udt^-S|9_E*v~4F7`Q#o7@PIK!B9+bo?&gDd@%?U2nfdtMU^l=ybA2!P z4yHMMFZi__Sf}rS$K1g7RPueSgs<%Te+!#b%Y|MwGTp0=zPVUESZt_Rq)UB&W4)Ta z-=uELG^n57S*uQNTdi8J{B2HLduU!<)1a2OzpfHzZ<}it-7&j&{bmAgY`?7O&HIm< z;2)kjWn%xeo0Uh>%ANFED?1wy@2l8<~=)-x-xm9-rm!g5% zsdZ1d?*`lt)rRZdsJ%NIb%#4!)~a{5Fv$8cquklTA*++q9hVyS{p8dt1>ei+bX56H zLjx5CSzl%p-wTJVPR>{Oewh1|mwq|HJ!(GvlG_-q;5oNn3jS@TIs2vHql|a4Qxp)qb88?IYx)O)W$FB6QEf*uL;U9Spx;@Cxz*jTC z#nm{fyEvCWm`diz#{c-o2#xX=fo1O_8nbNUQ!8hUSSc%i(8wj?sifXN z7C%slFdnMis34Bzr~s%(#Rs*5N-swRKs_oxhzjoBa#R4+qvC_8pbM3w0-zohzeNQP I3Liz~Kkw;lMF0Q* literal 0 HcmV?d00001 diff --git a/data/artwork/icons/flags/Armenia b/data/artwork/icons/flags/Armenia new file mode 100644 index 0000000000000000000000000000000000000000..62c988b6ace0243be3eb2bd66079b1437399df56 GIT binary patch literal 3268 zcmeHIJBt%h6h3jx?yBpn5QG#?A>yl05N(ziv$|PfvJn$&8RM)Ob}|z(vyxP9YaxP- zg{=riun`2SMX}gFASei0*!vUW_uXXT&F&^n888=aZq9elYtA|MoSVgRVY#?;QLs|j z-4W~3yoiDO^fn%lN-iZcQYe&*)bVXE(Vni9%ntAqdqjTV4hLlZ;-{fBJ=^1N*ikK% zFW^ezRU3S?7<(04jXxrV8+t|0Bh4#XkrpJA7y-3>qj7upL+Yf^&Wo~Qx5{eZ`%X1-?n?@b&X`p% z2uV+4-|3uHvFAB9_B$Cz#a`!}#(qrQzwUIdvF>?}jr~r>QL)!K$HYF2+MW|i27Mz* z>)FJ+=F?_-;Nr8_SKM{kZa$C^i}%WmJO!1+N(OvvWN{az29U}!|Fet64Gv>KE#ho& zg_V*;!)#1Pv5Bh&GzVfq`H_`s-~~Mg0km6L)YmrsM+M`mADZLs1DX%#0bo>x-j??W` z#VVxth8&g~R{lD_=mPe6Y}zzrZfM-C0qgM}lS;{2imQ-wX*c{yA6GSLHl0<_B5Eqd zgjTrBKvtrr?T4#Dvu;Oj;LAtr%)1u{e_mCR+K-0kman|o#MQ>uuXDK?2CwTs5UIPq w`OppBd#>k3Z8NOeo}=XJc5Anbjokm673Oh}6%x~|Ou$>=OCMx~!~|vK4{rSb<^TWy literal 0 HcmV?d00001 diff --git a/data/artwork/icons/flags/Austia b/data/artwork/icons/flags/Austia new file mode 100644 index 0000000000000000000000000000000000000000..f7c3cf76826f089542e869ca17231b4e25d52d40 GIT binary patch literal 2335 zcmd^9zi-n}5I)zWq)_oghzSWOa{LMoUu(glEEJUqc8DBtEJ*lehnVRnN>LRlHZT;!0x%Iy2w1Q zS&@F|1+n~oaq9BtpBrBc`Cik1k<}V;{*{&G1vw4FXa5iBghAjsvHMsI5D#NHei%_c zc(qTGrYwsfLbW7-tYi8P#Zb_M|XrxzZWF4+~TJi~ATqEhm zvqcQ3_fop_fYqtE-_rOo;M|{+Eo94idQ*-;Qwg0IY$#1X)C_AuXg{2|G}ccwh(7QaI?@u@?sNb*6OtW%1V)<(c}V@ao*u zhi_0l-28K{+Qp{zf+r$9FR-3_k@v{+y?Din9NTx5f6rdtNwHczxLsi%$6cYYkGk>? D6|wxk literal 0 HcmV?d00001 diff --git a/data/artwork/icons/flags/Australia b/data/artwork/icons/flags/Australia new file mode 100644 index 0000000000000000000000000000000000000000..a328a747d714613d43cf948aafc57cbd92d1cadf GIT binary patch literal 15919 zcmeHO4NR3)7(Rr67%Hq${w%$@XpL-Q&ejU)p4T7zK|#U!lWA83xd!(V_nKg9;xxCC z=CCHvNNo6%m_KVHi!#&lhf)!lrlrIpf0o&5{*|-Q`yBW_?*)Xb7JM7uw;f;3d)}Y( zz3+3*_r2dej+>YmJ9grjp@J_zZVk7&N=69b&*K5jWVoyJ{6wILjZK^g8?O%px6ziL z2-5i<-zUT}9%I5fxA?RA3lTl2Q9je=PIHMImhxp*53?LRYO~V3YB%A>BbZef5A^Yv z6}*US*7U{6dR7kfa026S1jmiH5+J4|C5}Y@ehl!1Q2Db~(xe3H#(!J5g>r+gzX?AFu47|0cIaJ0Xe>zi0(be1|O~g`>+c#cjrjOsC!97K;vT z8J@fUoh{5CsZk+v34Bl`WwASa6m%|Z-(<4W;Ydk#r_2+6d|@({-s^F?`Dv}J92QNHmU5ZBaxBFroRy*L$J1L|Yh``mT!LO`*kl^LIh4>pKdmQW z{Him8AfHznO3>dGFo0lh`}`n+eLa_*;~3cJXwTkQ1Kt|1E{r;v^CiWdkEKiHU(okw zrjR{xCw)>mi5^*2L1S&xY4NIZs*$tl=7i5FNzS2fmR3;y<^=@3bqRB6SLR;TU%qjV z8V^i9pycN`_bUB9CHs`UccZ^j_I1>Cj$@#%qdl9bYw?`1GI}y!`Oym0om|~l0(G+} zSORq$)(w$BUFD!y`46M+m}PZsT#k2;X@^#aJ5wFcaPYl>@DB>fwHfou5%m% zbsg>5L|qHijmSJrt0ou8UqAYRN@BLl)bYp3_TVNtVDU+MV|0aFw4#Oz0{6=sbc%`t z4$3{*C#m0wS_!>jj~H9ya@oqEED)|>v>y&=@ntEj~e^{-uucNMW90PS7 z?b#>P_42Wrc=jHvi5^@5Byek9O=$d79^)5Zy^_=TyP4-%O@NQq_cqnUlWkTLYY!hH z_umcj=d|zWTy-FwuQ)(gUI-$4-nZ0qUW(@ z*}6MLWa~~f+sszi`ffIB>T!u|%$ypo z)(|MN20p01d-^7bY_uoo9euBr(zRlb6;WFjDFI)N9w;l5;DhS1_f1gSw=`24^)zY5 zzUg~0Lh5%oPQ_lM^VNp5vP!V&9&m8T+Q#Yp;l)%P#&V<9CmsM%+g#s>j|pLBzg2Ni+5y zdk%1pXYRHQeXQ=K%Oze;u;+m4v4=qWg4&+bmSh{Tce!)YQ(R)3j~`X0upC$0s?24g z%2$-I+NGTgK)D;ovbZp&+=x}&^QBPdBLeEjb`;Z^W&TrnMjyZQYd^w=V1O_1@gscf zr1&_@5Hr9@0Ps~I-JLtpY928n*_rOl65@#^4Mv+1PuO5nLI4dmr6XaFHMr7jnGD?N zj1^xXb+g|s;Np%L3_7&X*MJMiTw_^W;43#`H6zLwFB@44AC3WBT(E#ufD+<0uDL!tDwlMHX zr_qi#|LrEeS|*mPlvM8XnF<`{&^jJ#2^okH?kt1l*d3Nv?JoOVd%E47V{s+h(o>XvhAq3bfn00X z%?dE3X9Y<$vtod?;*}M2%&ZtKE7*w5tQajTcr=<>F$=r6_osDR*aUFU^6SmsO`P#6&z7A*NOqw3Q82cw#R=lGP7c|tl*oonH8gDrKgz{ eV?0;9b})R(HrI;L)=FpAB;k2&Z3ueEgz zwQK5Dml2Nu&tKz=1+$2PET23A!=%&;P%hQhHq^mJR{^+5TLGHl@NZ2bI>0jiuuhu) zIiIL8KKc)52Yv$;>@{@L>*Vlj~@Ew@Eq`EC8_^RPpoZl0I!djPjA3yIRDJq|F~|5^|H z+$PdM51YMDBr95@k|p0y#nMFY`f}$yxi753;{GYjMVQ^Bj5BDtv zvle{JYs??(tbLT?kA2pD`+8KgZ3+qN;}J15lrM^!4vCkcLeU%O6-A*OQB%_+in%tR zm%RC|Lw@ts2Oaoh>%QpF-@oa#Zv8ke=@(u7QrLNT|i+Cw_J4royIr}@NogHU0)wYgovOh#g|Q+$3&Hkqne^t-0CE{u=bbFLV7cQ zzTZNk6HojW5^8O?Mmo50Kk-v4la}gboN8RCb2E6FS2Zs7;vU9gIBw`9t7hWm3TxpZ zg2u&w1vD~VM{2iqHz+WO3NIu#e+Kgq$;d{>!hp>n71FA(sDbVho{M-UclkWe3u%{w z4^d-%cs1~d15cTx9WTEx#h1%O>x?xsO(ZuAMYz@yDo{;{&WLF@Tb=EZgkhQVaP!^8 zTFLw6Qq%Rv#otk(4L)Ge#m7%dSG4k5%`jVt+6`0NW7x({BW@(RG&>rJ$E1FHWbasl z?iK%URZvH#Dj>2|@xfZbN_VOPB3l(7R0VslQxy=|s`#KPo*fKFQno5SsETK;;6mY} Gs{97Z^fC4T literal 0 HcmV?d00001 diff --git a/data/artwork/icons/flags/Bahrain b/data/artwork/icons/flags/Bahrain new file mode 100644 index 0000000000000000000000000000000000000000..0769649e8c876af2a56e7ab1ad18da42899bb25e GIT binary patch literal 2560 zcmd^AKWGzS6n`2TQ8IlY6+-b@? zr~oln6khp-^9HLC1MdOTH!7oD_zB>Q9hL1}_+?=9C7#Jz^yoA3TIyO^EU37 z6$@1tnPD*#Qgv;|hq!NYDt`UV;^Ky(pFf&+4B~t$tC;PCG<0ta4q0#=$13>NRf&Lj zm{_6gdXz7raA9hH4;TBB+V8}5O5onwYy38J!P;y5JMdubiIYv7r(f+kOT-7(KE>L< zes$Q$HyTOwBK541Nm0I4ucs)lHyTR*(rhaEVST?r{lV#JgZj6PjFK-Fi%K5U!+(&l zXBPfy#_pNoTq)`rF3(>nTb|rUPr}St9CrArIlx2pk-gNUR~z5;2^xZ^Q)%QWq%c_y zz>X36Z4pM}s?u9z40a^q+#>0PY=((Bk>hP#P1*>A8Fh|?6x^~~lMmw)%}sVB-oh)H zRkY*@_F|Y~9UHjUTVER%G#=RNDvhk7R$;Qdgg5sjTSDSN8Ib|?%O5N~ZP*4b@F2bm z7?)IU3)ynUjLL2~lQCxLdjuQ@x0cRG*8*Sa*zc8mHZ!MN&Q05j(~UoF<7xn6HLD0& zM7;`H2uuk(kPyFSI$qJORZQP@9a;NnZ7fZFJ*7MYe?k1)@%QhbdU0rdGFif>#CEQU pRBR`9)AsBucG>n4Tgty;F85R1P5!@KVIMnPp|FX%@(WL5VO0PC literal 0 HcmV?d00001 diff --git a/src/kits/locale/Country.cpp b/src/kits/locale/Country.cpp index 9ca5d0cf24..19d63f0e78 100644 --- a/src/kits/locale/Country.cpp +++ b/src/kits/locale/Country.cpp @@ -91,18 +91,25 @@ BCountry::Code() const status_t BCountry::GetIcon(BBitmap* result) { + if (result == NULL) + return B_BAD_DATA; // TODO: a proper way to locate the library being used ? BResources storage("/boot/system/lib/liblocale.so"); if (storage.InitCheck() != B_OK) return B_ERROR; size_t size; - const void* buffer = storage.LoadResource(B_VECTOR_ICON_TYPE, Code(), - &size); - if (buffer != NULL && size != 0) { - return BIconUtils::GetVectorIcon(static_cast(buffer), - size, result); - } else - return B_BAD_DATA; + const char* code = fICULocale->getCountry(); + if (code != NULL) { + printf("this is %s drawing\n",code); + const void* buffer = storage.LoadResource(B_VECTOR_ICON_TYPE, code, + &size); + if (buffer != NULL && size != 0) { + puts(" icon found!"); + return BIconUtils::GetVectorIcon(static_cast(buffer), + size, result); + } + } + return B_BAD_DATA; } diff --git a/src/kits/locale/CountryFlags.rdef b/src/kits/locale/CountryFlags.rdef index f552a7f94b..6f7ef3aea9 100644 --- a/src/kits/locale/CountryFlags.rdef +++ b/src/kits/locale/CountryFlags.rdef @@ -1,5 +1,97 @@ -resource(2, "fr") #'VICN' array { +resource(1, "AG") #'VICN' array { + $"6E63696605050003FCD116030072C605FF03CE1126060A041F20D93F20D93F60" + $"1F600A20C61FC54BC550C10EC2F1C4A9C3D0C06FC03EC2DBC2ABBF49BE71C029" + $"C20CBDCABDCFBCFAC20C37BE71B9CBC2ABBAABC03EB719C3D0B985C2F1B54BC5" + $"50B8E6C61FB4A9C6EFB8E6C94EB54BC86FB985CC01B719C994BAABCDCEB9CBCA" + $"3337CE70BCFACA33BDCACDCEC029C994BF49CC01C2DBC86FC06FC94EC4A9C6EF" + $"C10E0A041FBCFAD93FBCFAD93F601F600A041FC285D93FC285D93F601F600A03" + $"1F601F20C61F600A03D93F60D93F20C61F60060A000100023ECAC10000000000" + $"003ECAC1BAB068461FBB0A010101023ECAC10000000000003ECAC1BAB068461F" + $"BB0A020102023ECAC10000000000003ECAC1BAB068461FBB0A030103023ECAC1" + $"0000000000003ECAC1BAB068461FBB0A040104023ECAC10000000000003ECAC1" + $"BAB068461FBB0A040105023ECAC10000000000003ECAC1BAB068461FBB" +}; + +resource(2, "AM") #'VICN' array { + $"6E6369660303EF6B00035575C403D81B3E030A04201FE6001FE600CC7F20CC7F" + $"0A04201FE6001FE600C3FF20C3FF0A04201FE6001FE600BB7F20BB7F030A0001" + $"00023E01B30000000000003E01B3B766E9477C990A010101023E01B300000000" + $"00003E01B3B766E9477C990A020102023E01B30000000000003E01B3B766E947" + $"7C99" +}; + +resource(3, "AT") #'VICN' array { + $"6E6369660203D81E0505FF020A04201FD9401FD9406020600A0420BB7FD940BB" + $"7FD940C3FF20C3FF020A000100023EC1100000000000003EC110B62046467DDF" + $"0A010101023EC1100000000000003EC110B62046467DDF" +}; + +resource(4, "AU") #'VICN' array { + $"6E6369660403002B7F050005FF03CE1126110A04201FE6001FE6006020600A0E" + $"40C24CBF03C497BCC2C3BDBE17C5BFBC05C6F9BE6BC72FBE17C99240C7D3C168" + $"C992C114C72FC37AC6F9C168C5BFC2BDC3BDC07CC4970A0ED8F2C6E9D898C801" + $"D785C799D828C88DD72BC923D850C93DD827CA5FD8F2C98BD9BCCA5FD994C93D" + $"DAB8C923D9BCC88DDA5EC799D94CC8010A0ED8F2B5BBD898B6D3D785B66BD828" + $"B75FD72BB7F5D850B80ED827B931D8F2B85CD9BCB931D994B80EDAB8B7F5D9BC" + $"B75FDA5EB66BD94CB6D30A0ED2DFBD7BD285BE93D173BE2BD215BF1FD119BFB5" + $"D23DBFCFD21543D2DFC01DD3AA43D381BFCFD4A6BFB5D3A9BF1FD44CBE2BD339" + $"BE930A0EDEEABAA2DE90BBBADD7DBB52DE20BC46DD23BCDCDE4839DE20BE19DE" + $"EABD44DFB4BE19DF8C39E0B0BCDCDFB4BC46E056BB52DF44BBBA0A0ADBCCBFBF" + $"DB85C06DDACAC07BDB59C0F5DB2DC1ABDBCCC148DC6CC1ABDC3FC0F5DCCFC07B" + $"DC14C06D0A062040B5D94060B46C6020C9A62020BE530A066040C9A64020B46C" + $"2020B5D92060BE530A04BDA020C1E020C1E040BDA0400A0420B74060B74060BB" + $"8020BB800A0420B81960B81960BAA620BAA60A04BE7920C10620C10640BE7940" + $"0A042040B4E640BD66BB80BB80BB800A04C219B740C400B7406020CA99200A04" + $"604060BECCC5E6BB80C400BB800A04202020B3F3B999B740BB80B740110A0001" + $"00023E021E0000000000003E021EBABC7E47FB990A020101023E021E00000000" + $"00003E021EBABC7E47FB990A020102023E021E0000000000003E021EBABC7E47" + $"FB990A020103023E021E0000000000003E021EBABC7E47FB990A020104023E02" + $"1E0000000000003E021EBABC7E47FB990A020105023E021E0000000000003E02" + $"1EBABC7E47FB990A020106023E021E0000000000003E021EBABC7E47FB990A02" + $"0107023E021E0000000000003E021EBABC7E47FB990A020108023E021E000000" + $"0000003E021EBABC7E47FB990A020109023E021E0000000000003E021EBABC7E" + $"47FB990A02010A023E021E0000000000003E021EBABC7E47FB990A03010B023E" + $"021E0000000000003E021EBABC7E47FB990A03010C023E021E0000000000003E" + $"021EBABC7E47FB990A03010D023E021E0000000000003E021EBABC7E47FB990A" + $"03010E023E021E0000000000003E021EBABC7E47FB990A03010F023E021E0000" + $"000000003E021EBABC7E47FB990A030110023E021E0000000000003E021EBABC" + $"7E47FB99" +}; + +resource(5, "AZ") #'VICN' array { + $"6E6369660403009E4903D62828030091C905FF060A042020E60020E600602060" + $"0A042020E60020E600C40020C4000A042020E60020E600BB8020BB800204CF0C" + $"40CF0CC1DCCF0CBDA3CB39BBECCD56BBECC91CBBECC76640C766BDA3C766C1DC" + $"CB39C393C91CC393CD56C3930204CF4340CF43C182CF43BDFDCC1338CDD538CA" + $"5038C8E340C8E3BDFDC8E3C182CC1348CA5048CDD5480A10CF79C1E0CF11C0BB" + $"CDF8C14065C028CD594065BF57CDF8BE3FCF11BEC4CF79BDA0CFE1BEC4D0FABE" + $"3FD074BF57D19940D074C028D0FAC140CFE1C0BB060A000100023E0364000000" + $"0000003E0364B9640647F9380A010101023E03640000000000003E0364B96406" + $"47F9380A020102023E03640000000000003E0364B9640647F9380A030103023E" + $"03640000000000003E0364B9640647F9380A010104023E03640000000000003E" + $"0364B9640647F9380A030105023E03640000000000003E0364B9640647F938" +}; + +resource(6, "BH") #'VICN' array { + $"6E6369660203CE112605FF020A04201FDD7F1FDD7FCC7F20CC7F0A0D201FBD9F" + $"1FC400B58CBD9FB819C400BAA6BD9FBD33C400BFBFBD9FC24CC400C4D9BD9FC7" + $"66C400C9F3BD9FCC7F20CC7F020A000100023E850D0000000000003E850DBA86" + $"BC46F5E40A010101023E850D0000000000003E850DBA86BC46F5E4" +}; + +resource(7, "DZ") #'VICN' array { + $"6E6369660303007A3D05FF03CE1126040A042020D94020D9406020600A045020" + $"D94020D94060506002085030C88530C29B30404040BC3B40C3455050C29B50C8" + $"8650CBB3C2D6CA9CC4CCCAC4C40DC7AAC4D958C4D9C4D9C4D9C29040C290C291" + $"C290BCEFC7AABAA6C4D9BAA6C94FBAA6CBB1BCA7CAC2BB71CA9ABAB30A0AC9B0" + $"BCB7C9B0BF08CBE440C9B0C077C9B0C2C8C853C0E850C19FC77C4050BDE0C853" + $"BE97040A000100023EC1460000000000003EC146B68CBF467D730A010101023E" + $"C1460000000000003EC146B68CBF467D730A020102023EC1460000000000003E" + $"C146B68CBF467D730A020103023EC1460000000000003EC146B68CBF467D73" +}; + +resource(8, "FR") #'VICN' array { $"6E636966030300335B05FF03D81C3F030A04B2FBB75DCC84B75DCC84C863B2FB" $"C8630A04BB7EB75DCC84B75DCC84C863BB7EC8630A04C401B75DCC84B75DCC84" $"C863C401C863030A000100000A010101000A02010200" diff --git a/src/kits/locale/Language.cpp b/src/kits/locale/Language.cpp index 5603d59c25..21cca77c9c 100644 --- a/src/kits/locale/Language.cpp +++ b/src/kits/locale/Language.cpp @@ -142,8 +142,6 @@ BLanguage::GetName(BString* name) preferredLanguage.FindString("language", 0, &appLanguage); - printf("lang : %s\n",appLanguage.String()); - UnicodeString s; fICULocale->getDisplayName(Locale(appLanguage), s); BStringByteSink converter(name); diff --git a/src/preferences/locale/LanguageListView.cpp b/src/preferences/locale/LanguageListView.cpp index c5bd1889ba..332031ecee 100644 --- a/src/preferences/locale/LanguageListView.cpp +++ b/src/preferences/locale/LanguageListView.cpp @@ -1,14 +1,20 @@ /* - * Copyright 2010, Adrien Destugues, pulkomandy@gmail.com + * Copyright 2006-2010, Haiku. * All rights reserved. Distributed under the terms of the MIT License. + * Authors: + * Adrien Destugues + * Stephan Aßmus */ - #include "LanguageListView.h" #include "Locale.h" #include #include +#include + +#include + #define MAX_DRAG_HEIGHT 200.0 #define ALPHA 170 @@ -23,8 +29,17 @@ LanguageListItem::LanguageListItem(const char* text, const char* code) // TODO: should probably keep the BCountry as a member of the class BCountry myCountry(code); BRect bounds(0, 0, 15, 15); - icon = new BBitmap(bounds, B_RGBA32); - myCountry.GetIcon(icon); + fIcon = new(std::nothrow) BBitmap(bounds, B_RGBA32); + if (fIcon && myCountry.GetIcon(fIcon) != B_OK) { + delete fIcon; + fIcon = NULL; + } +} + + +LanguageListItem::~LanguageListItem() +{ + delete fIcon; } @@ -56,9 +71,11 @@ LanguageListItem::DrawItem(BView *owner, BRect frame, bool complete) BRect iconFrame(frame); iconFrame.Set(iconFrame.left, iconFrame.top+1, iconFrame.left+15, iconFrame.top+16); - owner->SetDrawingMode(B_OP_OVER); - owner->DrawBitmap(icon, iconFrame); - owner->SetDrawingMode(B_OP_COPY); + if (fIcon && fIcon->IsValid()) { + owner->SetDrawingMode(B_OP_OVER); + owner->DrawBitmap(fIcon, iconFrame); + owner->SetDrawingMode(B_OP_COPY); + } frame.left += 16 * (OutlineLevel() + 1); owner->SetHighColor(kBlack); diff --git a/src/preferences/locale/LanguageListView.h b/src/preferences/locale/LanguageListView.h index 330ee1d1ab..5134bd0c6a 100644 --- a/src/preferences/locale/LanguageListView.h +++ b/src/preferences/locale/LanguageListView.h @@ -1,6 +1,9 @@ /* - * Copyright 2010, Adrien Destugues, pulkomandy@gmail.com + * Copyright 2006-2010, Haiku. * All rights reserved. Distributed under the terms of the MIT License. + * Authors: + * Adrien Destugues + * Stephan Aßmus */ @@ -20,19 +23,18 @@ class LanguageListItem: public BStringItem { LanguageListItem(const LanguageListItem& other) : BStringItem(other.Text()), - fLanguageCode(other.fLanguageCode) + fLanguageCode(other.fLanguageCode), + fIcon(other.fIcon) {} - ~LanguageListItem() {}; + ~LanguageListItem(); const inline BString LanguageCode() { return fLanguageCode; } - - //virtual void Update(BView *owner, const BFont *finfo); - virtual void DrawItem(BView *owner, BRect frame, bool complete = false); + void DrawItem(BView *owner, BRect frame, bool complete = false); private: const BString fLanguageCode; - BBitmap* icon; + BBitmap* fIcon; };