From 827d4017d03dcece28006a5486674a8d4551ac29 Mon Sep 17 00:00:00 2001 From: Jim Evins Date: Sat, 3 Jan 2004 20:50:54 +0000 Subject: [PATCH] 2004-01-03 Jim Evins * pixmaps/ex-rect-size.png: * pixmaps/ex-round-size.png: * pixmaps/ex-cd-size.png: * pixmaps/Makefile.am: Added ex-rect-size.png, ex-round-size.png, and ex-cd-size.png image files to be used as illustrations/examples in the template-designer. * src/template-designer.c: (construct_rect_size_page), (construct_round_size_page), (construct_cd_size_page), (construct_nlayouts_page), (rect_size_page_prepare_cb), (round_size_page_prepare_cb), (cd_size_page_prepare_cb), (layout_page_prepare_cb), (build_template): * src/template-designer.glade: Added illustrations for rectangle, round, and cd label size pages. Added margin spinboxes to these pages, and now add a margin markup to the constructed template. Added realistic default values for some of the size spinboxes. Cleaned up the code for setting spinbox ranges on the layouts page. git-svn-id: https://glabels.svn.sourceforge.net/svnroot/glabels/trunk@400 f5e0f49d-192f-0410-a22d-a8d8700d0965 --- glabels2/ChangeLog | 21 +++ glabels2/pixmaps/Makefile.am | 5 +- glabels2/pixmaps/ex-cd-size.png | Bin 0 -> 32300 bytes glabels2/pixmaps/ex-rect-size.png | Bin 0 -> 5314 bytes glabels2/pixmaps/ex-round-size.png | Bin 0 -> 16682 bytes glabels2/src/template-designer.c | 212 +++++++++++++++++++---- glabels2/src/template-designer.glade | 245 ++++++++++++++++++++++++--- 7 files changed, 429 insertions(+), 54 deletions(-) create mode 100644 glabels2/pixmaps/ex-cd-size.png create mode 100644 glabels2/pixmaps/ex-rect-size.png create mode 100644 glabels2/pixmaps/ex-round-size.png diff --git a/glabels2/ChangeLog b/glabels2/ChangeLog index 502236a4..58092551 100644 --- a/glabels2/ChangeLog +++ b/glabels2/ChangeLog @@ -1,3 +1,24 @@ +2004-01-03 Jim Evins + + * pixmaps/ex-rect-size.png: + * pixmaps/ex-round-size.png: + * pixmaps/ex-cd-size.png: + * pixmaps/Makefile.am: + Added ex-rect-size.png, ex-round-size.png, and ex-cd-size.png image + files to be used as illustrations/examples in the template-designer. + + * src/template-designer.c: (construct_rect_size_page), + (construct_round_size_page), (construct_cd_size_page), + (construct_nlayouts_page), (rect_size_page_prepare_cb), + (round_size_page_prepare_cb), (cd_size_page_prepare_cb), + (layout_page_prepare_cb), (build_template): + * src/template-designer.glade: + Added illustrations for rectangle, round, and cd label size pages. + Added margin spinboxes to these pages, and now add a margin markup + to the constructed template. Added realistic default values for + some of the size spinboxes. Cleaned up the code for setting spinbox + ranges on the layouts page. + 2004-01-02 Jim Evins * src/object-editor-size-page.c: (h_spin_cb): diff --git a/glabels2/pixmaps/Makefile.am b/glabels2/pixmaps/Makefile.am index f337e7b4..f501ed32 100644 --- a/glabels2/pixmaps/Makefile.am +++ b/glabels2/pixmaps/Makefile.am @@ -6,8 +6,11 @@ glabels_pixmaps_DATA = \ glabels-icon.png \ glabels-logo.png \ glabels-about-logo.png \ + ex-rect-size.png \ + ex-round-size.png \ + ex-cd-size.png \ ex-1layout.png \ - ex-2layouts.png + ex-2layouts.png glabels_mime_icondir = $(datadir)/pixmaps diff --git a/glabels2/pixmaps/ex-cd-size.png b/glabels2/pixmaps/ex-cd-size.png new file mode 100644 index 0000000000000000000000000000000000000000..68261f0367506c6374d30fc53b9c3bd6ab50fc74 GIT binary patch literal 32300 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ⅈ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 literal 0 HcmV?d00001 diff --git a/glabels2/pixmaps/ex-rect-size.png b/glabels2/pixmaps/ex-rect-size.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d7af9270110314bbfa6c6d1bd043203f234826 GIT binary patch literal 5314 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 GjQkG@Pc1b7 literal 0 HcmV?d00001 diff --git a/glabels2/pixmaps/ex-round-size.png b/glabels2/pixmaps/ex-round-size.png new file mode 100644 index 0000000000000000000000000000000000000000..c45d6c3b509388b6225af33bb5b743f052ef24d6 GIT binary patch literal 16682 zcmaicbyQVb)bF8@P*O_jh?Ih)gh;nE2uQ0m(p^&0B^T*#5D-ziOHk=XkWT3a$v64l zdtruEkjk5Wbkn)aS#XuzMQP28vOnPe)VEw!v8PhMA+ar%-7Fl zBoWs)|7A87#KLE8*~z|iL?Cd9ZhoN*O~1Q<^* zG~80R(pQtS+^&WS)0J> z5$6PM6*(_wwkkm$vnBxvq4D2G&VCp!t~0Z=i%QJg^| zB|`d#gkXy>b}IRX{P-5ZOh8D;7J^DhIOzZX{bN!&FwAix-E8yOkN{PKlBN=k~El~qSWQ?p8mJt3!}g5<@E7b?so@R3T;)7wiQ zBa1*tqF3tR$H@mKCsQV-q_j^?QdU(}eJL;ZYixX$nwqLPF*W70xU_^$Mn*OPU;IZV zGArBBsNE~`@+HOBuV3lniGdC@d+Fl#;?&au5g$4?l^Ii|b`!W%XBJ3=q!}JwM(WZ1VQ3 zsjKtw^zbmPsjqMEklfVY2w)~a`!6jm5?(9n@87@C!$U)v8mxo0j%H4q6MJvS$P%_b zfBtM|XE#v1PlW?FwYm9rX=UYXd1;Bk#Ka^E)?{m{TBblLP3iRXwCC{n*k+LDnQ{oK zI}Uk}n7BCV(D3lznMThqU%rSYu2)*Sa)b7J3Bk0>>V8?W}Cd>uR{DY@bD*oTG>nb znTwTbE_OyzQQt=*X}IwMV(!bl6LMM`*y95ZPorn`94v6(9a>>Y zxPMshz0!h%2Cjl9S4=D)W7pitBzDNW70$ouzMxVecXf^X|{!fo1?l$NG=HLtH*>ebj~ zA=%mc7zG6>RaI4?@_3BGjtYFPuXc})zVFVr&+qI!{ySb~7^`y+*>-t;LP$(3@%{UE z@@F0uC%!0XTs=JoJr8(Q=@2+LICjUIFIkzHTh<11Jn`=FbJVh6d{!&6TmBX2`^~JM zz0qMACp$Yklg;O;^LlQQjTF?++`1D&f~}-(sN9VabHNP6=^!@K-FX> zIXxOT{0pDr_des1fBu}RgOiU>W@o06({0xXk5>3zQ&ST;m$B?OTe2AWyc*9FcAMFz z$c_$4Noi?u*0}vnXM6kBwm@7?lV2ZcV4)RldQO&BSMLi6rRJ)!Fe;^*Ked}{`9)@; zpZ5YM_v=?8vd0Fwy45zXU`x_}uvp6&Wcc*ylik^&#rxpkMR;RbMMZ0Z0{way?Fw^3;mbqy z(13t|nG^Ph58I(23iIgwv7fBVZz%ga)T^+ae+jVCjn70w%)YRn{u4Ikp;rCVEDmv(lPp|v`{iB)l! z7}sax&1*km?mKsq+`W6(?Vy*B(|VGpC;b_f^7J)3J7!pzZ|c3wF9d~!Mv7So4c3+( zJPuA21w|Alrj{9+FO?V#jeb$ozrPfSGRDqBtxh!ih-ByFY`m|nt6PXw7QT5L57^n+ z1$Xk)iU=quYWbc#ap~)R+`ReBZFeqWwS4NR4ObF6!BF1wt~ak=n>HK{J?EB*y5}xF zYX#3h!t;2uH4v9<-AmZ`2Z7h=eDLXR`yDEgC?oQ@F*dpf7&Z22vhuGn><<_R^6}?3 z@oMVPwkA~*wcimj8vm^SqqlcixVoyU^WxvZ-bwSd{!sZFnY5E4mQ`@7=q0%l!5ma!jqydP(ID%kp)eC!c4=r=fSpGAe#jC!DOXkTCQp)q8smkQ)<)0l(2$zf_2mf(C8c~`UY>Lr(^=vm zv5|Q(tfRR(v-NCKn!LRHVVyL4!khWFKxdqpnVIyae=Ah1j~*=*Kg6%~h%^65guHVn zn_eQM=_;9-Ylwp_Agkyz<79mTX=obtR9%U#jD}vx_%f`(;opLcG4~HOH8lfcrMhx? zYJa`lq@<x@}RW@!w}(9U()W9my%3M zYY#T3s%?j%-ELs#DQ5_KR8CS*P-uTM#SaV)&am#md-*&C?wUC~I$B0Wg#a$Bae;}E zG5cM!$JNC@4HXqSZF+v2KXl1_(La8MuC?C@&CYf*JP^v%B&HTt;Bk30#j95pQJ5{h zY9exZNbI~d8P_dCOiX;X`K=!&g@P3YGYQV-pW0ZLof$=(z_vB#kp75t-vZuBok(u8 zK8?2%U;K=@lKM`e(J(N)2Ut~$x;0ixb$PZ?Hfe=II2ed4x!6hQ?)mLaST=HcT&RqM zv>eUb(=%IHm|p(*Fr|K}=J46k#?Q7k|L*a=w5P*)&l6B(W&Yi~Ks0o>Bi82lCpk=W z7A19cl%6Nsc>@C~pNfhGDMZ-V@N=Xi7jOo8dLrW4_2mKG>ELE;&oWVR`WMRFsoMFh zVHtgmRMq))d)wMNRQM{9`M!kJVMPVc{>e!h_ta6w^@Ysp#1cGD?OKNic?AVjjRvFe zUYSLj1_n`zDNhD}#xfo0EI)Ht!hWfvni51f@Da z@(`w-tSolgQ&)C1tv@iTy^epIIj5V4lRX}ru_PfO@IEAb7*VR5(VN8lCMKb)isANc z$&@D+-sU7EBqJ|H%D;TcTJG1j5PqEF&{VRaHcxHEw=%@oF&Q$y1Xv z^tt3sN=&r7Q)t`tPui;3P){$yd1Gua?xB_`_IC>wZjV6Q2vQOfqtQ<&8RW8%&~>W8a!~p#cil*;^3qt3hO^Ls$W`U8Q&CGW8GntSGpU;lue6u=c{M4e*i`o zyeWAyz{#r)*Zx5sXi)$D~%IarkdFWBhkM5iM=m5lXGg zmQJ1fK|b?`$$Smga*JWc#_Qa^S1P*lWH?Rd66S{y5znaa)0O-N2ID*uojz~fS@I`eQGL2Om!9ewwKH0nR7~|)wtS=7ja{5^)6crTw|l7aa`}K z#7IcKtkSLY+fEnHcOsvq6`Cn$UtdOtgaA~t0F(xh#Bepl&$Kib5YWfOL}u;ngvW+g z=2KPHx$d&`HRb~N*`TP4j+2}oWS|dovqM@N_o08_@4i$P9dUf=88iQr%?Z>+$ z12Z<$=5^JsX>1~t=P)DxLW4~;5)u+ZcQpmB@Z}4Kp#1{+ULe&_1bfJ&rmCtRG<6ku z`LHoJK(sgm#$VwMA22fRCxmJIx=rG`JyJ#@g%_5emniHlSjKEgtEB!cNe(6^+lf0| zIfgRLCk@uOe`;br8#ddtli4tH*D>>Sa^M|rPZvA-yZ|o1gO&P-jg19~^lx_h`Zc7X zAq48_p(0^GD+gY0`m=gJDth|!Zo@0J)ic0&VYn$m?q7|xK4oSi{QUerrlg!N;4-kX zTK3%$xyW=@G0@QoOMm9+kmP!}rg}xh%4}4fzcZ0l{75P}w5EpN0XX7wIx=>>LdQ~_ z(tN&IuUOpch49BA=<6Lo5&vg5PW?@>lqSO@r03%!gSXJ>{{RaUO3dVtbUb@~mC$Uw zQ{;9;EnPpFLz zrP+Gd=xQ4nMJ4+6@lbn)LVf^=Go}HQT7(l*QEe3b?LRv^Qv(9&W8rm7F<4v{rYn<9 zPeeqt&i~zfpi$5%L_t61Ij(8pXH* z2l~TH3oScFRA0b-pCL`qS)QYT#gxaM122G0w`w4gim#&cd^qE(!=$gudg}B!k}+sn ziq(eJ-L&v=)X~N`A9?IZQsdc`XZB3vZ|XZozN2$`@xE|d(OD2G@%Tv2JD=QK0`86($@C&0K|uH-?*ED zC4%Uah0~5+Gw&;8D&C{Kc}76I<~LtRVN5BSnw3!6?aqmPCQaftyB#AseG4Cdbi?hv zuqlaOs<3x*U#ft57F!=6-P#_0*pNOJZ-2Kb{oUv3MzTcLYDx{KZU=a>H6b z_oaCRzZ22Dp7g^dfveP%l;_q{RS$ffPnj6}GkmU+-d!GzcX_>vEWbcIQ3Un2;8Pv;JH?o`XD-ma4&<~+oqLkio5JT<`r~?nx($Cl zMvuKKjP&85ixImq8*3D3E6{B%rt=$sIBj=fp`-7b&Be1x=E#KKzMGD+9)7<=#dDTM z*w_8wc)MFi)!DmZDsO$}N4I2-SBz147OGn`z zbZYHJkIFGcli7FYY~vn4H{Xj41Cm@TE<5ab6|<84`@2}jcF5XH+FB3A%-qXwrZFp- zaRU#@*!Am3GP_f9o>+1E-4k?@E#8R#`jyN4coUCW@S{)J=+VZeyTdcR{cs*yHso#m z=8LxNo)vrY^!WHrYl$QQN5&Y@hhH6*e=#->ev;}?)z%IHoKsr%_iQD_7QI@;@${Vd z^7Kv4zE;PVib8%Kh4e>m`QEMm7aPzrUHqCJW|_B2fi^m#2yNT-B(!feOH* z?)s)PV!l6@+iXIL!Tx^sAV(N~NXUQxO{7b>y9Z>Zrrz7GSkSd?lwufodJ7wSVB=ZX zQR(mRsxMyT4dZ^_U+%6Q3mC8EX(zxZ7wxD+5OJbP69)&m&d}rFEZ`4SAQ>4MovyFE zX9QhNcjp;PKl9a#zJBxO@;0rog82OC=;)vL|Da?J%=-QgmxxM6Gf20tL2b<1Ew9UW z9888mmvd~Yy!%L7v_rk0M&w<@hYtj$p4X=(zcIeT42P*jj90c*x7y-|c9Fyl%w}Lu zhcJMcn!4A$t*oesvx%Rl;j(IOA!{Y%b7W-XT*WrXRaBRl#ipb(Am{*0DR@yS5rjvN zSo-@{PQFPiMM|pNpj}D_y+}hI!Tjh^M974cK%lsoZS!T7Jv`jL*B+h++l}ENA#*ep z#ad;I3q@91Wd>;@6D+f)q(6$(3z(6}*F`F)(1|ktsm=oJ^T}^Gx;wbi8`&cllMiZU zZ6!veXh_IOPt9N=hu;yhKVW6_hB-CdS>E4wcx2erpc>#z%tH)tpOcdi#3Dm_5;G7i z(GegP{10`O{?UW}?wUH0udMbzmVNY4Nz})WA44&sBhKeWj4UlJON@D!VwHV&npg49 zV4$HQ+%8TzLA^p-51yKw%ywMula-erI^RfEq>H9`<{ukN3^cNx%0OQ~vOV|?8Uom0 z*zwjBU&LYiot8hfzLAQK57d`#y?XTu8yB}d!SLNJUs46@7$I(j6wKT_l+aLo{~7NS zeGnH>5aJRN3H$mp1 z4qFPvE(~zEvfHf@WUBFECqqj`WM*fhn)Rhx45&fV&U~K04zh-yf#K*Q)So>)KnAP_ zs;qTq>;lF80I-uHI2>0LK)-wv0nK)I#UM&FvjC9db%9FYTwUpT!0`LW$vu z5x!eb_UBhundFp|#)?zm72yv}+Z!A8%FGv_ziOzeqWF@^qJ1j%%kaT8?X`?r3LRE50^y_+miAFG-uR}UFQxyw<*G`Z`b9UfzPEg;w|3> zC^q98!MeJ-?Sq4aNl8h9&7E_oH!2AXXQ5}$+}lI3n=g;45LE&rJ%S_iBP>Q|P7+Lt zxpzS?TpKMWgN?cCRe6tcvKp(-84Zb~L~p#<@7AlngfSCv%Dw}y?*&&WsBiej&M!AF zuN7deRnvW6iJRKj!PM8VMkIbwJ5*RPSC(X`PQ7hXV!zo~AZ_LHa= zpelEMtt|ict$m_=6MbDE-5v)4;yRv^qN0B8#zQ>z4_(o;T5g`6xGrUF?d`Q)q-CPp z(`X8ce%sUdX*`5q77{sLq3$0XfE)3}W?JxY^Y`$?PfNMm7{h0+gyO6eR4X~ih&GL{2^Vi22i=vGxx=RZZEtT+Pn{3ch9E*3 z5zI%A5PWe6reh_N#u$pFe-PfCD^x z-v;ays<5JBiI&`;9utq^^$&(hO9MB1gy{8^s2WkG#uIGH{akjIIQbiy{>`NwfIAX0 zGArsrDh)ae3=BJad%3$fe~G$x$hvvl0%C%ViG`&>Ojvn+I7cSht(}^h z+6*)VK7Q}QRwGm}Q2cUoa*R$veyF7=fy?BHpo>FIPv7(-kC7g>{EqSk)&2AXpRD>g zm>jJf3IV%-cs1ice#D-cgdczS@PJs*02cvT)}L8m*7)~x3(#g}g5;HovtNXxAsQMc zupZq3G=z$Pc1jN#xmZm=02+)`3|ngszaPu{q{qj{{!NLS%_pK}sC#N4!UGO(m4Gj7`ivk0s4ys|GnS->c!i@0MJ+l>c=FQB*@ED|c z=E1`gbyyLTni>H{p+YiG=v0JO%2^bdmri$EaUjM{kkpe9Z#&%37U&9gA8b_ou+z{` zu67%Z^R4N3-S;Yh}e(^Z_3q9~Pp}O(+vFS7+4l zDoBp{;fK{<))7C#19jL=eMb-9zNhJ%yda=bpqtbvB+Jil5RQ_RJQOc7)+L;wtJ-)l z5;-(>4i6Dbr%D{j;X5SBY`&5BbR1-C$n4l;N|$?W0n&6UsHm2le&$b;@{$^fbUyf% zmNFB>a>kvUMgn{4u;NW*{naloyPwl?t^=N8&;TFJjlFej$aP!C3sNI@2s zS7f*wSsJXhf=m^d1=gW$MyP{T6Q~#E*)05Ve>Zz<_y`Fta8OZ;8u^(ItNhm2*H_3w z;^N{o{mhSzEUHp@T1H=xgvbv6>|H(zQa|^5pjtI$>QR?i>S{3Zx$f#OI6ify>{+g zQBBxy6!7!v?^)x*W?yO*C~YP=5yo`xuMxJau2P5sSUusJ4S(I;-7P?t=S8kS2OMnF z!wC$zsJ-N7E86B|J3AvS@xV@IB*GVDDBLEUlF|SEYfFE=N)IwF;_1~KRlvuOAI+Vg zyyo!Z=jRulnm>U)erN3BQf1Efna9zBcVpQPTCl`lXRlp0vEQM=ZeqXB%S-C(n?ryA zs>LZZ|4iyV=+_|*A^D8 zmE`2y?+@pCiN{C)VpoO5Fs77H7Y*-xvLuecp7_p81I@mqWQD`|lMVfH8k|6XD>08- z*s_eVzi&DzqmxxY9nI)+r)unvDRCq@*L!CpD5b}L|85Ek(->mO$;thRDEd&Zo1}nA z#?~i}$4UVH{1RY?)`JW*tlQ`<9<__q11B3@bsv@lC>W7#&lT`mPFV3rya_-tt8W#u zQB=ey!3mthd1_?jS7AHbB%`DhmAR3Df`(~~*i6aiNuSv;GWmYC(l|5M+lWM7=+(A0 zNd^alyo1<0t)c3Fqy>`+jJV45H(Z6Hplwy87t;tj6;?BH4h{}p#9Umu8x}o)H`e%= zDavCTPswGBz2kBWeUH=2>V73>q3C3#Rq(H0@-x-{5WWDzS8L92`mMepzM$5+4Sx7Z z&^@Y-R=`^1PHJ(pdyWX;EiRX#>g_jU`M+apCjhkVQc_@ z`1<26U?oxg@Tanbga}bL{_{4i^l$gT#Qj5Y2qn|W7lLqUt$Wjj`8fSkK&v6zG<@;{ zbd*-I`%zSUw-NRJ?vb{gzsBy8bNXNIA(4~(p7GvVf_DU^kBjQ-xg891YawD;$NCPO6e3-S!~- z0Jdm}HURH{+BTechVG$?85pF`{U!j04p1Enu{&jpy1~tDhFYK$s&r5CeXY~2-6IUQ znNN@6GX;RHr>AFbdHK6F(c)s|xB*&ApRq+l(|GGJ z@!BM5ja}=&Phxjfeg|~71I3xl8yZ42tCYkQSRD$E?~RB49;;g!UImc}(Ex6BHMLVd z6BM__NIp!o5~}zcnL}h~$`&p7Hm}USWV-98Pri#?ey%g~_`>fl_z^Cio<8Yp%-~{i z0B3W_H2{1bl94eR3IrC{Mh_^zc|$<~6JlcNlEDjR*8^fxCow>R?na!Qbl~yn^Tq- z+LY$0h5rDzaZkU6k1^wu!M6sE_n*V<&EMbLvFLvO{J8;);m{*a^cyxh!sBplPZwC( zTzU-n(fw3L%H%Y6iCQoIwM0?(#)`(Q#*S#rb>g?~b%Az=_`;+ee1~?%=x!kddm#Mt zrykdN@Ga_JU~)?x9UWrg(N;mAy^WSl=L!{4Rd#x_xhFxFCAQU@S$E z4l&T|bN!vq<_|$?@7Y|y9R^CDBEY$;(G^B0cH8$_4sZ-(G&`fHTXN+@gKy*egYjRJ z9@5+_vU95qx`u{^#@civYO*06J+z0#RIKr?-d_B&<|{$O+>O4Vv|Li^7l`X;(w)qi zhwK-^Lwo-oVd(vx%IkFZ)%KV4fqG4wKQ((bKG#=Flt;<8k(Qe9?zE7=QRlb-rGyrR z4pHIt&tXA|@xJAF6f<|Mh~Cn7vth<;i(&Kt&!crI#E5_c5`Pznzzh`6a{kg}{F4Y#lJWxv$)3zvmxwPh z)5QH+WNCOLm0!$#cWQ2gC}bKC$4hgDSNmi$SL$!yKEkJZQnFVjYE_b*{Q5@ra9a97 zD0T$GJA{-R6pfvod9P!QdnvOixDUOzLmIG`mI-TX2=a1wF=Zqr?Ml1G4Sf_l)SGV{ zgn)q1SBcW&({~AFU%VhiMMEp9snO=>gT`D-3r>ycRnMnS$n}xXwLb!v+}cb3Ru-c} z;~x>?(QupMq0l{j`t()s;x0i%asmZtE>UiOMmjz9NTEQySs} z1e$&>J6zop@J{~GA1zxLM`&Sx6Ch%Z`?bp#6@K5rj*gXO9{=;RW9>R87DDAlu&*V- z>4lsCPtiyPN|#NRxjtU-3Q;_5f43RB{psf{_ph`WwkN zL$FQBhmrT6c?%*N4a+Uy1uN;%-{D|{3V0}T>Q3orKl(bD=cd4nLNh4zj z5FY1S)q&i08=Bek?V;q-p3))`0C@NJ_ZM(9-#~ZFD~}xm`#~U*`f2<*8*GBJ;cy1d z7;i*=-X10-^j5b;e3Z=3`t@oM5%f_q zF(Gt!BlzC2_RA#)#6UJ?bOevp*rWTozwF2r7!1AhDy^KsBO5y8$S;4m(co;p+Lz`8 zNw$K|Wo+yO$TslKQe8JE=ua0zuv7SKSGdlL%bJM#2Gk2e8X7Uo1S2ri%Ql$e7!Zi^W*?+qZ9-+1Mhhw;322U&HKE)Hx}% zl_m_)Dea7B(_Mpt*I5MXIvH`}4(iuB1o91sgskoOFnMh8A}e+Hm2e@Es0g{K3bX!n zOz}a2yLWHWLweQ4O?K&8P@5KzeM*(hSI(FbWw076p$9qyMCyF8{lW|B>Y6>F-Rk-H z<=6N1JF)RKVvS(rwgT#4dG>6Y&Uus>o|mz)F&)VN8+a1(@;Km-)wU+iO@^q+E$t{D zW?W;N+C1m7oe}y>2LP#;s^FOJ(w)Xljb*misbu@cW0p$Y&1lKPpl_9OxCbyz3B8<|NWDseu~qV zQcVJe%YBGOGA)y4>-Q6$H<*LLv^X=*8Dmu;@rR8_N=Z?N zYqr(@+1=d^&H?(kWb$ii(vbh{;;`JmFTruUon!apWR=SqUb-#szYi_jQ?>8(`IWfa zIPfg$0yQ-?57!3oH+~-OF>W*;A(Qj|R#lb%RVqBBGir45Svrpek!x?X$dzn|y7Gu6 zFEDIr&`B^$bEHYJ3F%o_ZUM1eoNg~GZ)gw#1esp!2C%d(&tVVwG&ubO-MxY&ey>vw ztq<21t0EikEhJm`#@tjf#5=-r0cQ9kfA9R2)6igWyM&9cso7~dXO9u34h;)S{^ot| z5`foZl`;t5Y=bpW)utpF5)z_qX=>UTDT9NH8~A*AP7L|@arU9pJU?ds*RTJ9n|2G~ z?&dZ^?Mw8OnT*ob&E0)4gz&x&YY|&mJ}!%~ZNqW$TqOkNmgzs-I@m7aMnSIE*#K8G68WPmG(9>=bF`&(Q+UmH$+&OaNtQm@6G|)J1Hf3)D-O2)z2@ONpc1J@qIN*w8a=y$iQVGAR-cn zd`zzHDS zc5_w2LOWAZ$pL^wCabKe6gOwmdeG5dzkV$as8T~+U81b|pVgwH~p|e%wU2K9zuDGn)@wVi+WAIqv!Fa>x`9168ZJR!-uQvdhVW%>?P8N{?<% z2p14|#mB}5`1&G#_4bZZ?m#2y1N^X@F3zN!K4PHF$ywqW0pHv;EWVZ2>Gi~UU8BzD z`d#eKwYaLLG><#iU?QjFkqg8SNCsAVQvjY8iP1z+@`eG@aqEVO{XQsYJ@tqO-U&|} zq^$Rl2{3>5RJ`MC6nwqqP7Gztw{1&H1OS!}3q;DdjVXTuUvNGy0#ahJxA0wKKf*fm zttyQW-Tu*ovrTRn+i-LG^aK*stk?Os5`}UXsb~x;~ zH;^5#WDu;^B_)+~Tp>8xWN~Ab37ITD6E}rt00ck)0?d5tGmr6tZgggReDaZz< zeW^c}rvM*T3cA#L9IfX1pD5^jkk51O`x;FvVo=N-4Okz^%q%-lsthp?jLc|= zqHa!Bh6CWqR%d{&Ht_ZzLi8s5x?S!oF9mrzPeIk-`xw3JpC>GZvg(qLbeFf4I%s@G ze}T_lbS&`}9P?bYqKdHlbacL4+}x3BClKU0;)ReqgbIdXKsbjnJbYLjB@47f41{+< z-00V@Lp)9xLDm{qebUbHXC`y9G-%*BmMopyOk3ui<0=s;$y!8{=ZVcw1S!hEe-EBl z#G62}157;`+`EtHviN(grOQquIU$)(`|i{aY{rtKB8iUA1r0}Ix_Ymmtb@|;(toMC%8fqw8C}A z0Liv|GS`YWVnF7;9H#|BMJVc^34|_yLwN}uI621WAWfaIL|Ihzu>aMzxCS)S1ruD=dtytcpFYy2GVy*as5~i69(W;gC0DV+bfm z)vV!$kfpr|Jw0_R(Wwke83YknV#}tq6DYNL+xuG;Cf#>SX&lnWA`E_~Sc277J^QY{ z39?^}eJFq$4|irWx{aPcf3DNyB`~_SN5X(~iC-DjV(FhrPqb|wwd&lcUA^+ojuu9K ztu(nFb@)>B1R`=gAR-7VUqKkr(t58lZWTyMrBZ21a`I4({h~PlB~02Ls>W=Q((j#} zXW$ORXt0h_XyvKVLpj}qAbXDX_p>)51+uAVl@EQcWsJ?b`n*WVHhi`Ypgs=|`X$Sn zsi_~pyz^73E6vj#l-ey-y=NKdE7Z%6sS zx%D{R%@W&)AADGyRRT<#o}L~qUSxyUO^Y>7`>U~BnuV^JnHe~=vB$AtN26T@IsXn;$A8KIL)c|FrcK`NAN&p+z`&h|&weB05~G}=E{p;R%r(R7 zGcwoz)VS@gAb?#uOv~QRQ3DBv2w!Uq&R66MqtVNFapwQTVE4Xh$G2c(<3Lo1$zr9IC}VN zFoz(KA)2MHUD;hXq>U|qvHROh3@j1HL-TJs->%1;8Ucq_4zRD_L2XS9`BRt8%z=Rc zX=_0Z*0{pPjq0Yx>#K9Y@y_JeM98*qS@89uXr9S~!IlV_{*FI?^j3LU<8Xk_7npR% zXJuyko;Ls*ho^IE#&hS{jUCJ;hKHtCkEvISs@HrQOmTaA-{?DYTfJ9P<@f)eP`hs_ zn~@1dVhS27X{P446V^xQOAeV||7+B;VL$&pU0?D-3oQT(&HEg6x*m;~3H6x=BGO&P zjSXOaIYb!IF)_1Y=$v~&KpmneM}Jgvq_>8hqbDXN#2{-{b2aq*u_Aafv9x_Z2xn9yUlw;3smKgyq7m zdFb=Oafz_V$Uyl#aY%}s)YjKO1;5v~`Rb_5&ehfD44nvtg+)~J?(Q7QhZqzRQWOD! zwAWTcHoR z4Ga(`9bhwnQMi4OosGn!5lVc%SijR$JT4h2YN)4i=_J4=+d`TZ_ssQHbI-@xy z4{FUa{iCe2)MV@X<4A~;4m7wQtU(5#_W;>_SG-7LC`%&Pd?;5AUnmC3 zX$ZbbdDIjMHu+8774o?<0XDe*j;CzhXK~=QBPM55X5O7!2ZX>xsLm?|arh<*2=N%$ zd#Hrt41iC^z?o=K>OlOH03!qj4XP;Ho&=|SrUB>;Ml#I-Arv_cSjJbcBDnFeR&}J*l-oI%O z_@Sao!Hipk#>HekK0Y!s2U!dr5H@ChnE-scJUhzi7e0@GoC3>*_|RQ(h@?aE%K{R( zH*h8Cgm3XD$w{_UI5Q)oDZ%W{-LIcMvEIZFfe$~pi7TBBH}D@=l;q~3SCT!N^*ZP+ zAPOCP_^JGnfB?mPnJALfCtmxMmW|taD$I6k1N0tnYQbIiZY1dBgDJL6a@VI_BIdvV zZ%XCAzqOGPh7cD6{Tb)Zor0U(U>B{A!hPuo0upq@`bg1D$lS+jh}aN@%}wAF#Jj(s zH)Bq(3~E5axm3N1+qB30tE|D=%SXb%3dcU{KZiSkgM|bUKn4770s(`=qLS~ybC-ic z74p2gaEA>hR-|Fs2n-n=utFdRDBv8-udHB#mNoJFck9dy4Wy+wczFW>y?-h$R)sVU ztO9s8AaIcbSpCu0Ck;LjK&g$MCwuej>tXhbov&a%CqhuQV`{3tT!a{Wt{On0zd;g{ zL&L=T@bCP*URzg}?@YKi5Yly4WsPw7OBLY@LL4>3d5Cav!#k&cOjz2=J(rbjf#XHa z+ka6+L8{GxUbkprW&n2QO(jE|Y3O{XS@|X_)wDI$YXZsRoAXOI5q3Z(J4Gj~5aXUN z$at3xEH)~N`suMk1-Uq5LN_NwyV)PZ9vCx^W-k4Nag)UEg2p5q6&*cJ;R*W34+3v8{qUfSO-+%IcmOK&;ioa=vPRr#Apy=WDA@M> zI|dw1+C4m!gj1Jr16WQQV_PY3Y_Jp___TTfAclE35Ev33p7Y;-M0k*o-GgI};-Jc; zpUw0tLahAe>MY!zQ0kW!a`m46Iw1nMR@3!|E)Z**c zaP$rGCpV|g{sC&uGHibLAG}@GprSKzVNsEv9y?Y$hY>lZWhEu-A<*sLS61@k)xOrF zMIP%fLS`Z#2r*~{G!P??2ZgfnWplMaVPRp*)13whSkFp>hgX#r&ZvWQuy}BiD-5z` z_|1@A&jn@q&-JJ!FO86!FFc-Mc!9aa#Q?aw=OFSYH(f4KNZb#DQ2GOCg#G;^BP37) z+JDLnn?HcuLJsFXvqo_kU>QM7Vo2y7gjmzZ`1r9~K8I^DxiF6##x-BOmkYGzEygPVQtcm-lfyoKB#{TISz5{l)keAiiKdD6_I5ZHN(dcY z905iQ?@i(_!78{?$FC=aFB%TF;3Gi6IL(JMxBEB8^FR(mMTCWgF+@d03GU=*u*Ss4 z2f^zC9HNJDcf*KanQPqK+CIkP_3 z&%8ko1@+x(D2NYoUN=+-Bs)0D_aPwx3r@%K3kbCK_F9(&2X~oZVPWyON*R-50)~Z3 zlr%7yIRZIT>?TPEXD*?MqTIO?T?@&I$&->>HF?_AHq_z#FaoL-KEvupbT+!a3JiVt>p?SvU#U1vKj7 zYf?Fp`6CDg%5ZXWB7B>#FL&m28Mr_4BSeugEmKoekYMCO=)EE!1cn1ahA1Y|rFOaae5$i+W>5RAya-* z(wiZY5s^kS7-0)@7P0X*N|~I}a~|t2phfVYZ`fEiC;~T$!Vb_VCVmoeawS{LKyuU} z+}|rvuG$Iysep`|e;1%(cevpOU&2qIBCY_>OOOO(wobi{DK^Lp&HLj)9r!CGL)_UEw)1`GH42=8!ht0~gW-G+Qj+{EZsh;J0D$wP AWB>pF literal 0 HcmV?d00001 diff --git a/glabels2/src/template-designer.c b/glabels2/src/template-designer.c index 24baf575..ed4df5ba 100644 --- a/glabels2/src/template-designer.c +++ b/glabels2/src/template-designer.c @@ -42,15 +42,45 @@ "glabels/glabels-icon.png",\ FALSE, NULL) -#define EX_1LAYOUT_PIXMAP gnome_program_locate_file (NULL,\ +#define EX_RECT_IMAGE gnome_program_locate_file (NULL,\ + GNOME_FILE_DOMAIN_APP_PIXMAP,\ + "glabels/ex-rect-size.png",\ + FALSE, NULL) + +#define EX_ROUND_IMAGE gnome_program_locate_file (NULL,\ + GNOME_FILE_DOMAIN_APP_PIXMAP,\ + "glabels/ex-round-size.png",\ + FALSE, NULL) + +#define EX_CD_IMAGE gnome_program_locate_file (NULL,\ + GNOME_FILE_DOMAIN_APP_PIXMAP,\ + "glabels/ex-cd-size.png",\ + FALSE, NULL) + +#define EX_NLAYOUTS_IMAGE1 gnome_program_locate_file (NULL,\ GNOME_FILE_DOMAIN_APP_PIXMAP,\ "glabels/ex-1layout.png",\ FALSE, NULL) -#define EX_2LAYOUTS_PIXMAP gnome_program_locate_file (NULL,\ +#define EX_NLAYOUTS_IMAGE2 gnome_program_locate_file (NULL,\ GNOME_FILE_DOMAIN_APP_PIXMAP,\ "glabels/ex-2layouts.png",\ FALSE, NULL) + +#define DEFAULT_MARGIN 9.0 + +#define DEFAULT_RECT_W 252.0 +#define DEFAULT_RECT_H 144.0 +#define DEFAULT_RECT_R 0.0 +#define DEFAULT_RECT_WASTE 0.0 /* Should never exceed 1/2 the distance between items. */ + +#define DEFAULT_ROUND_R 72.0 +#define DEFAULT_ROUND_WASTE 0.0 /* Should never exceed 1/2 the distance between items. */ + +#define DEFAULT_CD_RADIUS 166.5 +#define DEFAULT_CD_HOLE 58.5 +#define DEFAULT_CD_WASTE 9.0 /* Should never exceed 1/2 the distance between items. */ + #define CONTENTS_BG 0xF5F5F5FF #define DELTA 0.01 #define MAX_PAGE_DIM_POINTS 5000.0 @@ -95,32 +125,41 @@ struct _glTemplateDesignerPrivate GtkWidget *shape_cd_radio; /* Label size (rectangular) page controls */ + GtkWidget *rect_image; GtkWidget *rect_w_spin; GtkWidget *rect_h_spin; GtkWidget *rect_r_spin; GtkWidget *rect_waste_spin; + GtkWidget *rect_margin_spin; GtkWidget *rect_w_units_label; GtkWidget *rect_h_units_label; GtkWidget *rect_r_units_label; GtkWidget *rect_waste_units_label; + GtkWidget *rect_margin_units_label; /* Label size (round) page controls */ + GtkWidget *round_image; GtkWidget *round_r_spin; GtkWidget *round_waste_spin; + GtkWidget *round_margin_spin; GtkWidget *round_r_units_label; GtkWidget *round_waste_units_label; + GtkWidget *round_margin_units_label; /* Label size (cd) page controls */ + GtkWidget *cd_image; GtkWidget *cd_radius_spin; GtkWidget *cd_hole_spin; GtkWidget *cd_w_spin; GtkWidget *cd_h_spin; GtkWidget *cd_waste_spin; + GtkWidget *cd_margin_spin; GtkWidget *cd_radius_units_label; GtkWidget *cd_hole_units_label; GtkWidget *cd_w_units_label; GtkWidget *cd_h_units_label; GtkWidget *cd_waste_units_label; + GtkWidget *cd_margin_units_label; /* Number of layouts controls */ GtkWidget *nlayouts_image1; @@ -542,10 +581,14 @@ static void construct_rect_size_page (glTemplateDesigner *dlg, GdkPixbuf *logo) { + GdkPixbuf *pixbuf; + dlg->priv->rect_size_page = glade_xml_get_widget (dlg->priv->gui, "rect_size_page"); /* Rect Size Page Widgets */ + dlg->priv->rect_image = + glade_xml_get_widget (dlg->priv->gui, "rect_image"); dlg->priv->rect_w_spin = glade_xml_get_widget (dlg->priv->gui, "rect_w_spin"); dlg->priv->rect_h_spin = @@ -554,6 +597,8 @@ construct_rect_size_page (glTemplateDesigner *dlg, glade_xml_get_widget (dlg->priv->gui, "rect_r_spin"); dlg->priv->rect_waste_spin = glade_xml_get_widget (dlg->priv->gui, "rect_waste_spin"); + dlg->priv->rect_margin_spin = + glade_xml_get_widget (dlg->priv->gui, "rect_margin_spin"); dlg->priv->rect_w_units_label = glade_xml_get_widget (dlg->priv->gui, "rect_w_units_label"); dlg->priv->rect_h_units_label = @@ -562,6 +607,12 @@ construct_rect_size_page (glTemplateDesigner *dlg, glade_xml_get_widget (dlg->priv->gui, "rect_r_units_label"); dlg->priv->rect_waste_units_label = glade_xml_get_widget (dlg->priv->gui, "rect_waste_units_label"); + dlg->priv->rect_margin_units_label = + glade_xml_get_widget (dlg->priv->gui, "rect_margin_units_label"); + + /* Initialize illustration. */ + pixbuf = gdk_pixbuf_new_from_file (EX_RECT_IMAGE, NULL); + gtk_image_set_from_pixbuf (GTK_IMAGE(dlg->priv->rect_image), pixbuf); /* Apply units to spinbuttons and units labels. */ gtk_spin_button_set_digits (GTK_SPIN_BUTTON(dlg->priv->rect_w_spin), @@ -588,6 +639,24 @@ construct_rect_size_page (glTemplateDesigner *dlg, dlg->priv->climb_rate, 10.0*dlg->priv->climb_rate); gtk_label_set_text (GTK_LABEL(dlg->priv->rect_waste_units_label), dlg->priv->units_string); + gtk_spin_button_set_digits (GTK_SPIN_BUTTON(dlg->priv->rect_margin_spin), + dlg->priv->digits); + gtk_spin_button_set_increments (GTK_SPIN_BUTTON(dlg->priv->rect_margin_spin), + dlg->priv->climb_rate, 10.0*dlg->priv->climb_rate); + gtk_label_set_text (GTK_LABEL(dlg->priv->rect_margin_units_label), + dlg->priv->units_string); + + /* Load some realistic defaults. */ + gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->rect_w_spin), + DEFAULT_RECT_W * dlg->priv->units_per_point); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->rect_h_spin), + DEFAULT_RECT_H * dlg->priv->units_per_point); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->rect_r_spin), + DEFAULT_RECT_R * dlg->priv->units_per_point); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->rect_waste_spin), + DEFAULT_RECT_WASTE * dlg->priv->units_per_point); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->rect_margin_spin), + DEFAULT_MARGIN * dlg->priv->units_per_point); /* Handler to prepare the page. */ g_signal_connect_data (G_OBJECT(dlg->priv->rect_size_page), "prepare", @@ -606,18 +675,30 @@ static void construct_round_size_page (glTemplateDesigner *dlg, GdkPixbuf *logo) { + GdkPixbuf *pixbuf; + dlg->priv->round_size_page = glade_xml_get_widget (dlg->priv->gui, "round_size_page"); /* Round Size Page Widgets */ + dlg->priv->round_image = + glade_xml_get_widget (dlg->priv->gui, "round_image"); dlg->priv->round_r_spin = glade_xml_get_widget (dlg->priv->gui, "round_r_spin"); dlg->priv->round_waste_spin = glade_xml_get_widget (dlg->priv->gui, "round_waste_spin"); + dlg->priv->round_margin_spin = + glade_xml_get_widget (dlg->priv->gui, "round_margin_spin"); dlg->priv->round_r_units_label = glade_xml_get_widget (dlg->priv->gui, "round_r_units_label"); dlg->priv->round_waste_units_label = glade_xml_get_widget (dlg->priv->gui, "round_waste_units_label"); + dlg->priv->round_margin_units_label = + glade_xml_get_widget (dlg->priv->gui, "round_margin_units_label"); + + /* Initialize illustration. */ + pixbuf = gdk_pixbuf_new_from_file (EX_ROUND_IMAGE, NULL); + gtk_image_set_from_pixbuf (GTK_IMAGE(dlg->priv->round_image), pixbuf); /* Apply units to spinbuttons and units labels. */ gtk_spin_button_set_digits (GTK_SPIN_BUTTON(dlg->priv->round_r_spin), @@ -632,6 +713,20 @@ construct_round_size_page (glTemplateDesigner *dlg, dlg->priv->climb_rate, 10.0*dlg->priv->climb_rate); gtk_label_set_text (GTK_LABEL(dlg->priv->round_waste_units_label), dlg->priv->units_string); + gtk_spin_button_set_digits (GTK_SPIN_BUTTON(dlg->priv->round_margin_spin), + dlg->priv->digits); + gtk_spin_button_set_increments (GTK_SPIN_BUTTON(dlg->priv->round_margin_spin), + dlg->priv->climb_rate, 10.0*dlg->priv->climb_rate); + gtk_label_set_text (GTK_LABEL(dlg->priv->round_margin_units_label), + dlg->priv->units_string); + + /* Load some realistic defaults. */ + gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->round_r_spin), + DEFAULT_ROUND_R * dlg->priv->units_per_point); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->round_waste_spin), + DEFAULT_ROUND_WASTE * dlg->priv->units_per_point); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->round_margin_spin), + DEFAULT_MARGIN * dlg->priv->units_per_point); /* Handler to prepare the page. */ g_signal_connect_data (G_OBJECT(dlg->priv->round_size_page), "prepare", @@ -650,10 +745,14 @@ static void construct_cd_size_page (glTemplateDesigner *dlg, GdkPixbuf *logo) { + GdkPixbuf *pixbuf; + dlg->priv->cd_size_page = glade_xml_get_widget (dlg->priv->gui, "cd_size_page"); /* Cd Size Page Widgets */ + dlg->priv->cd_image = + glade_xml_get_widget (dlg->priv->gui, "cd_image"); dlg->priv->cd_radius_spin = glade_xml_get_widget (dlg->priv->gui, "cd_radius_spin"); dlg->priv->cd_hole_spin = @@ -664,6 +763,8 @@ construct_cd_size_page (glTemplateDesigner *dlg, glade_xml_get_widget (dlg->priv->gui, "cd_h_spin"); dlg->priv->cd_waste_spin = glade_xml_get_widget (dlg->priv->gui, "cd_waste_spin"); + dlg->priv->cd_margin_spin = + glade_xml_get_widget (dlg->priv->gui, "cd_margin_spin"); dlg->priv->cd_radius_units_label = glade_xml_get_widget (dlg->priv->gui, "cd_radius_units_label"); dlg->priv->cd_hole_units_label = @@ -674,6 +775,12 @@ construct_cd_size_page (glTemplateDesigner *dlg, glade_xml_get_widget (dlg->priv->gui, "cd_h_units_label"); dlg->priv->cd_waste_units_label = glade_xml_get_widget (dlg->priv->gui, "cd_waste_units_label"); + dlg->priv->cd_margin_units_label = + glade_xml_get_widget (dlg->priv->gui, "cd_margin_units_label"); + + /* Initialize illustration. */ + pixbuf = gdk_pixbuf_new_from_file (EX_CD_IMAGE, NULL); + gtk_image_set_from_pixbuf (GTK_IMAGE(dlg->priv->cd_image), pixbuf); /* Apply units to spinbuttons and units labels. */ gtk_spin_button_set_digits (GTK_SPIN_BUTTON(dlg->priv->cd_radius_spin), @@ -706,6 +813,22 @@ construct_cd_size_page (glTemplateDesigner *dlg, dlg->priv->climb_rate, 10.0*dlg->priv->climb_rate); gtk_label_set_text (GTK_LABEL(dlg->priv->cd_waste_units_label), dlg->priv->units_string); + gtk_spin_button_set_digits (GTK_SPIN_BUTTON(dlg->priv->cd_margin_spin), + dlg->priv->digits); + gtk_spin_button_set_increments (GTK_SPIN_BUTTON(dlg->priv->cd_margin_spin), + dlg->priv->climb_rate, 10.0*dlg->priv->climb_rate); + gtk_label_set_text (GTK_LABEL(dlg->priv->cd_margin_units_label), + dlg->priv->units_string); + + /* Load some realistic defaults. */ + gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->cd_radius_spin), + DEFAULT_CD_RADIUS * dlg->priv->units_per_point); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->cd_hole_spin), + DEFAULT_CD_HOLE * dlg->priv->units_per_point); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->cd_waste_spin), + DEFAULT_CD_WASTE * dlg->priv->units_per_point); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->cd_margin_spin), + DEFAULT_MARGIN * dlg->priv->units_per_point); /* Handler to prepare the page. */ g_signal_connect_data (G_OBJECT(dlg->priv->cd_size_page), "prepare", @@ -738,9 +861,9 @@ construct_nlayouts_page (glTemplateDesigner *dlg, glade_xml_get_widget (dlg->priv->gui, "nlayouts_spin"); /* Initialize illustrations. */ - pixbuf = gdk_pixbuf_new_from_file (EX_1LAYOUT_PIXMAP, NULL); + pixbuf = gdk_pixbuf_new_from_file (EX_NLAYOUTS_IMAGE1, NULL); gtk_image_set_from_pixbuf (GTK_IMAGE(dlg->priv->nlayouts_image1), pixbuf); - pixbuf = gdk_pixbuf_new_from_file (EX_2LAYOUTS_PIXMAP, NULL); + pixbuf = gdk_pixbuf_new_from_file (EX_NLAYOUTS_IMAGE2, NULL); gtk_image_set_from_pixbuf (GTK_IMAGE(dlg->priv->nlayouts_image2), pixbuf); construct_page_boilerplate (dlg, @@ -1028,7 +1151,7 @@ static void rect_size_page_prepare_cb (glTemplateDesigner *dlg) { gdouble max_w, max_h; - gdouble w, h, r, waste; + gdouble w, h, r, waste, margin; /* Limit label size based on already chosen page size. */ max_w = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->pg_w_spin)); @@ -1037,7 +1160,8 @@ rect_size_page_prepare_cb (glTemplateDesigner *dlg) w = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->rect_w_spin)); h = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->rect_h_spin)); r = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->rect_r_spin)); - waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->rect_waste_spin)); + waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->rect_waste_spin)); + margin = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->rect_margin_spin)); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->rect_w_spin), dlg->priv->climb_rate, max_w); @@ -1046,12 +1170,15 @@ rect_size_page_prepare_cb (glTemplateDesigner *dlg) gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->rect_r_spin), 0.0, MIN(max_w, max_h)/2.0); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->rect_waste_spin), - 0.0, MIN(max_w, max_h)/2.0); + 0.0, MIN(max_w, max_h)/4.0); + gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->rect_margin_spin), + 0.0, MIN(max_w, max_h)/4.0); gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->rect_w_spin), w); gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->rect_h_spin), h); gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->rect_r_spin), r); gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->rect_waste_spin), waste); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->rect_margin_spin), margin); } @@ -1062,22 +1189,26 @@ static void round_size_page_prepare_cb (glTemplateDesigner *dlg) { gdouble max_w, max_h; - gdouble r, waste; + gdouble r, waste, margin; /* Limit label size based on already chosen page size. */ max_w = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->pg_w_spin)); max_h = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->pg_h_spin)); r = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->round_r_spin)); - waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->round_waste_spin)); + waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->round_waste_spin)); + margin = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->round_margin_spin)); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->round_r_spin), dlg->priv->climb_rate, MIN(max_w, max_h)/2.0); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->round_waste_spin), - 0.0, MIN(max_w, max_h)/2.0); + 0.0, MIN(max_w, max_h)/4.0); + gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->round_margin_spin), + 0.0, MIN(max_w, max_h)/4.0); gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->round_r_spin), r); gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->round_waste_spin), waste); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->round_margin_spin), margin); } @@ -1088,7 +1219,7 @@ static void cd_size_page_prepare_cb (glTemplateDesigner *dlg) { gdouble max_w, max_h; - gdouble radius, hole, w, h, waste; + gdouble radius, hole, w, h, waste, margin; /* Limit label size based on already chosen page size. */ max_w = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->pg_w_spin)); @@ -1098,7 +1229,8 @@ cd_size_page_prepare_cb (glTemplateDesigner *dlg) hole = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->cd_hole_spin)); w = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->cd_w_spin)); h = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->cd_h_spin)); - waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->cd_waste_spin)); + waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->cd_waste_spin)); + margin = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->cd_margin_spin)); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->cd_radius_spin), dlg->priv->climb_rate, MIN(max_w, max_h)/2.0); @@ -1109,13 +1241,16 @@ cd_size_page_prepare_cb (glTemplateDesigner *dlg) gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->cd_h_spin), 0.0, max_h); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->cd_waste_spin), - 0.0, MIN(max_w, max_h)/2.0); + 0.0, MIN(max_w, max_h)/4.0); + gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->cd_margin_spin), + 0.0, MIN(max_w, max_h)/4.0); gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->cd_radius_spin), radius); gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->cd_hole_spin), hole); gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->cd_w_spin), w); gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->cd_h_spin), h); gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->cd_waste_spin), waste); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->cd_margin_spin), margin); } @@ -1125,8 +1260,8 @@ cd_size_page_prepare_cb (glTemplateDesigner *dlg) static void layout_page_prepare_cb (glTemplateDesigner *dlg) { - gdouble min_x, min_y; - gdouble max_x, max_y; + gdouble page_w, page_h; + gdouble w, h, waste; gint max_nx, max_ny; gint nlayouts; gdouble nx_1, ny_1, x0_1, y0_1, dx_1, dy_1; @@ -1170,22 +1305,25 @@ layout_page_prepare_cb (glTemplateDesigner *dlg) G_OBJECT(dlg)); /* Limit ranges based on already chosen page and label sizes. */ + page_w = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->pg_w_spin)); + page_h = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->pg_h_spin)); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dlg->priv->shape_rect_radio))) { - min_x = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->rect_w_spin)); - min_y = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->rect_h_spin)); + w = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->rect_w_spin)); + h = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->rect_h_spin)); + waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->rect_waste_spin)); } if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dlg->priv->shape_round_radio))) { - min_x = 2*gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->round_r_spin)); - min_y = 2*min_x; + w = 2*gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->round_r_spin)); + h = w; + waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->round_waste_spin)); } if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dlg->priv->shape_cd_radio))) { - min_x = 2*gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->cd_radius_spin)); - min_y = 2*min_x; + w = 2*gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->cd_radius_spin)); + h = w; + waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->cd_waste_spin)); } - max_x = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->pg_w_spin)); - max_y = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->pg_h_spin)); - max_nx = MAX (floor (max_x/min_x + DELTA), 1.0); - max_ny = MAX (floor (max_y/min_y + DELTA), 1.0); + max_nx = MAX (floor (page_w/(w + 2*waste) + DELTA), 1.0); + max_ny = MAX (floor (page_h/(h + 2*waste) + DELTA), 1.0); nx_1 = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->layout1_nx_spin)); ny_1 = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->layout1_ny_spin)); @@ -1205,25 +1343,25 @@ layout_page_prepare_cb (glTemplateDesigner *dlg) gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->layout1_ny_spin), 1, max_ny); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->layout1_x0_spin), - 0.0, max_x-min_x); + waste, page_w - w - waste); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->layout1_y0_spin), - 0.0, max_y-min_y); + waste, page_h - h - waste); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->layout1_dx_spin), - min_x, max_x); + w + 2*waste, page_w - w - 2*waste); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->layout1_dy_spin), - min_y, max_y); + h + 2*waste, page_h - h - 2*waste); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->layout2_nx_spin), 1, max_nx); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->layout2_ny_spin), 1, max_ny); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->layout2_x0_spin), - 0.0, max_x-min_x); + waste, page_w - w - waste); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->layout2_y0_spin), - 0.0, max_y-min_y); + waste, page_h - h - waste); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->layout2_dx_spin), - min_x, max_x); + w + 2*waste, page_w - w - 2*waste); gtk_spin_button_set_range (GTK_SPIN_BUTTON (dlg->priv->layout2_dy_spin), - min_y, max_y); + h + 2*waste, page_h - h - 2*waste); gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->layout1_nx_spin), nx_1); gtk_spin_button_set_value (GTK_SPIN_BUTTON(dlg->priv->layout1_ny_spin), ny_1); @@ -1368,7 +1506,7 @@ build_template (glTemplateDesigner *dlg) gchar *page_size_name; glPaper *paper; glTemplateLabelStyle shape; - gdouble w, h, r, radius, hole, waste; + gdouble w, h, r, radius, hole, waste, margin; gint nlayouts; gdouble nx_1, ny_1, x0_1, y0_1, dx_1, dy_1; gdouble nx_2, ny_2, x0_2, y0_2, dx_2, dy_2; @@ -1396,12 +1534,14 @@ build_template (glTemplateDesigner *dlg) h = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->rect_h_spin)); r = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->rect_r_spin)); waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->rect_waste_spin)); + margin = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->rect_margin_spin)); } if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dlg->priv->shape_round_radio))) { shape = GL_TEMPLATE_STYLE_ROUND; r = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->round_r_spin)); waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->round_waste_spin)); + margin = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->round_margin_spin)); } if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dlg->priv->shape_cd_radio))) { @@ -1411,6 +1551,7 @@ build_template (glTemplateDesigner *dlg) w = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->cd_w_spin)); h = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->cd_h_spin)); waste = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->cd_waste_spin)); + margin = gtk_spin_button_get_value (GTK_SPIN_BUTTON(dlg->priv->cd_margin_spin)); } nlayouts = gtk_spin_button_get_value (GTK_SPIN_BUTTON (dlg->priv->nlayouts_spin)); @@ -1456,6 +1597,9 @@ build_template (glTemplateDesigner *dlg) template->label.cd.waste = waste / dlg->priv->units_per_point; break; } + template->label.any.markups = + g_list_append (template->label.any.markups, + gl_template_markup_margin_new (margin / dlg->priv->units_per_point)); template->label.any.layouts = g_list_append (template->label.any.layouts, gl_template_layout_new (nx_1, ny_1, diff --git a/glabels2/src/template-designer.glade b/glabels2/src/template-designer.glade index 3d085462..f5396b2f 100644 --- a/glabels2/src/template-designer.glade +++ b/glabels2/src/template-designer.glade @@ -800,7 +800,7 @@ This dialog will assist you in the creation of a custom gLabels template. True - 4 + 5 3 False 12 @@ -809,7 +809,7 @@ This dialog will assist you in the creation of a custom gLabels template. True - Width: + 1. Width: False False GTK_JUSTIFY_LEFT @@ -833,7 +833,7 @@ This dialog will assist you in the creation of a custom gLabels template. True - Height: + 2. Height: False False GTK_JUSTIFY_LEFT @@ -857,7 +857,7 @@ This dialog will assist you in the creation of a custom gLabels template. True - Round (radius of corner): + 3. Round (radius of corner): False False GTK_JUSTIFY_LEFT @@ -881,7 +881,7 @@ This dialog will assist you in the creation of a custom gLabels template. True - Waste (overprint allowed): + 4. Waste (overprint allowed): False False GTK_JUSTIFY_LEFT @@ -1081,6 +1081,75 @@ This dialog will assist you in the creation of a custom gLabels template. + + + + True + 5. Margin + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + 0 + 1 + 4 + 5 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + 2 + 3 + 4 + 5 + fill + + + + + + + True + True + 0.01 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 10 + + + 1 + 2 + 4 + 5 + + + 0 @@ -1170,7 +1239,7 @@ This dialog will assist you in the creation of a custom gLabels template. True - 2 + 3 3 False 12 @@ -1179,7 +1248,7 @@ This dialog will assist you in the creation of a custom gLabels template. True - Radius: + 1. Radius: False False GTK_JUSTIFY_LEFT @@ -1203,7 +1272,7 @@ This dialog will assist you in the creation of a custom gLabels template. True - Waste (overprint allowed): + 2. Waste (overprint allowed): False False GTK_JUSTIFY_LEFT @@ -1313,6 +1382,75 @@ This dialog will assist you in the creation of a custom gLabels template. + + + + True + 3. Margin + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + 0 + 1 + 2 + 3 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + 2 + 3 + 2 + 3 + fill + + + + + + + True + True + 0.01 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 10 + + + 1 + 2 + 2 + 3 + + + 0 @@ -1402,7 +1540,7 @@ This dialog will assist you in the creation of a custom gLabels template. True - 5 + 6 3 False 12 @@ -1411,7 +1549,7 @@ This dialog will assist you in the creation of a custom gLabels template. True - Outer radius: + 1. Outer radius: False False GTK_JUSTIFY_LEFT @@ -1435,7 +1573,7 @@ This dialog will assist you in the creation of a custom gLabels template. True - Inner radius: + 2. Inner radius: False False GTK_JUSTIFY_LEFT @@ -1459,7 +1597,7 @@ This dialog will assist you in the creation of a custom gLabels template. True - Clipping width: + 3. Clipping width: False False GTK_JUSTIFY_LEFT @@ -1483,7 +1621,7 @@ This dialog will assist you in the creation of a custom gLabels template. True - Clipping height: + 4. Clipping height: False False GTK_JUSTIFY_LEFT @@ -1507,7 +1645,7 @@ This dialog will assist you in the creation of a custom gLabels template. True - Waste (overprint allowed): + 5. Waste (overprint allowed): False False GTK_JUSTIFY_LEFT @@ -1642,7 +1780,7 @@ This dialog will assist you in the creation of a custom gLabels template.GTK_JUSTIFY_LEFT False False - 0.5 + 0 0.5 0 0 @@ -1666,7 +1804,7 @@ This dialog will assist you in the creation of a custom gLabels template.GTK_JUSTIFY_LEFT False False - 0.5 + 0 0.5 0 0 @@ -1690,7 +1828,7 @@ This dialog will assist you in the creation of a custom gLabels template.GTK_JUSTIFY_LEFT False False - 0.5 + 0 0.5 0 0 @@ -1714,7 +1852,7 @@ This dialog will assist you in the creation of a custom gLabels template.GTK_JUSTIFY_LEFT False False - 0.5 + 0 0.5 0 0 @@ -1738,7 +1876,7 @@ This dialog will assist you in the creation of a custom gLabels template.GTK_JUSTIFY_LEFT False False - 0.5 + 0 0.5 0 0 @@ -1752,6 +1890,75 @@ This dialog will assist you in the creation of a custom gLabels template. + + + + True + 6. Margin + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + 0 + 1 + 5 + 6 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + 2 + 3 + 5 + 6 + fill + + + + + + + True + True + 0.01 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 10 + + + 1 + 2 + 5 + 6 + + + 0 -- 2.39.5