MZ@ !L!This program cannot be run in DOS mode. $PELU% 2@  ~`8'P .text`P`.data,@p.rdata(  @p@.bss p.edata ~ @0@.idata~ @0.CRT4@ @0.tls P@0.reloc8'`(@0B/4  8@@B/19Q  D@B/31`@B/45N0@B/57H@J@0B/70X@B/81ٰ6@B/92 p@BÍ&'1f=@MZMMMMthMMtJ$$MMMM趽= Btm1Í&$f<@@PE@uQf t?f j]1Kv$A贿1Ãyt,1f,MD$MD$MD$M$MMMD$ M,Í'U1WVUS׃|0b)čD$@@@ @@@@̃5Md1X=HM9$׃MuޡM1ۃM@MMMtD$D$$Ѓ $ADMM$@|MܦM@tN1t;t+ ~˃"Dv't  ~ئMMtUE E£AMEƍE$E=MD1ۉ$9x<$^M |$$L$:;]uɋEu5MZlMMMD$MD$M$ M MMu  Me[^_]áM$MD$@N$@NMM$,MnMD$@N$ @Nq1$E' M~ M^ ( BtCU$B$MtD$B$(M…t $( BfU]Ð(MÐt&(Mt.$Mt%$S$M$$MÍ&SH M$MD$ D$D$hB$mBD$D$$/\$D$(D$$D$ D$D$D$xBD$ BD$BD$VB$˱$MH[ÐD$D$D$p@D$ `@D$D$VB$茱 M$MD$$$BD$<@B$BDT$<$T$迲u3D$<@D$dBD$$D$ D$<$蠳$gB$$M臱$MH[ÐS\$$$n[ÍvWVS\$ $F$4D$F$BD$ͱ$ljD$/<$t[^_É\$ [^_D$D$ @$d9Í',M$Bw$ء0M$蕟0M1Ðt&,M\$$诤ÍVS\$$$G$D$+T$ Ɖ$%t8ut$$D$[^ft$$D$ԫ[^ÍWVS 0MtB$Q0M$tȞ0M 1[^_Ðt&0M [^_zD$,$D$0M赜D$0$D$0M$xD$ $50MD$ $$B舥$D$D$D$ D$謪קD$lj$譧$D$D$ D$|$qt$ D$D$D$@D$B<$]$\$4$葪\$4$D$BE\$4$D$)D$ $50MD$ $$B$D$D$D$ D$譩$e\$4$\$4$D$赩\$4$D$>B虩50M$HBÉ$\$4$詩\$D$4$U\$D$4$Q\$D$B4$50M袡D$$,ME,MD$$,M$蓚,M$D$,MD$$D$,MD$B$D$谨,MD$$D$蟨0MD$D$D$ 0MD$`@D$B$R0MD$D$D$ 0MD$`@D$B$0MD$D$D$ D$@D$B$0MD$D$D$ D$@D$B$賫0M8MD$B$@D$ 鼚S8MD$B$É$\$ [ЙD$B铬v<4MD$,t<$̙4M$tC4M1<Ív蓘4M@Ít&VS\$ Ct+$hD$ D$D$C$qt$D$[^躈D$D$$謈4$D$蘈t$$輂t$ [^nS\$ $`̠MȠMtD$ȠM$J[Í'SD$,\$$D$D$($y\$ D$,D$$BD$([St&'VSD$$D$D$ $y$ey8$Zy[^fWVSD$,t$$D$D$($Jy$ y8$y|$(t$ D$,D$$B[^_骈fUW1VSrB|$H\$PD$HBD$TB|$(D$\BD$dBD$lBD$tBD$|BDŽ$BDŽ$BDŽ$BDŽ$BDŽ$BDŽ$BDŽ$BDŽ$BDŽ$!BDŽ$*BDŽ$2BDŽ$9BDŽ$DBDŽ$JBDŽ$PBDŽ$ZBDŽ$eBDŽ$ nBDŽ$uBDŽ$~BDŽ$$BD$@$DŽ$,BDŽ$4BDŽ$8BDŽ$DBDŽ$LBDŽ$TBDŽ$\BDŽ$dBDŽ$lBDŽ$tBDŽ$|BDŽ$BDŽ$ BDŽ$BDŽ$BDŽ$BDŽ$)BDŽ$1BDŽ$:BDŽ$EBDŽ$KBDŽ$ZBDŽ$cBDŽ$oBDŽ$xBDŽ$~BDŽ$BDŽ$Bv:D$|$4$vD$l$ D$|$4$u+uËkt:D$8|$4$D$uD$8D$l$ D$4$D$u북[^_]Ðt&ĠMtĠMÐS8$ĠM踆$BE~\$D$D$0>@D$D$ >@D$$詄D$$@>@D$(D$,2~T$$D$$T$薄\$$ĠMĠM8[Ít&UWVS|MtB$@sM$tsM|1[^_]ÍvrM|[^_]$1t$0qM$$sD$M$oqMD$B$RqMD$D$D$ MD$طAD$B$̓MD$ $}D$$ljD$$D$M$}$B{<$D$D$D$ D$CD$$?D$lj$D$(Q}|$$|$X}D$@BD$DBD$HBD$LBD$PD$TBD$X BD$\BD$`BD$dBD$hD$l!B}D$@D$@$D$,xBOvx$耆L$ D$D$D$D$t$L$ $XxtXL@ɉL$ t$$uhxD$D$&BD$D$ D$t$$x몍v'D$,$$q$|$D$(t$$*|}4$ÉD$D$}\$4$D$D$ D$0B|\$4$D$D$ D$?@||4$ÉD$D$|\$4$D$D$ D$:B|\$4$D$D$ D$?@T|4$D$ D$D$?@l{4$D$l{$?B0yl$$D$D$D$ D$,$~|D$$z|D$$D$ zT$ $T$zƉ$z4$UT$ \$$z`{$D$D$D$ {D$ $D$D$ D$:BD$P{D$ $D$D$ D$0?@D$ {D$D$$ p|$4$D$D$ 0pT$ $o|$$z$NBwD$D$D$ D$,$6{D$$2{D$Ɖ$Hyt$$yyD$WBÉ$y$D$[Buy$D$_Bey$D$cBUy\$4$1ydD$$~@iB$z$D$xt$$x$BvD$D$D$ D$,$AzD$$=zD$Ɖ$Sx$t$xxD$BÉ$D$BxD$BD$B$xxD$BD$B$`x\$4$4xvD$D$ :BD$D$B$}|$4$wMVS\$ t$$$;lD$$t$pwtt9tD$$}u[^Ét$$D$ K@jw[^Ít&VS4РMtB$kРM$t)lРM41[^Í&sjРM4[^$v$BZw$D$&v$BBw$D$v$B*w$D$u$Bw$D$uyuD$D$$BzƍD$,4$D$}T$,D$ D$$T$5u4$}}РM\$$РMUWVS$$$t$t|$ |$D$4$|$m$t$\$Htl$ D$\$4$|mtD$$D$$|4B,BD‰\$ |$4$D$qmČ[^_]ÍWVSĀ$t$|$Ht$$l|$$ m|$t$$l|$t$$D$ lÉD$$D$ D$$s${v$l[^_Ív'VS\$ t$$$[hD$$t$lstt9tD$$(yu[^Ét$$D$O@s[^Ít&UWVS<ԠMtB$gԠM$tGhԠM<1[^_]ÍvfԠM<[^_]$ZfT$P$ԠMT$eԠMD$,D$$fԠMD$D$D$ ԠMD$طAD$:B$kx$jD$D$ D$BBD$,B$=kD$D$ D$BBD$4B$krD$$kljD$ԠM$Gr$i<$D$1rD$D$t$ D$`N@D$LB$wD$D$$TBvlj$yD$<$D$,yL$,D$$L$i<$y,$OiD$D$D$ D$M@D$oB4$wԠMt$$bԠMUWVS$$$p$p|$ |$D$4$|$i$p$\$Hpl$ D$\$4$lipD$$D$$xBBD‰\$ |$4$D$aiČ[^_]ÍWVSĀ$t$|$Ht$$h|$$h|$t$$sh|$t$$D$ hÉD$$D$ D$$o$wr$h[^_Ív'WVS@\$P|$T$Jd$d$D$4dD$4D$8|$4$\$ D$8\$T$T$\$<~i$^d$D$4JdD$4D$8|$4$\$ D$8\$D$<$ O4$OD$8\$$`ID$$JD$$JD$4D$D$ D$t$$J$B.JD$D$\$ D$@p@D$B$pN|$D$D$ D$4$4J$BID$D$\$ D$o@D$B$ND$D$ D$|$4$IMD$D$@$I;M&D$BD$VB\$P$N`WVS Mt6$1<M$t<M [^_:M [^_$lB?QD$ D$0D$D$D$$sBD$FD$$MZ:MD$D$D$ D$AD$B$LMD$D$D$ MD$طAD$B$LM$cFD$$eH4$ÉD$D$D$ D$/HD$$WF$BD$BƉ$Bt$D$D$ D$$GD$$9E$DD$D$D$ D$$G4$DD$lj$YDD$D$ D$|$$]G4$}KMVS4t$ D$@$[At$É$mAt$$D$D$ BD$At$$=At$$D$D$ BD$@t$$ At$$D$D$ BD$@4[^É'VS$Mt4$B9M$t9M$[^8M$[^$BRND$ D$0D$D$D$$BD$CD$$Mm7MD$D$D$ D$AD$B$IMD$D$D$ MD$طAD$B$IM$vCD$$xE4$ÉD$D$D$ D$BE$D$jC$?D$BƉ$?t$$D$D$ D$DB$ƉD$D$D$ D$D(B4$ÉD$A$H]$ƉD$A4$HD$$AMUWVSӃL$L$(t$`eK$INjD$d$1FD$`BD$<$IL$(tL$D$kB<$H$\$ $BT$\$(uK,$D$77$D$ F$JD$<,$D$D$)FD$d$D$ED$($\$J$\$ T$\$,JT$<T$(D$($\$ D$,\$K$J$bJ,$ZG<$D$HL[^_]fS$8Há M AD$C$3DD$ AD$D$$HC MHR)؉ M[ÍvS\$ C$H\$ [HUWVSL\$d$C$D$C$Cŋ' AiD$hl$@$H;>t F$G>PۃPuEt@D$0$D$D$(D$^CtD$(^(D$0^0D$`$84L1[^_]ËD$$CD$t C,D$|$8tmt$l$&vtO|$ D$C ,$D$PCt$FD$8D$D$D$@$)Gvut$D$$Ft&D$htC$F$GD$ht&D$h0L$hƉD$h8tG$F<$FD$ht&D$hl$@$MFCD$ƋD$hl$@$RF)t&VS\$ 3tF$6F4$>FC$#F\$ [^%Ft&VSƉ˃D$$Bt#D$$Et[^f1[^Ð&WVS։Ãp$F$\$FF$D$AF,$\$ T$\$8FF,\$ $\$GD$8\$ F$$\$F$\$ F$$\$F$EF,\$ F$$\$EL$PyBD$8؍L$XBL$hB$E$B$\$E8B$\$T$T$ T$\$8QE$ED$h$ @B\$$D$8T$(B\$T$ \$?F$D$GE$?Ep[^_Ð&L$`B1(B$D$`\$8L$X\$@D$T$T$ T$\$LD$6ED$L$T$ \$*ED$8$\$ D$@\$JE$JDD$8$\$ D$@\$DD$B$*D$rD(BT$(\$@T$ T$T$T$$oDD$P$T$$D$8T$\$\$ \$WDD$8<$T$$T$T$\$ \$3D|$$C0B$\$$D$8T$D$@\$T$ \$D$uD<$CUWVS\D$(l$xD$$D$D$p$/UtD$4L$0$D$tE\$8t$ |$4$D$3Bl$xl$t'T$ L$0<$^t$D$$Au֋l$xEtD$D$$T$t1ɉ$D$paE$|$l$$D$A$&D$ L$T$t,$D$D$p$t$|$$|AuЃ\[^_]Ð&VS$MtB$".M$t.M$1[^Í&,M$[^$,D$$D$M,MD$D$D$ MD$طAD$B$>}7ÉD$M$"9D$$".$@D$ @D$D$$P@D$ P@t$D$B$Fq>D$D$t$ D$@D$B$->D$D$t$ D$@D$B$>MVS$Mt4$,M$t -M$[^a+M$[^$HBAD$ D$0D$D$D$$OBD$B7D$$M*MD$D$D$ D$AD$[B$(=MD$D$D$ MD$طAD$dB$<M$6D$$84$ÉD$D$D$ D$8D$$6$lB.3D$D$D$ D$$R8$B4D$D$D$ D$$ 8$B24$D$6M4D$D$s*vD$D$c*vD$ MD$I*'D$MD$)*' BD$D$|$(M|$ M)&VSD$@$D$$$z*(M M4M$3y0M$l3dM$=( BD$L$\$$T$D$8D$H\$<0 B\$D$8D$8\$ D$8\$> B$\$D$!B*L[^_]$$!B !4$D$D$<$D$<$T$(!B\$ \$!B\$T$$&|$ D$D$D$@D$+!B$D$<*T$<$T$4$D$D$D$0D$$D$D$@D$D$> fD$<$l$<\$ l$>$D$(l$<\$l$>$D$D\$D$ D$@D$$$Y$ 'x(@\$(@\$0vVSTD$d@= t=tT1[^ËD$`\$$Ɖ$\$D$4$D$` T1[^ÐWVS dMtB$QdM$tdM 1[^_Ðt&dM [^_ËD$0$cD$<$;lMD$0$BD$$$hM dMD$0$D$dM$G dMD$D$$J dMD$D$D$ dMD$طAD$$B$dMD$$B$ dMD$$fD$É$D$D$D$ D$@D$$B$,D$D$D$ D$P@D$$B$D$D$D$ D$p@D$$B$$D$$D$$D$dMt$$\$4$+4$ dM|M$ xM|M$9tMxM$"tMÍt&VS4D$(\$@D$D$D$D$D$ $D$ D$DD$_D$,D$D$D$$D$D$$D$ D$HD$'L$ tCD$$\$(tD$,\$(D$$Ɖ$`T$,$T4[^ËT$$tƋ\$(щ'UWVS\$?MD$D$$2 &4$8.tD$MD$$(D$$$D$D$ D$D$D$<ÍD$@<$D$L$KBg\$ D$D$D$@D$CKB$D$D$ D$|$4$m<$-$KKBá̡MD$D$D$AD$CKB$D$ >D$D$ D$\$4$D$$Z$$̡MD$ D$$Ðt&D$@tzv'D$ $ID$$D$QWVS։Ã@D$P\$D$X\$@ $\$ \$(D$ $D$0\$ D$C$ND$8D$8D$<D$8D$ D$(\LBl$͉D$D$<D$D$>D$$ fD$$D$PD$TD$PD$C$%l[^_]ËO7$L$(L$$l$ t$$L$L$(L$ t&D$$|$>D$> fD$_&D$\D$D$XD$ D$TD$D$PD$C$8D$(|$>D$>D$(l$(D$( fD$D$8D$X'l$<\$8l$>D$8ڍS\$ D$C$C$2ܡMC\$ @h[WVSĀ$D$|$H$D$($D$$/T$(L$4$D$h‰T$PT$,T$TT$0)L$\)‰T$X$ 3 D$LL$D$dD$`D$,|$$,$ƉD$\$4$D$D$\$ D$@@D$XKB4$.CD$ht$$$D$,|$$C$\$CtS$T$t$C$\$ D$D$D$@D$lKBC$\$ D$D$D$@D$xKBC$Y$!t$$kC<$D$\C$[^_fD$8D$C$-D$@D$XD$DD$\&D$ T$L$tRt L$T$D$ KBD$CLBD$VS$\$4t$0$SV9t$[^É$D$D$Ft߉4$#tӉt$0$[^'S\$ Ct!D$KBD$$[ËCD$D$$$D$$\$$D$$C[ÐСMtСMÐS($СMHtW$KBD$D$@D$(D$ @@D$\$$=$СMD$СM([Ít&'WVS\$ $ܡMءMtD$ءM$Cd@Ch@@ǃ@ǃp@Cl@ǃ@D$D$$@I$KBD$|$t$$ǃP@ǃ@ǃ@ǃ@[^_Ít&D$$Ít&S(\$0D$4\$[tt9t1D$$u!D$8KBD$4)LBD$0([\D$[ $eCD$0(['D$ $)D$$\$$aÍ'UWVS,ԡMtB$PԡM$tԡM,1[^_]ÍvԡM,[^_]$ԡMD$@$!D$ԡM$ԡMD$KB$kԡMD$D$D$ ԡMD$طAD$ LB$ԡMD$ $D$$`LB$\$hLB\$ \$D$$$LBD$D$ÉD$ D$@D$LB<$BԡMt$$D$D$ D$|$4$D$D$ D$\$4$l$$EԡM3D$D$D$D$Ít&'D$D$D$D$Ít&'D$ D$$Ðt&D$@tv'D$ $D$$D$UWVS$$4$$D$l-Ft $u Ĝ1[^_]ËF|$`$ŋF$l$$T$T$\$H\$D$H<$T$,T$$T$0MB\$T$ \$\T$\$H<$\$ D$HT$\$X6<$D$H؃ D$LD$L\$ 8MB\$|$$t$Ll$D$L$T$\$PD$\T$\$LD$H\$D$LT$D$P\$$\$HD$HƉ$T$$T$T$T$ \$@MB4$\$$D$HT$T$T$ \$LHMBT$\$HD$H4$\$$D$LT$T$\$ LMBT$\$HzD$H4$\$$D$LT$T$T$ \$HPMB\$LD$X4$T$$D$HT$T$\$ \$(t$$|4$Ĝ1[^_]ËF$D$(F$}D$HF$^4$D$LRD$H$\$\$ D$L\$T$\$Fx\$D$4$qcVSƉӃ$@D$D$t $u'4$DT$T T$T ЉC$[^ÍD$D$D$F$貽뼃D$ T$D$T$(T$$ÍD$ T$PD$T$(T$$ÍUWVS\\$pt$t$t$襼$NjFn $D$ Ct $ʼu\[^_]ÍD$8D$D$C$ռD$<$D$@D$DD$LD$8D$H襼ulD$@D$C$F\[^_]ËN?$T$,L$(D$$&T$,L$ $))ՋT$$L$ L$(l$T$L$,D$LD$D$HD$ FD$>|$C$e&'S\$ D$C$C$MC\$ @h[S8\$TD$D\$CD$L\$tq$ateD$ D$C$費D$r(D$(v.D$r(D$,v*C8[fv' ؍v'81[É'WVSĀ$D$|$H$D$($D$$?T$(L$4$D$h‰T$PT$,T$TT$0)L$\)‰T$Xź$ 3 D$L\$D$dD$`萺D$,|$$<$ƉD$.\$4$D$D$\$ D$@D$pLB4$>CD$ht$߹$$'D$,|$$C$\$CtS$T$Ƹt$C$\$ D$D$D$@D$LBC$\$ D$D$D$@D$LBC$i$1t$${C<$D$lC$[^_fD$8D$C$=D$@D$XD$DD$\&D$ T$L$tRt L$T$D$ LBD$MBD$VS$\$4t$0$cV9t$[^É$D$*D$Ft߉4$3tӉt$0$[^ѷ'S\$ Ct!D$LBD$$[ËCD$D$$$ D$$\$$D$$C[ÐMtMÐS($MXtW$LBD$D$@D$D$ 0AD$\$$M$MD$M([Ít&'WVS\$ $MMtD$M$Cdp@Ch@ǃ@ǃ@Cl@@ǃ@D$D$$P@Y裶$LBD$|$t$$ǃ@@ǃ@ǃ@ǃ0@[^_Ít&D$$Ít&UWVS4$D$64$D$4$D$ D$Ɖ$4$D$蟬t$$#$hMBWD$Ɖ$4$D$et$$4$D$ 葬4$D$ 艬4$D$i4$D$q\D$Ɖ$r4$D$t$$v$hMB誴D$Ɖ$8D$4$踫t$$<$|MWVS0\$D$讬$ǍD$,D$D$tMBD${MBD$D$(\$4$D$ η$螽\$4$肷D$,T$(\$4$D$ 19D$tS$;0[^_Ít&C$#0[^_ÍWVS0\$D$$$ǍD$,D$D$tMBD${MBD$D$(\$4$D$ $޼\$4$¶T$,1\$4$9D$ D$(D$t蓱${0[^_Ít&胱$c0[^_ÍUWVS<\$P$m$D$,YŋD$T$胴D$Ɖ$!ܳ4$D$VD$X$育$D$D$D$D$ D$螳$MB躶$D$D$D$D$ D$dD$,<$D$D$D$ AD$MBD$ L$MBP$ljD$D$D$D$ D$<$D$蒬D$,<$D$D$D$ AD$MBD$ ҺD$\$f$D$D$D$D$ D$育$MB螵$ljD$D$D$D$ D$H<$D$l$ <$D$D$D$ AD$MB$$MB($ljD$D$D$D$ D$ұ<$D$jl$ <$D$D$D$ AD$MB讹<[^_]Ít&UWVS,MtB$@M$t跨M,1[^_]Ív M,[^_]$ʦMD$@$D$M$xMD$D$D$ MD$طAD$MB$MD$MB$&MD$$D$$襴ÉD$M$$辭D$ƉD$D$ D$$PD$4$x$|4$D$莭$袰D$ʼn$舰,$D$<D$<l$<$L$MBx,$D$L$HD$ʼn$.,$D$<D$P膥l$<$$D$ʼn$D$PD$<,$Dl$4$訬D$ MBD$MBD$MB<$D$D$D$ D$$D$ MBD$MBD$MB4$D$D$D$ D$$$xM6WVS MtB$aM$tإM 1[^_Ðt&#M [^_$MD$0$2D$M$虣MD$MB$|MD$D$D$ MD$طAD$MB$MD$ $轭D$É$蛭D$ $蓭M\$$D$ $躯$MB.D$Ɖ$輣4$D$<4$D$茣/t$D$D$D$ D$$|$D$D$D$ D$$$MB葫D$Ɖ$4$D$蟢4$D$2t$D$D$D$ D$$t|$D$D$D$ D$$H$MBD$Ɖ$肢4$D$4$D$RD$$MB覬t$D$D$D$ D$$ȫ|$D$D$D$ D$$蜫$ NBHD$Ɖ$֡4$D$VD$$NB t$D$D$D$ D$$,|$D$D$D$ D$$$!NB謩D$Ɖ$:D$4$躠D$4$ $'NBND$$4D$D$D$ D$t$$xD$D$D$ D$|$$LMUWVSLMD$D$D$D$D$@M$D$DMD$ HM$'M M+$.+MD$-MD$ $T$FD$HD$H5OBDMOBݜ$@Mݜ$ݜ$1 OBT$x$\$XD$X OBOBw7ټ$$ f$٬$ۜ$٬$$ v'ىD$tÉD$MD$ AD$UB$裀$ UBxD$D$D$ D$<$A|4xD$Ɖ$bz4$D$x4$D$ wt$,$~z1҉D$ A$.UB ٺD$ A$:UB$FUBCxD$D$D$ D$<${wD$Ɖ$y4$D$Vw4$D$ Nwt$,$y1҉D$A$SUB`ٺD$A$\UBC$gUB7zD$ƉD$D$ D$<$zD$4$pD$D$\$ D$0EAD$xUB4$~MM$rMD$ q M$qMD$ q WVS Mt6$lM$thmM [^_kM [^_$UBD$ D$0D$D$D$$UBD$wD$$MkMD$D$D$ D$AD$UB$}MD$D$D$ MD$طAD$UB$P}M$#wD$$%y4$ÉD$D$D$ D$xD$$wD$$x\p4$D$6wu4$D$%wt$$wD$$=Mxp<$D$vu<$D$v|$$v<$D$5M/j$UBC$wD$D$t$ D$ JAD$UB$ ||$$iv$UB$}wD$D$t$ D$IAD$UB${|$$vM$oM$oMNiB$QuD$MiB$Quʉ\$ D$WiBD$ $/RD$$B\$lj$A\$<$yAD$\D$|$$A X&l$dD$`D$A$QvD$|D$A1$Q$iB/AƉD$D$X$KJv|$$ciBP$#Dt$$%A4$Q\$D$,$@$C u$@$giBKƉ$=t$$@l$X\$,$IyiB$ƉD$D$j@t$$D$D$ D$hB^IiB$ƉD$D$&@t$$D$D$D$hBD$ D$hB IiBX$ƉD$D$?t$$D$ D$D$hBD$D$hBD$ D$hBHiB$ƉD$D$n?t$$D$ D$D$hBD$D$hBD$ D$hBBHD$$V?D$jBƉ$t$$D$>4$D$>D$$>D$+jBƉ$>4$D$4jBj>t$$D$>4$D$6>D$$>D$UjBƉ$>4$D$ajB>t$$D$,>4$D$:D$$H>D$tjBƉ$.>4$D$jB=t$$D$=t$$D$D$D$hBD$ D$hBFD$$=D$jBƉ$=4$D$jB8=t$$D$T=D$$@D$É$D$?$D$E$D$9$l$"F|$x\$<$FD$l$F9t$pD$D$l$ D$oAD$jB4$nKD$tD$D$l$ D$nAD$jB$>K4$l$2@D$Ɖ$;E<$D$D$ D$t$FD$D$D$ D$lAD$jB,$JD$D$ D$l$,$;DD$lj$8<$D$D$D$jAD$jBD$ D$qAD$jBJ|$D$D$ D$,$ ;D$$>D$É$D$=|$$VD$D$C$jBr@\$D$4$j?-CD$É$8D$<D$8@hAD$4kB\$0D$,rAD$(kBD$$D$ @iAD$jBD$D$ppAD$,kBD$ D$qAD$jB$D$@wID$D$ D$\$,$9D$$<D$lj$D$<\$<$1CD$<$B$@kBM?|$D$4$E>ТMvVS$$D$$$7$$D$D$ ?p$t$0$D$0H$ lBL$8P$$$ݜ$T$0$\$@D$0\$x\$0D$8D$8\$X\$HD$8\$p\$8T$T$ T$\$PlJD$8$D$HD$0D$@T$\$hT$\$`\$ \$J$&KD$H\$D$PT$D$X\$$~JD$P$T$$T$T$T$ \$dJD$P4$D$$D$(?T$T$\$ \$6Jt$$I4$ JD$H$D$XT$ݜ$D$`\$T$ ݜ$D$@\$I$`JD$pT$\$XD$PT$D$8\$$ID$P$D$$D$(?T$T$T$ \$ID$P4$T$$T$T$\$ \$lIt$$H4$@ID$8$D$XT$ݜ$D$`\$\$ D$@\$I$ID$PT$D$@\$\$݄$$\$XHD$PƉ$T$$T$T$T$ \$HD$P4$D$$D$(?T$T$\$ \$Ht$$4H4$|HD$@$D$XD$h\$T$\$`D$H\$ T$ݜ$=H$HD$PT$D$xT$\$X\$D$0$)HD$P$D$$D$(?T$T$T$ \$HD$P4$T$$T$T$\$ \$Gt$$mG4$GD$0$D$XD$h\$T$\$xD$H\$ \$G$H lB\$(D$HT$ D$@T$D$P\$\$$WGD$P$D$$D$(?T$T$T$ \$9GD$P4$T$$T$T$T$ \$p\$Gt$$F4$F݄$$T$\$PD$`T$\$h݄$T$ \$`݄$T$\$XF$6G lB\$(D$HT$ D$0T$D$pT$\$H\$$rFD$H$D$$D$(?T$T$T$ \$TFD$H4$T$$T$T$\$ \$2Ft$$E4$FD$P$\$D$xT$\$PD$`\$ D$0\$E$jF lB\$(D$8T$ D$@T$D$HT$\$@\$$ED$@$D$$D$(?T$T$T$ \$ED$@4$T$$T$T$\$ \$fEt$$D4$:E݄$$T$\$HD$h\$D$8\$ D$X\$E$E lB\$(D$8T$ D$0T$D$@\$\$$DD$@$D$$D$(?T$T$T$ \$DD$@4$T$$T$T$\$ \$Dt$$'D4$oDD$H$\$D$P\$D$8\$ D$0\$?D$DĴ1[^Ít&UWVS,ԢMtB$/ԢM$t0ԢM,1[^_]Ívk.ԢM,[^_]$*.ԢMD$@$q/D$ԢM$-ԢMD$D$$-ԢMD$D$D$ ԢMD$طAD$kB$.@ԢMD$kB$i-ԢMD$$$:1D$$3D$É$D$3t$$+:5\$$:ԢMt$$:89D$D$$kBU@D$ D$D$<$g9,$_A$.D$X$|$k2D$D$D$ D$AD$lB$?\$4$W4D$$'-D$$,4$w,ԢMUWVSLD$d\$hl$0$.ƋD$`D$$lB$>t$l$lj$/D$,|$l$$D$D$ .T$,|$l$$D$T$ T$,N.4$.L[^_]ÍUWVSآMtE$,آM$t4-آMČ1[^_]+آMČ[^_]$t$p@+آM$$,D$آM$*آMD$+lB$*آMD$D$D$ آMD$طAD$?lB$I=D$$-9D$$C7آM\$$z7$HlB3$D$D$D$ D$8D$$0D$lj$D$\0<$D$D$0|$$|$`D$D$ D$`8D$ D$D$D$D$D$ D$D$@$L,-@AD$X@At&D$XhD$|$$,D$XD$HD$DD$@D$<D$8D$4D$0D$,D$(D$$D$ D$D$D$D$D$|$$T$ w+Mt&|$t$ $e+D$HUD$@D$<D$8T$DUD$0T$4UD$(T$,UD$ T$$UD$T$UD$T$UD$t$$T$ *EUD$X D$X$**$:4$0*D$$*4$ *5lj$D$D$olB\$a:|$ D$D$D$vlBD${lBD$4$)4$D$)D$$) 5lj$D$D$olB\$9<$D$D$$lB9\$ <$D$D$D$AD$lB}9|$ D$(D$$D$ lBD$D$lBD$D$lBD$lBD$4$(4$D$(D$lj$(<$D$2(<$D$( 4lj$D$D$olB\$8<$D$D$$lB8\$ <$D$D$D$AD$lB8|$ D$ D$D$lBD$D$lBD$lBD$4$'4$D$'D$lj$(<$D$2'<$D$'3lj$D$D$olB\$7<$D$D$$lB7\$ <$D$D$D$AD$lB7|$ D$(D$$D$ lBD$D$lBD$D$lBD$lBD$4$&4$D$&D$lj$'<$D$2&<$D$&2lj$D$D$olB\$6<$D$D$$lB6\$ <$D$D$D$AD$lB6|$ D$ D$D$lBD$D$lBD$lBD$4$%4$D$&D$lj$&<$D$2&<$D$&11lj$D$D$olB\$6D$D$$lB<$5\$ D$D$D$AD$lB<$5D$ D$D$lBD$D$lB|$ D$lBD$4$%4$D$"%D$É$(%D$2$ %D$$%D$\t$$x/D$D$D$ D$xAD$lB4$4آMD$D$$;"آM$B3ÐUWVSƉӃLD$,D$8D$D$D$D$D$$ÉED$yMD$ yzMD$D$myM$ !{/D$XD$D$D$$$RD$tyMD$ yzMD$D$myM$ D$XD$ D$9yML$0D$D$,$$$8L$0vD$($ $$$$$$$ $$$$$$$$$$ $$$$$($$,$$0$$4$t$$D$$D$ D$;yMD$NyM4$D$X4$D$D$X$$D$\$D$`$D$d$D$h$D$l$D$p$D$t$D$x$D$|$$$$$$$$$D$X\$ 4$D$NyMD$N4$D$D$ D$xMD$YyM\$4$$D$X$D$\$D$`$D$d$D$h$D$l$D$p$D$t$D$x$D$|$$$$$$$$D$X$ D$X\$ 4$D$YyMD$LMt$$ 4$#t$,D$D$ D$;yMD$NyM4$ D$X4$D$ D$X$$D$\$D$`$D$d$D$h$D$l$D$p$D$t$D$x$D$|$$$$$$$$$q D$X\$ 4$D$NyMD$- 4$D$D$ D$xMD$YyM \$4$ $D$X$D$\$D$`$D$d$D$h$D$l$D$p$D$t$D$x$D$|$$$$$$$$D$X$ D$X\$ 4$D$YyMD$+ Mt$$ 4$|[^_]ÍD$XD$ D$7yMD$D$,$s D$0PD$$ D$É$D$ D$$i d D$lj$D$D$ 0xMD$D$=xMbD$<$ D$<$ |$$vD$<$ D$<$ D$<$ $Z T$,D$0$*T$,D$D$4$L$4D$D$0L$$ D$0<$D$b D$H@D$yMD$$D$$D$ D$H$oxE$$ÉEv'D$gyMD$ lzMD$$D$myM$dD$$$vUWVSD$\i‰D$HD$\D$vM$D$kD$\t$HD$yMB4$.ÉD$LD$$$\$ $D$D$@B4$D$yM4$D$yMM4$D$yMM4$D$yMM4$D$yMt$pܢM$MáBD$B$t&ED$`}D$$D$D$0D$,D$(ED$ D$$ED$D$ED$D$ED$$D$ D$`D$;kW`D$`t$$D$!D$0D$,D$(GD$ D$$GD$D$GD$D$GD$t$$D$ yt&M\$ D$D$D$0AD$yM$_l$HD$yM,$\$ D$D$D$AD$yM$M$t$$t$<$@M$D$L$,$Č[^_]Ë@D$yMD$$D$ A$-'SXD$`\$@D$\$$u X[Í&D$8D$ D$D$D$D$D$<\$D$D$4D$ D$d$D$8tD$D$4$D$/BE/BL/BS/B]/Bh/Bs/B~/B/B/B/B/B/B/B/B/B/B/B/B0B0B0B%0B00B60B=0BD0BK0BR0Ba0Bj0Bt0B~0B0B0B0B0B0B0B0B0B0B0B0B0B0B1B1B1B&1B/1B91BE1BT1Bd1Bt1B1B1B1B1B1B1B1B1B1B1B1B 2B2B2B*2B82BF2BT2Bb2Bp2B~2B2B2B2B2B2B2B2B2B2B2B3B3B3B+3B83BE3BR3BZ3Bb3Bm3By3B3B3B3B3B3B3B3B3B3B3B3B3B4B 4B4B4B4B%4B/4B:4BE4BP4B[4B`4Bf4Bl4Bs4B{4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B5B 5B5B5B!5B(5B/5B65B=5BD5BK5BR5BX5B_5Bf5Bm5Bt5B{5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B6B 6B6B6B!6B(6B/6B66B<6BC6BJ6BQ6BX6B_6Bf6Bm6Bt6B{6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B7B 7B7B7B 7B'7B.7B57B<7BH7BM7BS7BY7B`7Bh7Bo7Bv7B}7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B8B8B8B8B8B#8B*8B18B88B?8BE8BL8BS8BZ8Ba8Bh8Bo8Bv8B}8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B9B9B9B9B9B#9B)9B09B79B>9BE9BL9BS9BZ9Ba9Bh9Bo9Bu9B|9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B:B:B:B:B$:B.:B8:B@:BI:BR:B[:Bd:Bn:By:B:B:B:B:B:B:B:B:B:B:B:B:B:B:B:B:B ;B;B);B8;BB;BO;B];Bk;By;B;B;B;B;B;B;B;B;B;B;B;B;B B >B>B>B#>B,>B5>B>>BG>BN>BV>B^>Bf>Bn>B>B>B>B>B>B>B>B>B>B>B?B?B#?B3?BE?BU?Be?Br?B|?B?B?B?B?B?B?B?B?B?B?B?B@B @B@B@B!@B,@B7@BB@BM@BT@B\@Bd@Bl@Bt@B~@B@B@B@B@B@B@B@B@B@B@B@B@B@B ABAB#AB2ABAABPAB_ABmAB|ABABABABABABABABABABABABABBBBB BBBBBBBB#BB)BB4BB;BBCBBKBBSBB[BB_BBdBBiBBnBBsBB}BBBBBBBBBBBBBBBBBBBBBBBBBBCB CBCBCB&CB0CB:CBDCBNCBWCBaCBkCBuCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBDBDBDB$DB/DB:DBEDBODBTDBZDB`DBfDBlDBxDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBEBEBEB"EB+EB2EB:EBBEBJEBREB\EBgEBrEB}EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBFBFBFBFBUBUBUBUBUBUBUBUBUBlBBlBBlBBlBBlBBlBBlBBlBAlBAmBA mBAmBAmB:mBDmBLmB]mBkmBxmBmBmBmBmBmBmBmBmBnBnB,nBoBYoBjoBzoBoBoBoBoBpB ]zM AazM AgzMAMM M@M"M,M@8M@MHMp@RM]MjM@wM@ BMMMP.@MMăMp4@ЃMكMM;@MMMD@MM2M@d@;MGMTMl@bM@ BhMsM~M @MMM@MMM@@ÄM̄MՄMP@yMMM@@M`BMMM0@M M)M@3M9M?MP@GMOMXM@bMhMnM@@vM BMMM@MMMAMąM҅MAڅMMMAMMM@AMMM A)M2M;M'AFMOMXM*AcMpM}M 1AMMMFAMMMPJAȆMΆMԆM MA܆MMMBAMBMM!MprA/M;MHMAVM B`MqMM@MMM0AMʇMۇM@@MMM@M(M2M@>MGMVMQAaMlMMfAMMM{@MLjM؈M~@MMM7AM"M7MP=AGMVMeMps@vMMM@MMMAMʉM؉MK@MMMpO@ MM0M0T@BMNMcM`Y@qM}MM^@MMMgAAPA`AN@Dlibgcj-13.dll_Jv_RegisterClasses./gtk3-demo-application.exegtk3-demo-applicationorg.gtk.Demo2%squit(sava{sv})Activateorg.gtk.Actions/org/gtk/Demo2Sample assistant (%d of %d)You must fill out this entry to continue:changedPage 1This is optional data, you may continue even if you do not check thisPage 2This is a confirmation page, press 'Apply' to apply changesConfirmationApplying changescancelcloseapplyprepare?window1aboutdialog1Help not available /builder/demo.uiERROR: %s destroytoolbar1primary-toolbarOKCancelHelpButton BoxesdestroyHorizontal Button BoxesSpreadEdgeStartEndCenterExpandVertical Button Boxes_OK_CancelOpen DisplayPlease enter the name of the new display Can't open display : %s please try another one closedPlease select the toplevel to move to the new screenmarginbutton-release-eventDisplay_Open...clicked_ClosetextNamechangedChangeChange Screen or displayresponsedestroydisplay-openedImage storage type %d not handled_Copyactivate_PasteClipboard demodestroy"Copy" will copy the text in the entry to the clipboardclicked"Paste" will paste the text from the clipboard to the entryImages can be transferred via the clipboard, toodialog-warningdrag-begindrag-data-getdrag-data-receivedbutton-press-eventprocess-stopChanging colorresponseColor Chooserdestroydraw_Change the above colorclickedsensitiveA - BAlbanyAnnapolisAtlantaAugustaAustinBaton RougeBismarckBoiseBostonC - DCarson CityCharlestonCheyenneColumbiaColumbusConcordDenverDes MoinesDoverE - JFrankfortHarrisburgHartfordHelenaHonoluluIndianapolisJacksonJefferson CityJuneauK - OLansingLincolnLittle RockMadisonMontgomeryMontpelierNashvilleOklahoma CityOlympiaP - SPhoenixPierreProvidenceRaleighRichmondSacramentoSalemSalt Lake CitySanta FeSpringfieldSt. PaulT - ZTallahasseeTopekaTrentonMaskEntrydialog-warningCombo boxesdestroyItems with iconsprocess-stopdocument-newedit-cleardocument-openWarningStopNewClearOpenseparatoricon-nametextWhere are we ?EditableOneTwo2½Three^([0-9]*|One|Two|2½|Three)$String IDsNot visibleneverVisible when activewhen-activeAlways visiblealwaysactive-iddestroyThisIsACSSAccordion:-)/css_accordion/css_accordion.csswarningerrordestroyunderlinechanged/css_basics/css_basics.cssparsing-errorwarningerrordestroycanvasdrawbricks-buttonunderlinechanged/css_multiplebgs/css_multiplebgs.cssparsing-errorwarningerrordestroyunderlinechanged/css_pixbufs/gtk.cssparsing-errorwarningerrorgo-nextgo-previousHello Worlddestroyunderlinechanged/css_shadows/gtk.cssparsing-error_OK_CancelInteractive Dialogdialog-question_Entry 1E_ntry 2This message box has been popped up the following number of times:%dDialogsdestroy_Message Dialogclicked_Interactive DialogDrawing AreadestroyCheckerboard patterndrawScribble areaconfigure-eventmotion-notify-eventbutton-press-event@@@ŊL? Aarticles != NULLDescription herecolumnShopping listdestroyShopping list (you can edit the cells!)editablehas-entrytext-columnmodeleditedediting-startedtextNumberProductvalueYummyAdd itemclickedRemove itembottles of cokepackages of noodlespackages of chocolate chip cookiescan vanilla ice creameggsadd_itemsadd_item_CloseGtkEntryBufferresponsedestroyEntries share a buffer. Typing in one is reflected in the other.GNOMEtotaltotally_CloseGtkEntryCompletionresponsedestroyCompletion demo, try writing total or gnome for example.Source: %s Sequence: %dAbs PressureAbs Tilt XAbs Tilt YTiltAbs Wheeldestroygtk-demo-event-dataeventdrawblackorchidfuchsiaindigothistlesiennaazureplumlimenavymaroonburlywood AB-DT!@?-DT! @_CloseGtkExpanderresponsedestroyExpander demo. Click on the triangle for details.DetailsDetails can be shown or hidden.Gestures demodestroydrawswipepressedendangle-changedscale-changed A@?HC-DT!@HBvertexfragmentCompile failure in %s shader: %s axis >= 0 && axis < N_AXISglarea.c/glarea/glarea-vertex.glsl/glarea/glarea-fragment.glslLinking failure: %s mvpGtkGLArea - Golden TriangledestroyrealizeunrealizerenderX axisvalue-changedQuitclickedZ axisY axison_axis_value_change???Zd?Zd?9RFߑ?@ACdestroyWelcome to Facebook - Log in, sign up or learn moremail-send-receive-symboliclinkedpan-start-symbolicpan-end-symbolicpageunderlineblueforegroundSome text to show that simple hypertext can easily be realized with tags.A tag is an attribute that can be applied to some range of text. For example, a tag might be called "bold" and make the text inside the tag bold. However, the tag concept is more general than that; tags don't have to affect appearance. They can instead affect the behavior of mouse and key presses, "lock" a range of text so the user can't edit it, or countless other things. Go backweighthypertext: machine-readable text that is not sequential but is organized so that related items of information are connected. destroyHypertextkey-press-eventevent-aftermotion-notify-event/GtkIconView demodestroy/iconview/gnome-fs-regular.png_Upgo-up_Homego-homeclickeditem-activatedfile_pixbuficonview.c/iconview/gnome-fs-directory.pngfolder_pixbufload_pixbufspixbufRedEditing and Drag-and-DropdestroyGreenBlueYelloweditableeditedtextCFailure reading image file 'alphatest.png': %sresponseFailed to load image: %s/images/alphatest.png%sarea-preparedarea-updatedImagesdestroyImage loaded from a filegtk3-demoAnimation loaded from a file/images/floppybuddy.gifSymbolic themed iconbattery-caution-charging-symbolicProgressive image loading[gtk+] progressive_timeout_InsensitivetoggledYou clicked a button on an info barYour response has id %dresponseInfo BarsdestroyThis is an info bar with message type GTK_MESSAGE_INFOMessagevisibleactiveThis is an info bar with message type GTK_MESSAGE_WARNINGWarning_OKThis is an info bar with message type GTK_MESSAGE_QUESTIONQuestionThis is an info bar with message type GTK_MESSAGE_ERRORErrorThis is an info bar with message type GTK_MESSAGE_OTHEROtherInfo barsAn example of different info barskeynavThe term keynav is a shorthand for keyboard navigation and refers to the process of using a program (exclusively) via keyboard input.responseLinksdestroySome text may be marked up as hyperlinks, which can be clicked or activated via keynav and they work fine with other markup, like when searching on Google.activate-link/listbox/listbox.uicontent_labelsource_namesource_nickshort_time_labeldetailed_time_labelextra_buttons_boxdetails_revealeravatar_imageresent_boxresent_by_buttonn_reshares_labeln_favorites_labelexpand_buttonexpand_clickedreshare_clickedfavorite_clicked%e %b %y%X - %e %b %Y%d Favorites%d Reshares@GTKtoolkitgtk3-demoHideExpandGtkMessageGtkMessageRow/listbox/apple-red.pngList BoxdestroyMessages from Gtk+ and friendsrow-activated/listbox/messages.txt |Flow BoxdestroydrawAliceBlueAntiqueWhiteAntiqueWhite1AntiqueWhite2AntiqueWhite3AntiqueWhite4aquaaquamarineaquamarine1aquamarine2aquamarine3aquamarine4azureazure1azure2azure3azure4beigebisquebisque1bisque2bisque3bisque4blackBlanchedAlmondblueblue1blue2blue3blue4BlueVioletbrownbrown1brown2brown3brown4burlywoodburlywood1burlywood2burlywood3burlywood4CadetBlueCadetBlue1CadetBlue2CadetBlue3CadetBlue4chartreusechartreuse1chartreuse2chartreuse3chartreuse4chocolatechocolate1chocolate2chocolate3chocolate4coralcoral1coral2coral3coral4CornflowerBluecornsilkcornsilk1cornsilk2cornsilk3cornsilk4crimsoncyancyan1cyan2cyan3cyan4DarkBlueDarkCyanDarkGoldenrodDarkGoldenrod1DarkGoldenrod2DarkGoldenrod3DarkGoldenrod4DarkGrayDarkGreenDarkGreyDarkKhakiDarkMagentaDarkOliveGreenDarkOliveGreen1DarkOliveGreen2DarkOliveGreen3DarkOliveGreen4DarkOrangeDarkOrange1DarkOrange2DarkOrange3DarkOrange4DarkOrchidDarkOrchid1DarkOrchid2DarkOrchid3DarkOrchid4DarkRedDarkSalmonDarkSeaGreenDarkSeaGreen1DarkSeaGreen2DarkSeaGreen3DarkSeaGreen4DarkSlateBlueDarkSlateGrayDarkSlateGray1DarkSlateGray2DarkSlateGray3DarkSlateGray4DarkSlateGreyDarkTurquoiseDarkVioletDeepPinkDeepPink1DeepPink2DeepPink3DeepPink4DeepSkyBlueDeepSkyBlue1DeepSkyBlue2DeepSkyBlue3DeepSkyBlue4DimGrayDimGreyDodgerBlueDodgerBlue1DodgerBlue2DodgerBlue3DodgerBlue4firebrickfirebrick1firebrick2firebrick3firebrick4FloralWhiteForestGreenfuchsiagainsboroGhostWhitegoldgold1gold2gold3gold4goldenrodgoldenrod1goldenrod2goldenrod3goldenrod4graygray0gray1gray10gray100gray11gray12gray13gray14gray15gray16gray17gray18gray19gray2gray20gray21gray22gray23gray24gray25gray26gray27gray28gray29gray3gray30gray31gray32gray33gray34gray35gray36gray37gray38gray39gray4gray40gray41gray42gray43gray44gray45gray46gray47gray48gray49gray5gray50gray51gray52gray53gray54gray55gray56gray57gray58gray59gray6gray60gray61gray62gray63gray64gray65gray66gray67gray68gray69gray7gray70gray71gray72gray73gray74gray75gray76gray77gray78gray79gray8gray80gray81gray82gray83gray84gray85gray86gray87gray88gray89gray9gray90gray91gray92gray93gray94gray95gray96gray97gray98gray99greengreen1green2green3green4GreenYellowgreygrey0grey1grey10grey100grey11grey12grey13grey14grey15grey16grey17grey18grey19grey2grey20grey21grey22grey23grey24grey25grey26grey27grey28grey29grey3grey30grey31grey32grey33grey34grey35grey36grey37grey38grey39grey4grey40grey41grey42grey43grey44grey45grey46grey47grey48grey49grey5grey50grey51grey52grey53grey54grey55grey56grey57grey58grey59grey6grey60grey61grey62grey63grey64grey65grey66grey67grey68grey69grey7grey70grey71grey72grey73grey74grey75grey76grey77grey78grey79grey8grey80grey81grey82grey83grey84grey85grey86grey87grey88grey89grey9grey90grey91grey92grey93grey94grey95grey96grey97grey98grey99honeydewhoneydew1honeydew2honeydew3honeydew4HotPinkHotPink1HotPink2HotPink3HotPink4IndianRedIndianRed1IndianRed2IndianRed3IndianRed4indigoivoryivory1ivory2ivory3ivory4khakikhaki1khaki2khaki3khaki4lavenderLavenderBlushLavenderBlush1LavenderBlush2LavenderBlush3LavenderBlush4LawnGreenLemonChiffonLemonChiffon1LemonChiffon2LemonChiffon3LemonChiffon4LightBlueLightBlue1LightBlue2LightBlue3LightBlue4LightCoralLightCyanLightCyan1LightCyan2LightCyan3LightCyan4LightGoldenrodLightGoldenrod1LightGoldenrod2LightGoldenrod3LightGoldenrod4LightGoldenrodYellowLightGrayLightGreenLightGreyLightPinkLightPink1LightPink2LightPink3LightPink4LightSalmonLightSalmon1LightSalmon2LightSalmon3LightSalmon4LightSeaGreenLightSkyBlueLightSkyBlue1LightSkyBlue2LightSkyBlue3LightSkyBlue4LightSlateBlueLightSlateGrayLightSlateGreyLightSteelBlueLightSteelBlue1LightSteelBlue2LightSteelBlue3LightSteelBlue4LightYellowLightYellow1LightYellow2LightYellow3LightYellow4limeLimeGreenlinenmagentamagenta1magenta2magenta3magenta4maroonmaroon1maroon2maroon3maroon4MediumAquamarineMediumBlueMediumOrchidMediumOrchid1MediumOrchid2MediumOrchid3MediumOrchid4MediumPurpleMediumPurple1MediumPurple2MediumPurple3MediumPurple4MediumSeaGreenMediumSlateBlueMediumSpringGreenMediumTurquoiseMediumVioletRedMidnightBlueMintCreamMistyRoseMistyRose1MistyRose2MistyRose3MistyRose4moccasinNavajoWhiteNavajoWhite1NavajoWhite2NavajoWhite3NavajoWhite4navyNavyBlueOldLaceoliveOliveDrabOliveDrab1OliveDrab2OliveDrab3OliveDrab4orangeorange1orange2orange3orange4OrangeRedOrangeRed1OrangeRed2OrangeRed3OrangeRed4orchidorchid1orchid2orchid3orchid4PaleGoldenrodPaleGreenPaleGreen1PaleGreen2PaleGreen3PaleGreen4PaleTurquoisePaleTurquoise1PaleTurquoise2PaleTurquoise3PaleTurquoise4PaleVioletRedPaleVioletRed1PaleVioletRed2PaleVioletRed3PaleVioletRed4PapayaWhipPeachPuffPeachPuff1PeachPuff2PeachPuff3PeachPuff4perupinkpink1pink2pink3pink4plumplum1plum2plum3plum4PowderBluepurplepurple1purple2purple3purple4redred1red2red3red4RosyBrownRosyBrown1RosyBrown2RosyBrown3RosyBrown4RoyalBlueRoyalBlue1RoyalBlue2RoyalBlue3RoyalBlue4SaddleBrownsalmonsalmon1salmon2salmon3salmon4SandyBrownSeaGreenSeaGreen1SeaGreen2SeaGreen3SeaGreen4seashellseashell1seashell2seashell3seashell4siennasienna1sienna2sienna3sienna4silverSkyBlueSkyBlue1SkyBlue2SkyBlue3SkyBlue4SlateBlueSlateBlue1SlateBlue2SlateBlue3SlateBlue4SlateGraySlateGray1SlateGray2SlateGray3SlateGray4SlateGreysnowsnow1snow2snow3snow4SpringGreenSpringGreen1SpringGreen2SpringGreen3SpringGreen4SteelBlueSteelBlue1SteelBlue2SteelBlue3SteelBlue4tantan1tan2tan3tan4tealthistlethistle1thistle2thistle3thistle4tomatotomato1tomato2tomato3tomato4turquoiseturquoise1turquoise2turquoise3turquoise4violetVioletRedVioletRed1VioletRed2VioletRed3VioletRed4wheatwheat1wheat2wheat3wheat4whiteWhiteSmokeyellowyellow1yellow2yellow3yellow4YellowGreenbattery-caution-charging-symbolicGtkListStore demodestroyThis is the bug list (note: not based on real data, it would be nice to have a nice ODBC interface to bugzilla or so, though).toggledactiveFixed?textBug numberSeverityDescriptionpulseSpinningsensitiveicon-nameSymbolic icondelete-eventNormalscrollable notebooks and hidden tabsCriticalgdk_window_clear_area (gdkwindow-win32.c) is not thread-safeMajorXft support does not clean up correctlyGtkFileSelection needs a refresh method. Can't click button after setting in sensitiveGtkLabel - Not all changes propagate correctlyRework width/height computations for TreeViewgtk_dialog_set_response_sensitive () doesn't workGetters for all settersGtkcalender sizeSelectable label needs right-click copy menuAdd shift clicking to GtkTextViewEnhancementnetscape-like collapsable toolbarsFirst bug :=)BtGB|GBGBGB&GBGBGBHBtGBDHB#tGBtHBtGBHBtGBHBtGBIB]tGBIBtGB0IBtGB`IBIBIBtGBIBitem %2d - %dpack-directionMenusdestroytest line2foobarFlipclickedClosepick-embedded-childto-embedderfrom-embeddercallback != NULLGtkRotatedBin cannot have more than one child GtkRotatedBindamage-eventGTK_IS_ROTATED_BIN (bin)Rotated widgetdestroyA Buttonvalue-changedgtk_rotated_bin_set_anglegtk_rotated_bin_forall?{Gz?-DT!?pick-embedded-childto-embedderfrom-embeddercallback != NULLGtkMirrorBin cannot have more than one child GtkMirrorBindamage-eventEffectsdestroygo-previousApplygtk_mirror_bin_forall333333? {Gz?>?@?destroyOverlayHello worldshrinkresize_Resizetoggled_ShrinkdestroyPanes_Hi thereRightLeftHorizontalBottomTopVerticalPickersdestroyColor:Font:File:Pick a FileFolder:Pick a FolderMail:x-scheme-handler/mailtoPixbufsdestroy/pixbufs/background.jpgFailed to load an image: %sresponsedraw/pixbufs/apple-red.png/pixbufs/gnome-applets.png/pixbufs/gnome-calendar.png/pixbufs/gnome-foot.png/pixbufs/gnome-gmush.png/pixbufs/gnome-gimp.png/pixbufs/gnome-gsame.png/pixbufs/gnu-keys.pngNBNBNBNBNBOB)OBBOB>7J?-DT!@>@@CB-DT! @popover-icon-posdestroyButtonThis popover does not grab inputtoggled/popover/popover.uiwindowedit-findedit-clearicon-presssize-allocateday-selectedsans 14%d/%dmonospace /sources/printing.cbegin-printdraw-pageend-printgtk-demooutput-basename%sresponsebX<@??@DflB@A !@@Arevealer%dnotify::child-revealed/revealer/revealer.uiERROR: %s dialog1destroyresponse♥Serif 18Rotated TextdestroyviewdrawI ♥ GTK+:????Cv/?4BSearch by file name Click here to change the search typefile nameSearch by description Click here to change the search typedescriptionSearch by name Click here to change the search typenameSearch by _nameactivateSearch by _descriptionSearch by _file nameC_learSearch by_CloseSearch EntryresponsedestroySearch entry demoFindclickedCancelicon-presspopulate-popupstop-searchprevious-matchnext-matchsearch-changedchanged: %ssearch changed: %sSearch Entry #2destroykey-press-eventStart Typing to searchSearchsearch-mode-enabledactiveResult:changedSignal:Welcome to GTK+GtkStackSidebar WidgetAutomatic navigationConsistent appearanceScrollingPage 6Page 7Page 8Page 9Stack Sidebar demodestroyhelp-abouttitle_CloseGtkSizeGroupresponsedestroysize-groupColor Options_Foreground_BackgroundLine Options_Dashing_Line ends_Enable groupingtoggledSquareRoundArrowSolidDashedDottedRedGreenBlue_CloseGtkSpinnerresponsedestroyPlayclickedStop/stack/stack.uiERROR: %s window1destroyClick MeclickedOption 1Option 2Option 3/textview/floppybuddy.giftextview.cThis buffer is shared by a set of nested text views. Nested view: Don't do this in real applications, please. destroyTextViewsizeweightheadingstyleitalicboldbigscalexx-smallx-largemonospacefamilyblueforegroundblue_foregroundredbackgroundred_backgroundpixels_above_linesbig_gap_before_linepixels_below_linesbig_gap_after_linepixels_inside_wrapdouble_spaced_lineeditablenot_editablewrap_modeword_wrapchar_wrapno_wrapjustificationcenterright_justifyright_marginleft_marginwide_marginsstrikethroughunderlinedouble_underlinerisesuperscriptsubscriptindentdirectionrtl_quotegtk3-demoThe text widget can display text with all kinds of nifty attributes. It also supports multiple views of the same buffer; this demo is showing the same buffer in two places. Font styles. For example, you can have , , or monospace (typewriter) text. It's best not to hardcode specific text sizes; you can use relative sizes as with CSS, such as or to ensure that your program properly adapts if the user changes the default font size. Colors. Colors such as a blue foregrounda red background or even a blue foreground on red background (select that to read it) can be used. Underline, strikethrough, and rise. Strikethroughdouble underline, and are all supported. Images. The buffer can have images in it: for example. Spacing. You can adjust the amount of space before each line. This line has a whole lot of space before it. You can also adjust the amount of space after each line; this line has a whole lot of space after it. You can also adjust the amount of space between wrapped lines; this line has extra space between each wrapped line in the same paragraph. To show off wrapping, some filler text: the quick brown fox jumped over the lazy dog. Blah blah blah blah blah blah blah blah blah. Also note that those lines have extra-wide margins. Editability. This line is 'locked down' and can't be edited by the user - just try it! You can't delete this line. Wrapping. This line (and most of the others in this buffer) is word-wrapped, using the proper Unicode algorithm. Word wrap should work in all scripts and languages that GTK+ supports. Let's make this a long paragraph to demonstrate: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah This line has character-based wrapping, and can wrap between any two character glyphs. Let's make this a long paragraph to demonstrate: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah This line has all wrapping turned off, so it makes the horizontal scrollbar appear. Justification. This line has center justification. This line has right justification. This line has big wide margins. Text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text. Internationalization. You can put all sorts of Unicode text in the buffer. German (Deutsch Süd) Grüß Gott Greek (Ελληνικά) Γειά σας Hebrew שלום Japanese (日本語) The widget properly handles bidirectional text, word wrapping, DOS/UNIX/Unicode paragraph separators, grapheme boundaries, and so on using the Pango internationalization framework. Here's a word-wrapped quote in a right-to-left language: وقد بدأ ثلاث من أكثر المؤسسات تقدما في شبكة اكسيون برامجها كمنظمات لا تسعى للربح، ثم تحولت في السنوات الخمس الماضية إلى مؤسسات مالية منظمة، وباتت جزءا من النظام المالي في بلدانها، ولكنها تتخصص في خدمة قطاع المشروعات الصغيرة. وأحد أكثر هذه المؤسسات نجاحا هو »بانكوسول« في بوليفيا. You can put widgets in the buffer: Here's a button: and a menu: and a scale: and an animation: finally a text entry: . This demo doesn't demonstrate all the GtkTextBuffer features; it leaves out, for example: invisible/hidden text, tab stops, application-drawn areas on the sides of the widget for displaying breakpoints and such...pixbufattach_widgetsinsert_textB*h/?Hգp= ?endscrolldestroy Scroll to bottom scroll to bottom scroll to bottom scroll to bottom %dScroll to end scroll to end scroll to end scroll to end %dStyle Classesdestroy/theming_style_classes/theming.uigridNULL == drop_itemtoolpalette.cnew-rowfillexpandhomogeneousTool PalettedestroyHorizontalVerticaltextTextBothBoth: HorizontalIconsDefaultRadio ItemAnimationsGot context '%s'emblem-desktop-symbolicGot id '%s'#%dAdvanced Featureshomogeneous=FALSEhomogeneous=FALSE, expand=TRUEhomogeneous=FALSE, expand=TRUE, fill=FALSEhomogeneous=FALSE, expand=TRUE, new-row=TRUEgo-upShow on vertical palettes onlygo-nextShow on horizontal palettes onlyedit-deleteDo not show at allview-fullscreenExpanded this itemhelp-browserA regular itemchangeddrag-data-receivedsignal::drag-data-receivedsignal::drawPassive DnD Modesignal::drag-dropsignal::drag-leavesignal::drag-motionInteractive DnD Modepassive_canvas_drag_data_receivedinteractive_canvas_drag_data_received?333333?destroyTransparent* { border-width: 0px %dpx %dpx 0px; }draw@columnCard planning sheetdestroyJonathan's Holiday Card Planning SheetxaligntextHolidaytoggledactivatablevisibleactiveAlexHavocTimOwenDaverealizeJanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecemberPearl Harbor Remembrance DayChristmasKwanzaaMarine Corps DayVeterans' DayThanksgivingNational Children's DayBosses' DaySweetest DayMother-in-Law's DayNavy DayColumbus DayHalloweenGrandparents' DayCitizenship Day or Constitution DayLabor DayAir Force DayCoast Guard DayFriendship DayParents' DayIndependence DayJune Fathers' DayJuneteenth (Liberation of Slaves)Flag DayNurses' DayNational Day of PrayerMothers' DayArmed Forces DayMemorial DayApril Fools' DayArmy DayEarth DayAdministrative Professionals' DayNational Tree Planting DaySt Patrick's DayPresidents' DayGroundhog DayValentine's DayNew Years DayPresidential InaugurationMartin Luther King Jr. dayGVariant (~  #$$'(+++,,----...12355566789=@ABBDDDDEEFGGHHIJKNNOPPQRSSTUWWYZ[\\]^_`acceghikkmnoqssuuwzz{{|cQ L k vILv:ȢBr : v:dyI{ d v(d>ww? >w vPw QLBLv0|v:QLl'l vxn:  v pK v3XtwvexwvкO: v'ۑL'v88C8 8v(8&@GA &@ v0@JF9JvJva{va vaoe& o vo}v(y\:Q(L04CEC= 4vHLv0? v* *v@+N  v |1"  v+sQ+L,,1Q, L, ,Q ,L0,8,Kp 8, vH,8= 8 v8fD֢Nf vfNW^ N vXG[[x GvPY4H Y vhV9csVvh&Xǣj&v&KK v(Kٲ  ٲvL"_ v 8  v xY wQx Lx x4}K xv0xezN@NwezvxzK_LKv`rz  v(b{ vvd^  v"( " v0|,D6Lv$L v v  v %x|Q%L%%+ %v&H 9r_H vHP||P vP^n` ^v^Fc] FcvXchd6S hvhCqOu C vP OQL| vUE vmF.2|mv-x v `.Gڔ `. vp.b8wbv(boFovo;}2 ;}vP}%  vQ Ll!Q L0lw0v@LQL̷зo) з v;,- vgԵgLhy_ v)I vII^ I vXaG?aG vpGgwv9jv/` v(j.V' j. vx.)8rA)8v08iڲ i vi3_ v,, ,vHj; j vxdxpQdLt(  v ؍L v  KNw v % 0 % v% 6 V 6 v6 qM ̖ qM vM c jSwc vc r +Lr vr  |1  v  [m v 8 ȁQ8 LD L Y L vX V V v` `P_ v    v    v 3  3 v3 w Lm w v(w Ђ .wЂ v c5pQ L  v # v f WLf vx  cQ L @ `Sx @ vP R(L v $ 6$ v0  Q L  O{Q L $ L$ v8  application/imenus.ui
_New app.new <Primary>n _Open app.open _Save app.save <Primary>s Save _As... app.save-as <Primary>s
_Quit app.quit <Primary>q
_Preferences
_Prefer Dark Theme app.dark _Hide Titlebar when maximized win.titlebar _Color
_Red app.color red <Primary>r _Green app.color green <Primary>g _Blue app.color blue <Primary>b
_Shape
_Square win.shape square <Primary>s _Rectangle win.shape rectangle <Primary>r _Oval win.shape oval <Primary>o
_Bold win.bold <Primary>b
_Help _About win.about <Primary>a
(uuay)gtk.css/* You can edit the text in this window to change the * appearance of this Window. * Be careful, if you screw it up, nothing might be visible * anymore. :) */ /* This CSS resets all properties to their defaults values * and overrides all user settings and the theme in use */ @import url("resource://css_pixbufs/reset.css"); @import url("resource://css_pixbufs/cssview.css"); @keyframes move-the-image { 0% { background-position: 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 0% 0%; } 3.125% { background-position: 55.19% 76.11%, 72.14% 64.79%, 76.11% 44.81%, 64.79% 27.86%, 44.81% 23.89%, 27.86% 35.21%, 23.89% 55.19%, 35.21% 72.14%, 0% 0%; } 6.25% { background-position: 60.79% 76.04%, 76.04% 60.79%, 76.04% 39.21%, 60.79% 23.96%, 39.21% 23.96%, 23.96% 39.21%, 23.96% 60.79%, 39.21% 76.04%, 0% 0%; } 9.375% { background-position: 66.46% 74.64%, 79.06% 55.78%, 74.64% 33.54%, 55.78% 20.94%, 33.54% 25.36%, 20.94% 44.22%, 25.36% 66.46%, 44.22% 79.06%, 0% 0%; } 12.5% { background-position: 71.84% 71.84%, 80.89% 50.00%, 71.84% 28.16%, 50.00% 19.11%, 28.16% 28.16%, 19.11% 50.00%, 28.16% 71.84%, 50.00% 80.89%, 0% 0%; } 15.625% { background-position: 76.55% 67.74%, 81.32% 43.77%, 67.74% 23.45%, 43.77% 18.68%, 23.45% 32.26%, 18.68% 56.23%, 32.26% 76.55%, 56.23% 81.32%, 0% 0%; } 18.75% { background-position: 80.21% 62.51%, 80.21% 37.49%, 62.51% 19.79%, 37.49% 19.79%, 19.79% 37.49%, 19.79% 62.51%, 37.49% 80.21%, 62.51% 80.21%, 0% 0%; } 21.875% { background-position: 82.54% 56.47%, 77.58% 31.57%, 56.47% 17.46%, 31.57% 22.42%, 17.46% 43.53%, 22.42% 68.43%, 43.53% 82.54%, 68.43% 77.58%, 0% 0%; } 25% { background-position: 83.33% 50.00%, 73.57% 26.43%, 50.00% 16.67%, 26.43% 26.43%, 16.67% 50.00%, 26.43% 73.57%, 50.00% 83.33%, 73.57% 73.57%, 0% 0%; } 28.125% { background-position: 82.54% 43.53%, 68.43% 22.42%, 43.53% 17.46%, 22.42% 31.57%, 17.46% 56.47%, 31.57% 77.58%, 56.47% 82.54%, 77.58% 68.43%, 0% 0%; } 31.25% { background-position: 80.21% 37.49%, 62.51% 19.79%, 37.49% 19.79%, 19.79% 37.49%, 19.79% 62.51%, 37.49% 80.21%, 62.51% 80.21%, 80.21% 62.51%, 0% 0%; } 34.375% { background-position: 76.55% 32.26%, 56.23% 18.68%, 32.26% 23.45%, 18.68% 43.77%, 23.45% 67.74%, 43.77% 81.32%, 67.74% 76.55%, 81.32% 56.23%, 0% 0%; } 37.5% { background-position: 71.84% 28.16%, 50.00% 19.11%, 28.16% 28.16%, 19.11% 50.00%, 28.16% 71.84%, 50.00% 80.89%, 71.84% 71.84%, 80.89% 50.00%, 0% 0%; } 40.625% { background-position: 66.46% 25.36%, 44.22% 20.94%, 25.36% 33.54%, 20.94% 55.78%, 33.54% 74.64%, 55.78% 79.06%, 74.64% 66.46%, 79.06% 44.22%, 0% 0%; } 43.75% { background-position: 60.79% 23.96%, 39.21% 23.96%, 23.96% 39.21%, 23.96% 60.79%, 39.21% 76.04%, 60.79% 76.04%, 76.04% 60.79%, 76.04% 39.21%, 0% 0%; } 46.875% { background-position: 55.19% 23.89%, 35.21% 27.86%, 23.89% 44.81%, 27.86% 64.79%, 44.81% 76.11%, 64.79% 72.14%, 76.11% 55.19%, 72.14% 35.21%, 0% 0%; } 50% { background-position: 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 0% 0%; } 53.125% { background-position: 45.44% 27.07%, 30.57% 37.01%, 27.07% 54.56%, 37.01% 69.43%, 54.56% 72.93%, 69.43% 62.99%, 72.93% 45.44%, 62.99% 30.57%, 0% 0%; } 56.25% { background-position: 41.65% 29.85%, 29.85% 41.65%, 29.85% 58.35%, 41.65% 70.15%, 58.35% 70.15%, 70.15% 58.35%, 70.15% 41.65%, 58.35% 29.85%, 0% 0%; } 59.375% { background-position: 38.68% 33.06%, 30.02% 46.03%, 33.06% 61.32%, 46.03% 69.98%, 61.32% 66.94%, 69.98% 53.97%, 66.94% 38.68%, 53.97% 30.02%, 0% 0%; } 62.5% { background-position: 36.49% 36.49%, 30.89% 50.00%, 36.49% 63.51%, 50.00% 69.11%, 63.51% 63.51%, 69.11% 50.00%, 63.51% 36.49%, 50.00% 30.89%, 0% 0%; } 65.625% { background-position: 34.97% 39.96%, 32.28% 53.53%, 39.96% 65.03%, 53.53% 67.72%, 65.03% 60.04%, 67.72% 46.47%, 60.04% 34.97%, 46.47% 32.28%, 0% 0%; } 68.75% { background-position: 34.02% 43.38%, 34.02% 56.62%, 43.38% 65.98%, 56.62% 65.98%, 65.98% 56.62%, 65.98% 43.38%, 56.62% 34.02%, 43.38% 34.02%, 0% 0%; } 71.875% { background-position: 33.50% 46.72%, 36.01% 59.35%, 46.72% 66.50%, 59.35% 63.99%, 66.50% 53.28%, 63.99% 40.65%, 53.28% 33.50%, 40.65% 36.01%, 0% 0%; } 75% { background-position: 33.33% 50.00%, 38.21% 61.79%, 50.00% 66.67%, 61.79% 61.79%, 66.67% 50.00%, 61.79% 38.21%, 50.00% 33.33%, 38.21% 38.21%, 0% 0%; } 78.125% { background-position: 33.50% 53.28%, 40.65% 63.99%, 53.28% 66.50%, 63.99% 59.35%, 66.50% 46.72%, 59.35% 36.01%, 46.72% 33.50%, 36.01% 40.65%, 0% 0%; } 81.25% { background-position: 34.02% 56.62%, 43.38% 65.98%, 56.62% 65.98%, 65.98% 56.62%, 65.98% 43.38%, 56.62% 34.02%, 43.38% 34.02%, 34.02% 43.38%, 0% 0%; } 84.375% { background-position: 34.97% 60.04%, 46.47% 67.72%, 60.04% 65.03%, 67.72% 53.53%, 65.03% 39.96%, 53.53% 32.28%, 39.96% 34.97%, 32.28% 46.47%, 0% 0%; } 87.5% { background-position: 36.49% 63.51%, 50.00% 69.11%, 63.51% 63.51%, 69.11% 50.00%, 63.51% 36.49%, 50.00% 30.89%, 36.49% 36.49%, 30.89% 50.00%, 0% 0%; } 90.625% { background-position: 38.68% 66.94%, 53.97% 69.98%, 66.94% 61.32%, 69.98% 46.03%, 61.32% 33.06%, 46.03% 30.02%, 33.06% 38.68%, 30.02% 53.97%, 0% 0%; } 93.75% { background-position: 41.65% 70.15%, 58.35% 70.15%, 70.15% 58.35%, 70.15% 41.65%, 58.35% 29.85%, 41.65% 29.85%, 29.85% 41.65%, 29.85% 58.35%, 0% 0%; } 96.875% { background-position: 45.44% 72.93%, 62.99% 69.43%, 72.93% 54.56%, 69.43% 37.01%, 54.56% 27.07%, 37.01% 30.57%, 27.07% 45.44%, 30.57% 62.99%, 0% 0%; } 100% { background-position: 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 0% 0%; } } @keyframes size-the-image { 0% { background-size: 96px, 12px, 96px, 12px, 96px, 12px, 96px, 12px, auto } 100% { background-size: 12px, 96px, 12px, 96px, 12px, 96px, 12px, 96px, auto } } GtkWindow { background-image: url("resource://css_pixbufs/apple-red.png"), url("resource://css_pixbufs/gnome-applets.png"), url("resource://css_pixbufs/gnome-calendar.png"), url("resource://css_pixbufs/gnome-foot.png"), url("resource://css_pixbufs/gnome-gmush.png"), url("resource://css_pixbufs/gnome-gimp.png"), url("resource://css_pixbufs/gnome-gsame.png"), url("resource://css_pixbufs/gnu-keys.png"), url("resource://css_pixbufs/background.jpg"); background-position: 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 0% 0%; background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, repeat; animation: move-the-image infinite linear 3s, size-the-image infinite alternate ease-in-out 0.75s; } /* Make the text editor has a nice style */ .view, .scrollbar, .pane-separator { color: black; background-color: rgba(255,255,255,0.5); } .view:selected { background-color: rgba(127,127,255,0.5); } (uuay)clipboard.ch)/* Clipboard * * GtkClipboard is used for clipboard handling. This demo shows how to * copy and paste text to and from the clipboard. * * It also shows how to transfer images via the clipboard or via * drag-and-drop, and how to make clipboard contents persist after * the application exits. Clipboard persistence requires a clipboard * manager to run. */ #include #include #include static GtkWidget *window = NULL; void copy_button_clicked (GtkWidget *button, gpointer user_data) { GtkWidget *entry; GtkClipboard *clipboard; entry = GTK_WIDGET (user_data); /* Get the clipboard object */ clipboard = gtk_widget_get_clipboard (entry, GDK_SELECTION_CLIPBOARD); /* Set clipboard text */ gtk_clipboard_set_text (clipboard, gtk_entry_get_text (GTK_ENTRY (entry)), -1); } void paste_received (GtkClipboard *clipboard, const gchar *text, gpointer user_data) { GtkWidget *entry; entry = GTK_WIDGET (user_data); /* Set the entry text */ if(text) gtk_entry_set_text (GTK_ENTRY (entry), text); } void paste_button_clicked (GtkWidget *button, gpointer user_data) { GtkWidget *entry; GtkClipboard *clipboard; entry = GTK_WIDGET (user_data); /* Get the clipboard object */ clipboard = gtk_widget_get_clipboard (entry, GDK_SELECTION_CLIPBOARD); /* Request the contents of the clipboard, contents_received will be called when we do get the contents. */ gtk_clipboard_request_text (clipboard, paste_received, entry); } static GdkPixbuf * get_image_pixbuf (GtkImage *image) { const gchar *icon_name; GtkIconSize size; GtkIconTheme *icon_theme; int width; switch (gtk_image_get_storage_type (image)) { case GTK_IMAGE_PIXBUF: return g_object_ref (gtk_image_get_pixbuf (image)); case GTK_IMAGE_ICON_NAME: gtk_image_get_icon_name (image, &icon_name, &size); icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (image))); gtk_icon_size_lookup (size, &width, NULL); return gtk_icon_theme_load_icon (icon_theme, icon_name, width, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL); default: g_warning ("Image storage type %d not handled", gtk_image_get_storage_type (image)); return NULL; } } static void drag_begin (GtkWidget *widget, GdkDragContext *context, gpointer data) { GdkPixbuf *pixbuf; pixbuf = get_image_pixbuf (GTK_IMAGE (data)); gtk_drag_set_icon_pixbuf (context, pixbuf, -2, -2); g_object_unref (pixbuf); } void drag_data_get (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *selection_data, guint info, guint time, gpointer data) { GdkPixbuf *pixbuf; pixbuf = get_image_pixbuf (GTK_IMAGE (data)); gtk_selection_data_set_pixbuf (selection_data, pixbuf); g_object_unref (pixbuf); } static void drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint info, guint32 time, gpointer data) { GdkPixbuf *pixbuf; if (gtk_selection_data_get_length (selection_data) > 0) { pixbuf = gtk_selection_data_get_pixbuf (selection_data); gtk_image_set_from_pixbuf (GTK_IMAGE (data), pixbuf); g_object_unref (pixbuf); } } static void copy_image (GtkMenuItem *item, gpointer data) { GtkClipboard *clipboard; GdkPixbuf *pixbuf; clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); pixbuf = get_image_pixbuf (GTK_IMAGE (data)); gtk_clipboard_set_image (clipboard, pixbuf); g_object_unref (pixbuf); } static void paste_image (GtkMenuItem *item, gpointer data) { GtkClipboard *clipboard; GdkPixbuf *pixbuf; clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); pixbuf = gtk_clipboard_wait_for_image (clipboard); if (pixbuf) { gtk_image_set_from_pixbuf (GTK_IMAGE (data), pixbuf); g_object_unref (pixbuf); } } static gboolean button_press (GtkWidget *widget, GdkEventButton *button, gpointer data) { GtkWidget *menu; GtkWidget *item; if (button->button != GDK_BUTTON_SECONDARY) return FALSE; menu = gtk_menu_new (); item = gtk_menu_item_new_with_mnemonic (_("_Copy")); g_signal_connect (item, "activate", G_CALLBACK (copy_image), data); gtk_widget_show (item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new_with_mnemonic (_("_Paste")); g_signal_connect (item, "activate", G_CALLBACK (paste_image), data); gtk_widget_show (item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 3, button->time); return TRUE; } GtkWidget * do_clipboard (GtkWidget *do_widget) { if (!window) { GtkWidget *vbox, *hbox; GtkWidget *label; GtkWidget *entry, *button; GtkWidget *ebox, *image; GtkClipboard *clipboard; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Clipboard demo"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (window), vbox); label = gtk_label_new ("\"Copy\" will copy the text\nin the entry to the clipboard"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); /* Create the first entry */ entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); /* Create the button */ button = gtk_button_new_with_mnemonic (_("_Copy")); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0); g_signal_connect (button, "clicked", G_CALLBACK (copy_button_clicked), entry); label = gtk_label_new ("\"Paste\" will paste the text from the clipboard to the entry"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); /* Create the second entry */ entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); /* Create the button */ button = gtk_button_new_with_mnemonic (_("_Paste")); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0); g_signal_connect (button, "clicked", G_CALLBACK (paste_button_clicked), entry); label = gtk_label_new ("Images can be transferred via the clipboard, too"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); /* Create the first image */ image = gtk_image_new_from_icon_name ("dialog-warning", GTK_ICON_SIZE_BUTTON); ebox = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER (ebox), image); gtk_container_add (GTK_CONTAINER (hbox), ebox); /* make ebox a drag source */ gtk_drag_source_set (ebox, GDK_BUTTON1_MASK, NULL, 0, GDK_ACTION_COPY); gtk_drag_source_add_image_targets (ebox); g_signal_connect (ebox, "drag-begin", G_CALLBACK (drag_begin), image); g_signal_connect (ebox, "drag-data-get", G_CALLBACK (drag_data_get), image); /* accept drops on ebox */ gtk_drag_dest_set (ebox, GTK_DEST_DEFAULT_ALL, NULL, 0, GDK_ACTION_COPY); gtk_drag_dest_add_image_targets (ebox); g_signal_connect (ebox, "drag-data-received", G_CALLBACK (drag_data_received), image); /* context menu on ebox */ g_signal_connect (ebox, "button-press-event", G_CALLBACK (button_press), image); /* Create the second image */ image = gtk_image_new_from_icon_name ("process-stop", GTK_ICON_SIZE_BUTTON); ebox = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER (ebox), image); gtk_container_add (GTK_CONTAINER (hbox), ebox); /* make ebox a drag source */ gtk_drag_source_set (ebox, GDK_BUTTON1_MASK, NULL, 0, GDK_ACTION_COPY); gtk_drag_source_add_image_targets (ebox); g_signal_connect (ebox, "drag-begin", G_CALLBACK (drag_begin), image); g_signal_connect (ebox, "drag-data-get", G_CALLBACK (drag_data_get), image); /* accept drops on ebox */ gtk_drag_dest_set (ebox, GTK_DEST_DEFAULT_ALL, NULL, 0, GDK_ACTION_COPY); gtk_drag_dest_add_image_targets (ebox); g_signal_connect (ebox, "drag-data-received", G_CALLBACK (drag_data_received), image); /* context menu on ebox */ g_signal_connect (ebox, "button-press-event", G_CALLBACK (button_press), image); /* tell the clipboard manager to make the data persistent */ clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); gtk_clipboard_set_can_store (clipboard, NULL, 0); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)css_shadows.c/* CSS Theming/Shadows * * This demo shows how to use CSS shadows. */ #include static GtkWidget *window = NULL; static void show_parsing_error (GtkCssProvider *provider, GtkCssSection *section, const GError *error, GtkTextBuffer *buffer) { GtkTextIter start, end; const char *tag_name; gtk_text_buffer_get_iter_at_line_index (buffer, &start, gtk_css_section_get_start_line (section), gtk_css_section_get_start_position (section)); gtk_text_buffer_get_iter_at_line_index (buffer, &end, gtk_css_section_get_end_line (section), gtk_css_section_get_end_position (section)); if (g_error_matches (error, GTK_CSS_PROVIDER_ERROR, GTK_CSS_PROVIDER_ERROR_DEPRECATED)) tag_name = "warning"; else tag_name = "error"; gtk_text_buffer_apply_tag_by_name (buffer, tag_name, &start, &end); } static void css_text_changed (GtkTextBuffer *buffer, GtkCssProvider *provider) { GtkTextIter start, end; char *text; gtk_text_buffer_get_start_iter (buffer, &start); gtk_text_buffer_get_end_iter (buffer, &end); gtk_text_buffer_remove_all_tags (buffer, &start, &end); text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); gtk_css_provider_load_from_data (provider, text, -1, NULL); g_free (text); gtk_style_context_reset_widgets (gdk_screen_get_default ()); } static void apply_css (GtkWidget *widget, GtkStyleProvider *provider) { gtk_style_context_add_provider (gtk_widget_get_style_context (widget), provider, G_MAXUINT); if (GTK_IS_CONTAINER (widget)) gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) apply_css, provider); } GtkWidget * create_toolbar (void) { GtkWidget *toolbar; GtkToolItem *item; toolbar = gtk_toolbar_new (); gtk_widget_set_valign (toolbar, GTK_ALIGN_CENTER); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-next"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-previous"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_tool_button_new (NULL, "Hello World"); gtk_tool_item_set_is_important (item, TRUE); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); return toolbar; } GtkWidget * do_css_shadows (GtkWidget *do_widget) { if (!window) { GtkWidget *paned, *container, *child; GtkStyleProvider *provider; GtkTextBuffer *text; GBytes *bytes; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); paned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_container_add (GTK_CONTAINER (window), paned); child = create_toolbar (); gtk_container_add (GTK_CONTAINER (paned), child); text = gtk_text_buffer_new (NULL); gtk_text_buffer_create_tag (text, "warning", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (text, "error", "underline", PANGO_UNDERLINE_ERROR, NULL); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); container = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (paned), container); child = gtk_text_view_new_with_buffer (text); gtk_container_add (GTK_CONTAINER (container), child); g_signal_connect (text, "changed", G_CALLBACK (css_text_changed), provider); bytes = g_resources_lookup_data ("/css_shadows/gtk.css", 0, NULL); gtk_text_buffer_set_text (text, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes)); g_bytes_unref (bytes); g_signal_connect (provider, "parsing-error", G_CALLBACK (show_parsing_error), gtk_text_view_get_buffer (GTK_TEXT_VIEW (child))); apply_css (window, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)sizegroup.c/* Size Groups * * GtkSizeGroup provides a mechanism for grouping a number of * widgets together so they all request the same amount of space. * This is typically useful when you want a column of widgets to * have the same size, but you can't use a GtkTable widget. * * Note that size groups only affect the amount of space requested, * not the size that the widgets finally receive. If you want the * widgets in a GtkSizeGroup to actually be the same size, you need * to pack them in such a way that they get the size they request * and not more. For example, if you are packing your widgets * into a table, you would not include the GTK_FILL flag. */ #include #include static GtkWidget *window = NULL; /* Convenience function to create a combo box holding a number of strings */ GtkWidget * create_combo_box (const char **strings) { GtkWidget *combo_box; const char **str; combo_box = gtk_combo_box_text_new (); for (str = strings; *str; str++) gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), *str); gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 0); return combo_box; } static void add_row (GtkGrid *table, int row, GtkSizeGroup *size_group, const char *label_text, const char **options) { GtkWidget *combo_box; GtkWidget *label; label = gtk_label_new_with_mnemonic (label_text); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_END); gtk_widget_set_hexpand (label, TRUE); gtk_grid_attach (table, label, 0, row, 1, 1); combo_box = create_combo_box (options); gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo_box); gtk_size_group_add_widget (size_group, combo_box); gtk_grid_attach (table, combo_box, 1, row, 1, 1); } static void toggle_grouping (GtkToggleButton *check_button, GtkSizeGroup *size_group) { GtkSizeGroupMode new_mode; /* GTK_SIZE_GROUP_NONE is not generally useful, but is useful * here to show the effect of GTK_SIZE_GROUP_HORIZONTAL by * contrast. */ if (gtk_toggle_button_get_active (check_button)) new_mode = GTK_SIZE_GROUP_HORIZONTAL; else new_mode = GTK_SIZE_GROUP_NONE; gtk_size_group_set_mode (size_group, new_mode); } GtkWidget * do_sizegroup (GtkWidget *do_widget) { GtkWidget *content_area; GtkWidget *table; GtkWidget *frame; GtkWidget *vbox; GtkWidget *check_button; GtkSizeGroup *size_group; static const char *color_options[] = { "Red", "Green", "Blue", NULL }; static const char *dash_options[] = { "Solid", "Dashed", "Dotted", NULL }; static const char *end_options[] = { "Square", "Round", "Arrow", NULL }; if (!window) { window = gtk_dialog_new_with_buttons ("GtkSizeGroup", GTK_WINDOW (do_widget), 0, _("_Close"), GTK_RESPONSE_NONE, NULL); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); content_area = gtk_dialog_get_content_area (GTK_DIALOG (window)); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); g_object_set_data_full (G_OBJECT (window), "size-group", size_group, g_object_unref); /* Create one frame holding color options */ frame = gtk_frame_new ("Color Options"); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); table = gtk_grid_new (); gtk_container_set_border_width (GTK_CONTAINER (table), 5); gtk_grid_set_row_spacing (GTK_GRID (table), 5); gtk_grid_set_column_spacing (GTK_GRID (table), 10); gtk_container_add (GTK_CONTAINER (frame), table); add_row (GTK_GRID (table), 0, size_group, "_Foreground", color_options); add_row (GTK_GRID (table), 1, size_group, "_Background", color_options); /* And another frame holding line style options */ frame = gtk_frame_new ("Line Options"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); table = gtk_grid_new (); gtk_container_set_border_width (GTK_CONTAINER (table), 5); gtk_grid_set_row_spacing (GTK_GRID (table), 5); gtk_grid_set_column_spacing (GTK_GRID (table), 10); gtk_container_add (GTK_CONTAINER (frame), table); add_row (GTK_GRID (table), 0, size_group, "_Dashing", dash_options); add_row (GTK_GRID (table), 1, size_group, "_Line ends", end_options); /* And a check button to turn grouping on and off */ check_button = gtk_check_button_new_with_mnemonic ("_Enable grouping"); gtk_box_pack_start (GTK_BOX (vbox), check_button, FALSE, FALSE, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_grouping), size_group); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)listbox/<UCgnome-foot.pngd PNG  IHDR/0#gAMA1_ IDATxYkly=wfvvfܗ)QŪl#HqdmT i4N A(n ] l<8v*#%RDY$MJ>?2T ,T\0s _e/ׇ o>Н:qj^ڷo߉mXpd WMjo1W[?kll,cСT*5:6M$eW2ob x3}3}xgPUjI3&c+wM& rտ%v{v$+Q):ښNƘUOdΑ/R7ODzHKR"xDb!zKAHiY0 RedLU(fyQݵr]] Cj6ѪU!J-a>奂Jz|q 琈E0ym{A=J|7xx#luS6}Wz6#gޘ%r[%-Mi|Zov,e |YQp"z}_wԪ_hUvyc ѦY|)B&_; qիtMb\^cϏ& G}F+8nu;hdhp6Zbew7%5 3 3j`*-nxw-8ph$Rwmcg.#\ٚmd몂g Kdj,J(*}k_z~'H^sk#-dz7vq5_VONKF8%5*'Qc]Xioiٟĥûo岹#vDP0Ƕ`YoozVYT?/l$,D!M%c-V0̟lV+T%drL\0y?mlВ'FGL%4D2IEM MF>Oy3׳ݽ}X|wo_o,l biuS/#[(=948Ǡ`zz{a[aYGPIg,# Hu^-Cm]X_;+{>VWU mX0, ϣ4C<ЪW`Y"Fni|e̤Pk $>\|r=N"6  CJYǒb!ǶZ@MC#\V˫V)c=vjn̻ [5 VIa[xAqD1׶ XYZd2gr[AWfD/Wk3GiZeyx'eBD1D8%kkeL%OO<^-Fޜ$ 1-;єdhF$EmS'eQ]Ӊm0M,g2x8v,~7|/jf0ֽ%ю^0l8$-I (J=j;.XaZbMo;MC| -Q8<<  static GtkBuilder *builder; static gint count = 0; static void change_direction (GtkRevealer *revealer) { gboolean revealed; revealed = gtk_revealer_get_child_revealed (revealer); gtk_revealer_set_reveal_child (revealer, !revealed); } static guint timeout = 0; static gboolean reveal_one (gpointer data) { gchar *name; GtkRevealer *revealer; name = g_strdup_printf ("revealer%d", count); revealer = (GtkRevealer *)gtk_builder_get_object (builder, name); gtk_revealer_set_reveal_child (revealer, TRUE); g_signal_connect (revealer, "notify::child-revealed", G_CALLBACK (change_direction), NULL); count++; if (count >= 9) { timeout = 0; return FALSE; } else return TRUE; } static void response_cb (GtkWidget *dialog, gint response_id, gpointer data) { if (timeout != 0) { g_source_remove (timeout); timeout = 0; } gtk_widget_destroy (dialog); } GtkWidget * do_revealer (GtkWidget *do_widget) { static GtkWidget *window = NULL; GError *err = NULL; if (!window) { builder = gtk_builder_new (); gtk_builder_add_from_resource (builder, "/revealer/revealer.ui", &err); if (err) { g_error ("ERROR: %s\n", err->message); return NULL; } gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "dialog1")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); g_signal_connect (window, "response", G_CALLBACK (response_cb), NULL); } if (!gtk_widget_get_visible (window)) { count = 0; timeout = g_timeout_add (690, reveal_one, NULL); gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)reset.css/* @import this colorsheet to get the default values for every property. * This is useful when writing special CSS tests that should not be * inluenced by themes - not even the default ones. * Keep in mind that the output will be very ugly and not look like * anything GTK. * Also, when adding new style properties, please add them here. */ * { color: inherit; font-size: inherit; background-color: initial; font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; text-shadow: inherit; icon-shadow: inherit; box-shadow: initial; margin-top: initial; margin-left: initial; margin-bottom: initial; margin-right: initial; padding-top: initial; padding-left: initial; padding-bottom: initial; padding-right: initial; border-top-style: initial; border-top-width: initial; border-left-style: initial; border-left-width: initial; border-bottom-style: initial; border-bottom-width: initial; border-right-style: initial; border-right-width: initial; border-top-left-radius: initial; border-top-right-radius: initial; border-bottom-right-radius: initial; border-bottom-left-radius: initial; outline-style: initial; outline-width: initial; outline-offset: initial; background-clip: initial; background-origin: initial; background-size: initial; background-position: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: initial; outline-color: initial; background-repeat: initial; background-image: initial; border-image-source: initial; border-image-repeat: initial; border-image-slice: initial; border-image-width: initial; transition-property: initial; transition-duration: initial; transition-timing-function: initial; transition-delay: initial; engine: initial; gtk-key-bindings: initial; -GtkWidget-focus-line-width: 0; -GtkWidget-focus-padding: 0; -GtkNotebook-initial-gap: 0; } (uuay)gnome-applets.png PNG  IHDR00WgAMA abKGD pHYs``zxEtIME ( IDATxYuګg㐢9ҖdkMіI@ӒF 'P q^b=F I6<Yk I @L٢hQ#҈Ԉξw5}(e<) ={#qs$L.KgK v\&H a-'r#pUVW cs1,'og])6˽~ @c[ : (&POsp3_:z|dxp4Ȓ4':NZeMo}ߘ]XY3B|y@.ρ|sy޽_$,H( <ϱ]vX[>G/nN(9&P*/=ra0**,!!IRB_쯹 +baGRR/dS*?{ķ+}5,)nj]R7 4%Mb$%NRUS/.Cȥw}TT*S)K覉a訪,ɿ$4!c8!c8ŕ;%l3j>?w\R*)U*eR4Q5EQd.$邕}(8ˆLKzk}}^o| Ǟ{_꺎ii J ib)2 ,S)Ұt+N9voinʲhF ,Q*WɃYӻ໱/ ,QT$uMes;B6x@Ldp edY)2cPUwH2xId Y\'N*$2YzRra/ۥ'}x"K3,#R,,f4%C|&+!4#R$EcyI(Wpz`Rӿ*2 {AަXS#it2EDa@xv| €(KӘ$Iӄ4MIqyxq7/ӱ]TMR.?݌mj8ꮰQݕw\s|}K" C(&j54z^z;Flj☡a\Ͽ/xAډHdOA@{xظݱpm ױ|;>( g}}3gޣ^gV\,rIݮ= +]iE!Bs=_feNt=/~SJ uD*] U(Cǧ/ֱ]xg"e]iJr|qXZ\4?ȓ?JLN& >]CܵGf׮a'2,bychl!{>A!I8V==X6M�{8*f9 xWJ%Iqˬ?ÿ4X= I,ϒ)aF1AA1iS2M8V#lľW_}N`nvCCyȲ Ο'==? ʪ!q#2%äJozw}yusl^[[[a RNZ1l{ &'%BR 45$&Ŭq% $ } ZZ\4c>{`˲fFFF5A (lvnzSo}͖mwszr;BAk*"$ i"+2*aP_K˫/ߚ8juj'F!%{T;%IUUZa*W):r0體 RVjhɩ19nZoO>.^n(HpZFFmfQ{l CM쯡j*#JwKt72y?\v♶ ' m멅# V,ˆg C3TEsuM!YQU)#m+_܈?%! @C^>kR(uc3e՞]lA_x)n/o+uhZQ`Q,<liOU cg7yA|527]B9p @xq bo?ڧE~p{ ցtc Ř5.a[A}/ ef b\GYD@6$-<E/E,E=<VD8q//.!<+dM`PV<}Cvwb}HB&*za+9B{z4zQ$Pr8C7ze^)|oթ {y շX~o$QajmӢ "EBbxvPZs|EkS؎%_X{.^52* @NwBhJiO{]XdZ8'Z O YG2Ad;@zooAkIENDB`(uuay)gnome-gmush.png PNG  IHDR00WgAMA1_ cIDATx[$YNU{{qlbK"1R2QL B ͑xKH<8h`@/+lǻk{޹LwOwuu9UU }|O/}O ĭh(.]X}[W; <_^qƜȄX02#Lcŕ+kzk\Gw}?Ǔp2&N1iFuvIuvr;\{ |鯭4ӉQXd֐KRg5֊VCFϾ'CLXpzWGɬa0걺&=Y*_K+ǎ羓c̘I(c9\{k-)vGC$h 88K__xWWgW't-" .XLvb+Ng0Ƣ2Eeh8kqIz]T2Gd6%"@nY>| `oFX^=vxƚek-ΝEj @f22kU|as <5d$Z-~@RcF޴,:ۼ|GzrTfIZ!|: 8p 91a@Jߗx+6][=Ӧj>pOn_" bc3?ϛukO!DQkuffZlnl> RiΟybҌԦh2 Gl.hxW^wMDŽ " C(Bk &;;=]u4 ֮T*:œqfKssdWw>?v۝}tZ$nR*?x {!koƯ-?ܳ{rHNSGvIRa8  ~#&qL$R0ers7h$NXťuV$J&WrX._M9<|ߗ~K)58ILb,Zn#ʼni$ J}y`1j s*qȷomR)v{sp/oH?[~qX!RJj*RqOiA)d2A)E$ycZs 9GZ%X\gqao.κ<=stؗŷD>Rz{D)>t|cDQDE$IB) jlr!.-h68r mh6:O|=|?k8VۯGkY$ Ks$Ii2 DQD(A0;3#8~|޲Gfnрtww|LN\B<[?~+? q;h6xO|| \),T*cPJ!GUG @NI!:>rC t]qB̀f3'G'~~OwָcJBeH)B0L}BCkspFYufm_]^!tuG/4GK9RT*8Bnׅ!ֲHE0Dx<RzD⯟},BxX~+~u2c}U/dxkR1뽑V@D¿)i>ed!0 ihQJM H)WIFfIoZGn&js\*x-'FkHd$v>iRΎ1fZE'2zkܠ9Ph-'PX,0Okb–IL&&;|7W 9rUˣ_ρmw#$I SZk8- $sV2[/H)d$J81Sŗ <.diZOZ_rљ#Ϝ9R 9HӔ4M}cJGQV[l4K`MI&|^B»x #define SHADOW_OFFSET_X 7 #define SHADOW_OFFSET_Y 7 #define SHADOW_RADIUS 5 static void draw_shadow_box (cairo_t *cr, GdkRectangle rect, double radius, double transparency) { cairo_pattern_t *pattern; double x0, x1, x2, x3; double y0, y1, y2, y3; x0 = rect.x; x1 = rect.x + radius; x2 = rect.x + rect.width - radius; x3 = rect.x + rect.width; y0 = rect.y; y1 = rect.y + radius; y2 = rect.y + rect.height - radius; y3 = rect.y + rect.height; /* Fill non-border part */ cairo_set_source_rgba (cr, 0, 0, 0, transparency); cairo_rectangle (cr, x1, y1, x2 - x1, y2 - y1); cairo_fill (cr); /* Upper border */ pattern = cairo_pattern_create_linear (0, y0, 0, y1); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, 0.0); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, transparency); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x1, y0, x2 - x1, y1 - y0); cairo_fill (cr); /* Bottom border */ pattern = cairo_pattern_create_linear (0, y2, 0, y3); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x1, y2, x2 - x1, y3 - y2); cairo_fill (cr); /* Left border */ pattern = cairo_pattern_create_linear (x0, 0, x1, 0); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, 0.0); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, transparency); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x0, y1, x1 - x0, y2 - y1); cairo_fill (cr); /* Right border */ pattern = cairo_pattern_create_linear (x2, 0, x3, 0); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x2, y1, x3 - x2, y2 - y1); cairo_fill (cr); /* NW corner */ pattern = cairo_pattern_create_radial (x1, y1, 0, x1, y1, radius); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x0, y0, x1 - x0, y1 - y0); cairo_fill (cr); /* NE corner */ pattern = cairo_pattern_create_radial (x2, y1, 0, x2, y1, radius); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x2, y0, x3 - x2, y1 - y0); cairo_fill (cr); /* SW corner */ pattern = cairo_pattern_create_radial (x1, y2, 0, x1, y2, radius); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x0, y2, x1 - x0, y3 - y2); cairo_fill (cr); /* SE corner */ pattern = cairo_pattern_create_radial (x2, y2, 0, x2, y2, radius); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x2, y2, x3 - x2, y3 - y2); cairo_fill (cr); } static gboolean draw_callback (GtkWidget *widget, cairo_t *cr, gpointer data) { GdkRectangle rect; gtk_widget_get_allocation (widget, &rect); rect.x += SHADOW_OFFSET_X; rect.y += SHADOW_OFFSET_Y; rect.width -= SHADOW_OFFSET_X; rect.height -= SHADOW_OFFSET_Y; draw_shadow_box (cr, rect, SHADOW_RADIUS, 0.4); return FALSE; } GtkWidget * do_transparent (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *view; GtkWidget *sw; GtkWidget *overlay; GtkWidget *entry; GtkCssProvider *provider; gchar *css; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_title (GTK_WINDOW (window), "Transparent"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); view = gtk_text_view_new (); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (sw), view); overlay = gtk_overlay_new (); gtk_container_add (GTK_CONTAINER (overlay), sw); gtk_container_add (GTK_CONTAINER (window), overlay); entry = gtk_entry_new (); provider = gtk_css_provider_new (); css = g_strdup_printf ("* { border-width: 0px %dpx %dpx 0px; }", SHADOW_OFFSET_X, SHADOW_OFFSET_Y); gtk_css_provider_load_from_data (provider, css, -1, NULL); g_free (css); gtk_style_context_add_provider (gtk_widget_get_style_context (entry), GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); g_signal_connect (entry, "draw", G_CALLBACK (draw_callback), NULL); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), entry); gtk_widget_set_halign (entry, GTK_ALIGN_CENTER); gtk_widget_set_valign (entry, GTK_ALIGN_START); gtk_widget_show_all (overlay); } if (!gtk_widget_get_visible (window)) { gtk_widget_show (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)background.jpgVJFIFHHCreated with The GIMPC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222"8!1AQ"a2q#BR3rbC1 ?T[C GzFh ʎ^h| lFT{(v4 TQ|Q ¡KHylmUw$"G4dvEL C1H2;ށY $=3Y4pVM'UDkYR#B@X㘧X"A8$rB Kиd֩1`Np˛MTDL~)oϊ%%FQ"-ó<P \(@E/zg[}ST-ɌpD* $EV$~7U ` {U-yZTꍻk :ԃD!7@`5{~(1`vֲ0ݤ}N[ͰPb"7"1 rfV $Oo~Pe5'HqTfڠXEgU27?)7fW]ۉ?mos9 hb$CYQG-3]:sRH;սXf$}YڶB[Pr$G N,T4hx>iFER*@=sb;k|*(O>(P$S aN<2UpXK&v^*=Fse{]t߭e-胯WeqM@~t{ u-ҳqmAjX&O5@W ڝyp*ʾ;hrI =C!9g(ǚ 3X:46P c h46P1:Hd{ EDnH:XE; Pn- OZxB2Ց1#>H1Hӏ(3b]0H:TɽԶ(L#ɥZùa{im-ZKPm?.ucʁRKT-[npX3 k-9\x CSnDSڣNrQ(~(`K UuQv)aseTI2)e+a{$W>৐;U ߎi+P꣰t= :{p8ULZ*k$My N_q&^MFy:N嶽Ř0PtUBuH=Ywz̈%)PzpX!\\'jt9 W\*i$ ' WOhl/K{@`d~h`@2y)K,-UB} ) c梳gdbDH)B@M>GYh -剃<^e{ZgMm-HU'Pfh P#9g; 'GH؊e]V._%DkTobvh:` cMs\`Ph99 ~ᕰ@=A[%Ǹ:*)>cE lF܍H2'4l<:+^%m9ƷLtU@QIJ) r?={. ?[p9-7Mmn:b].ۻY!wU ˃ <]zFڤ*2'B2cnRދ9b7ⅲ}H=sxs@m*-W[;1 ~p *ΉhX悳75,4$x5FPg114 1ދLS.:> Pˤvu9"t4Od|ċi,H"=1K2R{οXu2OĞ>k)!8wTPd yb`5^S[rqgg4[CkԎ2vڨ+dL FKb*=v*YXD I~@A}R΢V٠mȂb5qU@}5VcځllKx@U@-r7'g$h?5 ˘S\zxxs3UhQDe&vf1(HCl6Si@8("o[캤KxUn[Sy`椷K=5%pvhnUd hB TsZ+'.40LcwGqjȝ ,nط[>ªbuAඡ@&;P"1P@*"I<,CL~GuInkF -S)wü zfڵZv ?W0Xb}؏hIKVГ6>dOl@#Ku h?{HDH #E@*K 11As Y v,VmP fl(]*?o\[}: P;-KKA ?;eFIրImRAPǽrݫCI~5pYeK}g@ v ӕB$w!| e r1 S1v3(* #=b'KSIrNKyTnތfU"u:~( [H/RI2I317)ڏbOo`L{(i3tk J+;!Ҵq*!yـLB+cڟ#&c*& РGQ@B'Qa0=I6t&d 䊨,nط[>ªbuAඡ@&;TR*I$)}21dy~T>6:Tkx0`2|; ~nͫ]5`p>jLn &*)݈DTo 0+0#cDH6̴9P̶aT@D 9 Tx[;bN eJb`vlU2 ~Ojnbq۲31F5ŷӮ ð^ jAszFThĝh E$ { -ڴ?`q?Q 6^'{b 9T,NZqojXֹ`m< v!m+;zmw$UXȘR[{ i.9Z:nap+q#KGdx^=EИT\׮qz{Nxaڼuze6Ŷq֦ rO›*qle5\(UQu|Q޵K\r} A(83,g[;GޑWӑ8 ==:M$GP)v(@sW SG$=C1ԁ$fi_UMmVDӺgp-dDk5' A(=TqY$ַm3  U fv"qS*`Bݏ?OyZP=c&g3h LE Ŏ,s1kY N(6*< 7X sO>ɓ'A- EIv o+ DLbk7S 3LAQLWitτ! >aIڃ*=T5[ ?K([f{P)9?jֹ`m< v!m+;zmw$U)%[`5ȗ bz_{4xN] Omz hyW W]gSl[i'jj*^ w$)|Gk0Pc\P͜}QUh0']η=\@T G42; A2ɌuHKaTxqM9P܃ڭcJ )A m>P f {(^>PH>)L<9ղXAYE_VITT̘biQQ=z|,2P*P\dR[y$N⢂(Y$qvE-?޶6n\8}^womc Ѵ{y1ոu=O4ޡԨ{J81{'k*CNF 􂋬ξcܚA$F5UFpX7Hf׶\6vKq>)A m>P f {(^>PH>)L<9ղXAYE_VITT̘biQQ=z|,2P*P\dR[y$N⢂(Y$qvE-?޶6n\8}^womc Ѵ{y1\EtonsEZ*?UGlbR.w :W%D&1Q{z MHwwn8^Z l)$5 Z|S?4!-+V( \ĉ1Y%wi-ALU]axX-+r}6UOj RVia*JݲOrP% Yై5@팪b;H@2\" e(PHzWp"ډ1t8;,++\c5O4 t6B:4Urv(qU<- r>;QM'<_IϨ lg( $ncof6ӥ*e B^~hP:f5QqSݸ.3l QBTsFtœ f9WPyEk :'&OmtzyLXzS>N;iReUq/En~ہ@үQY-qL3q2k/\ A⹺wf׻q&893,H␲Rg,4UWP\P@B2b`KF_oimP/к#gAUSXˀ<8fŲI&gj Gڎ0YV  UP{2a汶 2y 5T[]?LL3$r; j95PPX2Z3q'PҰiR/{{@Ы@H9l* @TfX !e)ɢ2ϘXi@*d1YP0,>f_u$# F` yrN>ؤg%R~)U 2ۍNPlG n2,]V!)R.NG~ G:ɊtLkY_$*[v$h a=iF. @'02IcX$ӥ@ ?j5`ANyWǸ`a-)N⋹!f{M#x۞Oڛ ,dyB[9?4WrA#T#[M*n@)Ҥ:Ivs)P'FbΦ˾D.8ԽhDT)OHKAƝL|Q=*i0 vMf[4" EbqT,,xb!x[aP;%?!-ROv'1G0Y/i5nFg#G _ @'zk2V6;_@a,kĚ/̷Qw7&Z FFPAb-j4@b;^f1Vjjl^^ ~sEGӴ0R:q:WL¬€2 X7fAjı8vbnԅ!53ж"<RT Umo6cڵ7oV`|df"džMJ9 Ub9=-r֡)`)0&55<5@]D=kpl? -rZDRPpuUM#`lsk m7ʆkV@5HΪ 1<$P"LGv(Iv,< 2+9lڊ>p@WC)"KhwUIk,1se[P; KK;d 5U7L[NA^.L)Gi2$p/ AUE(ñ:2.kvRfL6&IX80$ʑW׹E۷Qvy[iQӲ-[>3?5Q4:v&&A|ǦO5y"B0[ĝE⵷gkPa1+{ ds ip]GTy>h[Li(~Y'T q588*4H>Kmq@I3?PIi8QdyDS"*+N"`ڀ$YĒq$qYR촋kwnx NLDOsA*\')BvQJ}(hB/;$@ؖhl@$a@@UBAk-솝"c(arFB{&rV:QHRn(2N5飻!Mh@qAD1}o` 4$R]Ndn>*_='@J;gm753ikǓiDYLfO}TSnB! Nк!bL;UwpKiPhj`chTA rA>&Icj}GC@#7sN s^bm#gt1O4Taʏ$UCV䝘nР(9:8Q.oLs!Ar#u%dVwOg7ٮ{6LY().ZN4&>*a 梪O4 +@Y?]#Hb&!'Fnx NLDOsA*\')BvQJ}(hB/;$@ؖhl@$a@@UBAk-솝"c(arFB{&rV:QHRn(2N5飻!Mh@qAD1}o` 4$R]Ndn>*_='@J;gm753ikǓiDYLfO}TSnB! Nк!bL;UwpKiPPKr@ :pf}ܓM)wA;m-#tm#(w{xp o\ޟfw'@*S6[ޙY\E(UTJ2Di46 {UF V ʼnf*:IHM1gGu5l"FB0Ŷ8&GbPJj&fh vbp5!*1\CR}G$tfi d4cftwQMsV)9d*Nc [cM2l4v 4ffH`'f)\Rn0=y4='rI'C+cjq'z'f6'>")[;i[eN "-y1bFTT3DA&h}CB(aR5kV`~$$p?4PỸfPT!Ʃ`" >hYsm4IOdIX ?zP$ (ղ@?+*ǙQ2i~4V.C\=D*# @1X;k"2mРF̬@S}SNŷ1ʠP"a@;a.޳΢M *b?ZկF%}dɬTO H*, !j'SL>#ǓAmEQZiK*O>!mL Dl(S:קҪɮvMr?yuO&uC7aAzt-xdž2-4 M%3ykV}DZIf 9KjGjqp8xJ)LAuv"~yn(#{e*P*O 4~Xk Z`+hjSB?P`8 ,fALd(AfcrcTH4, $觲O$I(fcj LIcj(b4H!݀ Ѭ[L5I6hP#fVw)SbۈYeP(|@LD\|zYQJ&PD±fڭjףhHvvqo'Qm D9a#q+*;z4Ŧp 9'B椑!w{رPI[lG"!tI<T$ߚY>h| lFT{(v4 TQ|Q ¡KHylmUw$"G4dvEL C1H2;ށY $=3Y4pVM'UDkYR#B@X㘧X"A8$rB Kиd֩1`Np˛MTDL~)oϊ%%FQ"-ó<P \(@E/zg[}ST-ɌpD* $EV$~7U ` {U-yZTꍻk :ԃD!7@`5{~(1`vֲ0ݤ}N[ͰPb"7"1 rfV $Oo~Pe5'HqTfڠXEgU27?)7fW]ۉ?mos9 hb$CYQG-3]:sRH;սXf$}YڶB[Pr$G N,T4hx>iFER*@=sb;k|*(O>(P$S aN<2UpXK&v^*=Fse{]t߭e-胯WeqM@~t{ u-ҳqmAjX&O5@W ڝyp*ʾ;hrI =C!9g(ǚ 3X:46P c h46P1:Hd{ EDnH:XE; Pn- OZxB2Ց1#>H1Hӏ(3b]0H:TɽԶ(L#ɥZùa{im-ZKPm?.ucʁRKT-[npX3 k-9\x CSnDSڣNrQ(~(`K UuQv)aseTI2)e+a{$W>৐;U ߎi+P꣰t= :{p8ULZ*k$My N_q&^MFy:N嶽Ř0PtUBuH=Ywz̈%)PzpX!\\'jt9 W\*i$ ' WOhl/K{@`d~h`@2y)K,-UB} ) c梳gdbDH)B@M>GYh -剃<^e{ZgMm-HU'Pfh P#9g; 'GH؊e]V._%DkTobvh:` cMs\`Ph99 ~ᕰ@=A[%Ǹ:*)>cE lF܍H2'4l<:+^%m9ƷLtU@QIJ) r?={. ?[p9-7Mmn:b].ۻY!wU ˃ <]zFڤ*2'B2cnRދ9b7ⅲ}H=sxs@m*-W[;1 ~p *ΉhX悳75,4$x5FPg114 1ދLS.:> Pˤvu9"t4Od|ċi,H"=1K2R{οXu2OĞ>k)!8wTPd yb`5^S[rqgg4[CkԎ2vڨ+dL FKb*=v*YXD I~@A}R΢V٠mȂb5qU@}5VcځllKx@U@-r7'g$h?5 ˘S\zxxs3UhQDe&vf1(HCl6Si@8("o[캤KxUn[Sy`椷K=5%pvhnUd hB TsZ+'.40LcwGqjȝ ,nط[>ªbuAඡ@&;P"1P@*"I<,CL~GuInkF -S)wü zfڵZv ?W0Xb}؏hIKVГ6>dOl@#Ku h?{HDH #E@*K 11As Y v,VmP fl(]*?o\[}: P;-KKA ?;eFIրImRAPǽrݫCI~5pYeK}g@ v ӕB$w!| e r1 S1v3(* #=b'KSIrNKyTnތfU"u:~( [H/RI2I317)ڏbOo`L{(i3tk J+;!Ҵq*!yـLB+cڟ#&c*& РGQ@B'Qa0=I6t&d 䊨,nط[>ªbuAඡ@&;TR*I$)}21dy~T>6:Tkx0`2|; ~nͫ]5`p>jLn &*)݈DTo 0+0#cDH6̴9P̶aT@D 9 Tx[;bN eJb`vlU2 ~Ojnbq۲31F5ŷӮ ð^ jAszFThĝh E$ { -ڴ?`q?Q 6^'{b 9T,NZqojXֹ`m< v!m+;zmw$UXȘR[{ i.9Z:nap+q#KGdx^=EИT\׮qz{Nxaڼuze6Ŷq֦ rO›*qle5\(UQu|Q޵K\r} A(83,g[;GޑWӑ8 ==:M$GP)v(@sW SG$=C1ԁ$fi_UMmVDӺgp-dDk5' A(=TqY$ַm3  U fv"qS*`Bݏ?OyZP=c&g3h LE Ŏ,s1kY N(6*< 7X sO>ɓ'A- EIv o+ DLbk7S 3LAQLWitτ! >aIڃ*=T5[ ?K([f{P)9?jֹ`m< v!m+;zmw$U)%[`5ȗ bz_{4xN] Omz hyW W]gSl[i'jj*^ w$)|Gk0Pc\P͜}QUh0']η=\@T G42; A2ɌuHKaTxqM9P܃ڭcJ )A m>P f {(^>PH>)L<9ղXAYE_VITT̘biQQ=z|,2P*P\dR[y$N⢂(Y$qvE-?޶6n\8}^womc Ѵ{y1ոu=O4ޡԨ{J81{'k*CNF 􂋬ξcܚA$F5UFpX7Hf׶\6vKq>)A m>P f {(^>PH>)L<9ղXAYE_VITT̘biQQ=z|,2P*P\dR[y$N⢂(Y$qvE-?޶6n\8}^womc Ѵ{y1\EtonsEZ*?UGlbR.w :W%D&1Q{z MHwwn8^Z l)$5 Z|S?4!-+V( \ĉ1Y%wi-ALU]axX-+r}6UOj RVia*JݲOrP% Yై5@팪b;H@2\" e(PHzWp"ډ1t8;,++\c5O4 t6B:4Urv(qU<- r>;QM'<_IϨ lg( $ncof6ӥ*e B^~hP:f5QqSݸ.3l QBTsFtœ f9WPyEk :'&OmtzyLXzS>N;iReUq/En~ہ@үQY-qL3q2k/\ A⹺wf׻q&893,H␲Rg,4UWP\P@B2b`KF_oimP/к#gAUSXˀ<8fŲI&gj Gڎ0YV  UP{2a汶 2y 5T[]?LL3$r; j95PPX2Z3q'PҰiR/{{@Ы@H9l* @TfX !e)ɢ2ϘXi@*d1YP0,>f_u$# F` yrN>ؤg%R~)U 2ۍNPlG n2,]V!)R.NG~ G:ɊtLkY_$*[v$h a=iF. @'02IcX$ӥ@ ?j5`ANyWǸ`a-)N⋹!f{M#x۞Oڛ ,dyB[9?4WrA#T(uuay)entry_buffer.c/* Entry/Entry Buffer * * GtkEntryBuffer provides the text content in a GtkEntry. * */ #include #include static GtkWidget *window = NULL; GtkWidget * do_entry_buffer (GtkWidget *do_widget) { GtkWidget *content_area; GtkWidget *vbox; GtkWidget *label; GtkWidget *entry; GtkEntryBuffer *buffer; if (!window) { window = gtk_dialog_new_with_buttons ("GtkEntryBuffer", GTK_WINDOW (do_widget), 0, _("_Close"), GTK_RESPONSE_NONE, NULL); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); content_area = gtk_dialog_get_content_area (GTK_DIALOG (window)); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Entries share a buffer. Typing in one is reflected in the other."); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); /* Create a buffer */ buffer = gtk_entry_buffer_new (NULL, 0); /* Create our first entry */ entry = gtk_entry_new_with_buffer (buffer); gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0); /* Create the second entry */ entry = gtk_entry_new_with_buffer (buffer); gtk_entry_set_visibility (GTK_ENTRY (entry), FALSE); gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0); g_object_unref (buffer); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)sidebar.cl /* Stack Sidebar * * GtkStackSidebar provides an automatic sidebar widget to control * navigation of a GtkStack object. This widget automatically updates it * content based on what is presently available in the GtkStack object, * and using the "title" child property to set the display labels. */ #include #include static GtkWidget *window = NULL; GtkWidget * do_sidebar (GtkWidget *do_widget) { GtkWidget *sidebar; GtkWidget *stack; GtkWidget *box; GtkWidget *widget; GtkWidget *header; const gchar* pages[] = { "Welcome to GTK+", "GtkStackSidebar Widget", "Automatic navigation", "Consistent appearance", "Scrolling", "Page 6", "Page 7", "Page 8", "Page 9", NULL }; const gchar *c = NULL; guint i; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_resizable (GTK_WINDOW (window), TRUE); gtk_widget_set_size_request (window, 500, 350); header = gtk_header_bar_new (); gtk_header_bar_set_show_close_button (GTK_HEADER_BAR(header), TRUE); gtk_window_set_titlebar (GTK_WINDOW(window), header); gtk_window_set_title (GTK_WINDOW(window), "Stack Sidebar demo"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); sidebar = gtk_stack_sidebar_new (); gtk_box_pack_start (GTK_BOX (box), sidebar, FALSE, FALSE, 0); stack = gtk_stack_new (); gtk_stack_set_transition_type (GTK_STACK (stack), GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN); gtk_stack_sidebar_set_stack (GTK_STACK_SIDEBAR (sidebar), GTK_STACK (stack)); /* Separator between sidebar and stack */ widget = gtk_separator_new (GTK_ORIENTATION_VERTICAL); gtk_box_pack_start (GTK_BOX(box), widget, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (box), stack, TRUE, TRUE, 0); for (i=0; (c = *(pages+i)) != NULL; i++ ) { if (i == 0) { widget = gtk_image_new_from_icon_name ("help-about", GTK_ICON_SIZE_MENU); gtk_image_set_pixel_size (GTK_IMAGE (widget), 256); } else { widget = gtk_label_new (c); } gtk_stack_add_named (GTK_STACK (stack), widget, c); gtk_container_child_set (GTK_CONTAINER (stack), widget, "title", c, NULL); } gtk_container_add (GTK_CONTAINER (window), box); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)main.ui
Aboutapp.about
_Quitapp.quit<Primary>q
800600FalseGTK+ DemoTrueFalseTrueTruecenterTruewin.runTrueRunstartTrueFalse0True120TrueTruenevernone150TrueTruetreestoreFalsebrowsecolumn41FalseTrue0TrueTrueTrueTrueFalseTrueTruenoneTrueTrue202022FalsewordFalseTrueTrueFalse_InfoTrueTrueFalseTrueTruenoneTrueTrue2020FalseFalse1TrueTrueFalseSource1FalseTrueTrue1 (uuay)popover.ui3 Item 1 Item 2 Item 3 Item 4 Item 5 Item 6 Item 7 Item 8 Item 9 Item 10 False True False vertical 6 True True edit-find edit-clear False True 0 True True in True True True liststore1 False False 2 0 False True 1 (uuay)event_axes.c'/* Event Axes * * Demonstrates advanced handling of event information from exotic * input devices. * * On one hand, this snippet demonstrates management of input axes, * those contain additional information for the pointer other than * X/Y coordinates. * * Input axes are dependent on hardware devices, on linux/unix you * can see the device axes through xinput list . Each time * a different hardware device is used to move the pointer, the * master device will be updated to match the axes it provides, * these changes can be tracked through GdkDevice::changed, or * checking gdk_event_get_source_device(). * * On the other hand, this demo handles basic multitouch events, * each event coming from an specific touchpoint will contain a * GdkEventSequence that's unique for its lifetime, so multiple * touchpoints can be tracked. */ #include typedef struct { GdkDevice *last_source; GHashTable *axes; /* axis label atom -> value */ GdkRGBA color; gdouble x; gdouble y; } AxesInfo; typedef struct { AxesInfo *pointer_info; GHashTable *touch_info; /* GdkEventSequence -> AxesInfo */ } EventData; const gchar *colors[] = { "black", "orchid", "fuchsia", "indigo", "thistle", "sienna", "azure", "plum", "lime", "navy", "maroon", "burlywood" }; static guint cur_color = 0; static AxesInfo * axes_info_new (void) { AxesInfo *info; info = g_new0 (AxesInfo, 1); gdk_rgba_parse (&info->color, colors[cur_color]); info->axes = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify) g_free); cur_color = (cur_color + 1) % G_N_ELEMENTS (colors); return info; } static void axes_info_free (AxesInfo *info) { g_hash_table_destroy (info->axes); g_free (info); } static gboolean axes_info_lookup (AxesInfo *info, const gchar *axis_label, gdouble *value) { gdouble *val; GdkAtom atom; atom = gdk_atom_intern (axis_label, FALSE); if (atom == GDK_NONE) return FALSE; val = g_hash_table_lookup (info->axes, GDK_ATOM_TO_POINTER (atom)); if (!val) return FALSE; *value = *val; return TRUE; } static EventData * event_data_new (void) { EventData *data; data = g_new0 (EventData, 1); data->touch_info = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify) axes_info_free); return data; } static void event_data_free (EventData *data) { if (data->pointer_info) axes_info_free (data->pointer_info); g_hash_table_destroy (data->touch_info); g_free (data); } static void update_axes_from_event (GdkEvent *event, EventData *data) { GdkDevice *device, *source_device; GdkEventSequence *sequence; gdouble x, y, value; GList *l, *axes; AxesInfo *info; device = gdk_event_get_device (event); source_device = gdk_event_get_source_device (event); sequence = gdk_event_get_event_sequence (event); if (event->type == GDK_TOUCH_END) { g_hash_table_remove (data->touch_info, sequence); return; } else if (event->type == GDK_LEAVE_NOTIFY) { if (data->pointer_info) axes_info_free (data->pointer_info); data->pointer_info = NULL; return; } if (!sequence) { if (!data->pointer_info) data->pointer_info = axes_info_new (); info = data->pointer_info; } else { info = g_hash_table_lookup (data->touch_info, sequence); if (!info) { info = axes_info_new (); g_hash_table_insert (data->touch_info, sequence, info); } } if (info->last_source != source_device) { g_hash_table_remove_all (info->axes); info->last_source = source_device; } if (event->type == GDK_TOUCH_BEGIN || event->type == GDK_TOUCH_UPDATE || event->type == GDK_MOTION_NOTIFY || event->type == GDK_BUTTON_PRESS || event->type == GDK_BUTTON_RELEASE) { axes = gdk_device_list_axes (device); if (sequence && event->touch.emulating_pointer) { if (data->pointer_info) axes_info_free (data->pointer_info); data->pointer_info = NULL; } for (l = axes; l; l = l->next) { gdouble *ptr; /* All those event types are compatible wrt axes position in the struct */ if (!gdk_device_get_axis_value (device, event->motion.axes, l->data, &value)) continue; ptr = g_new0 (gdouble, 1); *ptr = value; g_hash_table_insert (info->axes, GDK_ATOM_TO_POINTER (l->data), ptr); } g_list_free (axes); } if (gdk_event_get_coords (event, &x, &y)) { info->x = x; info->y = y; } } static gboolean event_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { update_axes_from_event (event, user_data); gtk_widget_queue_draw (widget); return FALSE; } static void render_arrow (cairo_t *cr, gdouble x_diff, gdouble y_diff, const gchar *label) { cairo_save (cr); cairo_set_source_rgb (cr, 0, 0, 0); cairo_new_path (cr); cairo_move_to (cr, 0, 0); cairo_line_to (cr, x_diff, y_diff); cairo_stroke (cr); cairo_move_to (cr, x_diff, y_diff); cairo_show_text (cr, label); cairo_restore (cr); } static void draw_axes_info (cairo_t *cr, AxesInfo *info, GtkAllocation *allocation) { gdouble pressure, tilt_x, tilt_y, wheel; cairo_save (cr); cairo_set_line_width (cr, 1); gdk_cairo_set_source_rgba (cr, &info->color); cairo_move_to (cr, 0, info->y); cairo_line_to (cr, allocation->width, info->y); cairo_move_to (cr, info->x, 0); cairo_line_to (cr, info->x, allocation->height); cairo_stroke (cr); cairo_translate (cr, info->x, info->y); if (axes_info_lookup (info, "Abs Pressure", &pressure)) { cairo_pattern_t *pattern; pattern = cairo_pattern_create_radial (0, 0, 0, 0, 0, 100); cairo_pattern_add_color_stop_rgba (pattern, pressure, 1, 0, 0, pressure); cairo_pattern_add_color_stop_rgba (pattern, 1, 0, 0, 1, 0); cairo_set_source (cr, pattern); cairo_arc (cr, 0, 0, 100, 0, 2 * G_PI); cairo_fill (cr); cairo_pattern_destroy (pattern); } if (axes_info_lookup (info, "Abs Tilt X", &tilt_x) && axes_info_lookup (info, "Abs Tilt Y", &tilt_y)) render_arrow (cr, tilt_x * 100, tilt_y * 100, "Tilt"); if (axes_info_lookup (info, "Abs Wheel", &wheel)) { cairo_save (cr); cairo_set_line_width (cr, 10); cairo_set_source_rgba (cr, 0, 0, 0, 0.5); cairo_new_sub_path (cr); cairo_arc (cr, 0, 0, 100, 0, wheel * 2 * G_PI); cairo_stroke (cr); cairo_restore (cr); } cairo_restore (cr); } static void draw_device_info (GtkWidget *widget, cairo_t *cr, GdkEventSequence *sequence, gint *y, AxesInfo *info) { PangoLayout *layout; GString *string; gint height; cairo_save (cr); string = g_string_new (NULL); g_string_append_printf (string, "Source: %s", gdk_device_get_name (info->last_source)); if (sequence) g_string_append_printf (string, "\nSequence: %d", GPOINTER_TO_UINT (sequence)); cairo_move_to (cr, 10, *y); layout = gtk_widget_create_pango_layout (widget, string->str); pango_cairo_show_layout (cr, layout); cairo_stroke (cr); pango_layout_get_pixel_size (layout, NULL, &height); gdk_cairo_set_source_rgba (cr, &info->color); cairo_set_line_width (cr, 10); cairo_move_to (cr, 0, *y); *y = *y + height; cairo_line_to (cr, 0, *y); cairo_stroke (cr); cairo_restore (cr); g_object_unref (layout); g_string_free (string, TRUE); } static gboolean draw_cb (GtkWidget *widget, cairo_t *cr, gpointer user_data) { EventData *data = user_data; GtkAllocation allocation; AxesInfo *touch_info; GHashTableIter iter; gpointer key, value; gint y = 0; gtk_widget_get_allocation (widget, &allocation); /* Draw Abs info */ if (data->pointer_info) draw_axes_info (cr, data->pointer_info, &allocation); g_hash_table_iter_init (&iter, data->touch_info); while (g_hash_table_iter_next (&iter, NULL, &value)) { touch_info = value; draw_axes_info (cr, touch_info, &allocation); } /* Draw name, color legend and misc data */ if (data->pointer_info) draw_device_info (widget, cr, NULL, &y, data->pointer_info); g_hash_table_iter_init (&iter, data->touch_info); while (g_hash_table_iter_next (&iter, &key, &value)) { touch_info = value; draw_device_info (widget, cr, key, &y, touch_info); } return FALSE; } GtkWidget * do_event_axes (GtkWidget *toplevel) { static GtkWidget *window = NULL; EventData *event_data; GtkWidget *box; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 400, 400); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); box = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER (window), box); gtk_widget_add_events (box, GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_SMOOTH_SCROLL_MASK | GDK_TOUCH_MASK); event_data = event_data_new (); g_object_set_data_full (G_OBJECT (box), "gtk-demo-event-data", event_data, (GDestroyNotify) event_data_free); g_signal_connect (box, "event", G_CALLBACK (event_cb), event_data); g_signal_connect (box, "draw", G_CALLBACK (draw_cb), event_data); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)floppybuddy.gif`GIF89aPF  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~ぁ=v{! NETSCAPE2.0! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@H 2hJ2rD)@*0.O[vDٕ@Xsjj׶l6$٫w5mW)9-͢{,ҁEgu8 5|bSCJ%x3|Cf ۸Icqhq}vmBN-8(U/gys_9qٵ^?9yï>d|p_M6~ϕv(ބ`.} W!*I؅І9gNAȚkhq8S)5Hgf>$JBHL:mh:QIe!I6 $0JY$dHX'umAh긑*9|jB昉aрx&be1aJYziviJ:*A*=ҫꚔ,Bk$KO9Ūl}<WL%*QMi.W~HS•;Rvն;m_2xn~).kn2zk0 .9,o[.fw#! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@&΃EE4eSF@TL}Z 4TIb͚P vX(Dːյj7)֩VU{n*4YR{5*ʹ ,hq |PJ|]x'ФsWZ_Sޙ'[}u[[E%č_O|9sϥ.PassSWo8yguh` w%V"h rY]ɗփvN(ǁd`]&L%Db'\~ rуxvڌԈҍ&x!AjFd("6DP8%JUqE[V``)eH_qy&[kx'QG)"}y~`1Uh!;)ZބNNf꒤v*iI+¤ҨhꥄVkj*t뎵*+Od!U_Dlv5`u]6k؎4-MfҷyfbnWJ5Ӣc$K~n 7G,T!This GIF file was assembled by CDavis with GIF Construction Set from: Alchemy Mindworks Inc. P.O. Box 500 Beeton, Ontario L0G 1A0 CANADA. ! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@H 2hJ2rD)@*0.O[vDٕ@Xsjj׶l6$٫w5mW)9-͢{,ҁEgu8 5|bSCJ%x3|Cf ۸Icqhq}vmBN-8(U/gys_9qٵ^?9yï>d|p_M6~ϕv(ބ`.} W!*I؅І9gNAȚkhq8S)5Hgf>$JBHL:mh:QIe!I6 $0JY$dHX'umAh긑*9|jB昉aрx&be1aJYziviJ:*A*=ҫꚔ,Bk$KO9Ūl}<WL%*QMi.W~HS•;Rvն;m_2xn~).kn2zk0 .9,o[.fw#! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@&΃EE4eSF@TL}Z 4TIb͚P vX(Dːյj7)֩VU{n*4YR{5*ʹ ,hq |PJ|]x'ФsWZ_Sޙ'[}u[[E%č_O|9sϥ.PassSWo8yguh` w%V"h rY]ɗփvN(ǁd`]&L%Db'\~ rуxvڌԈҍ&x!AjFd("6DP8%JUqE[V``)eH_qy&[kx'QG)"}y~`1Uh!;)ZބNNf꒤v*iI+¤ҨhꥄVkj*t뎵*+Od!U_Dlv5`u]6k؎4-MfҷyfbnWJ5Ӣc$K~n 7G,T!This space for rent...! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@H 2hJ2rD)@*0.O[vDٕ@Xsjj׶l6$٫w5mW)9-͢{,ҁEgu8 5|bSCJ%x3|Cf ۸Icqhq}vmBN-8(U/gys_9qٵ^?9yï>d|p_M6~ϕv(ބ`.} W!*I؅І9gNAȚkhq8S)5Hgf>$JBHL:mh:QIe!I6 $0JY$dHX'umAh긑*9|jB昉aрx&be1aJYziviJ:*A*=ҫꚔ,Bk$KO9Ūl}<WL%*QMi.W~HS•;Rvն;m_2xn~).kn2zk0 .9,o[.fw#! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@&΃EE4eSF@TL}Z 4TIb͚P vX(Dːյj7)֩VU{n*4YR{5*ʹ ,hq |PJ|]x'ФsWZ_Sޙ'[}u[[E%č_O|9sϥ.PassSWo8yguh` w%V"h rY]ɗփvN(ǁd`]&L%Db'\~ rуxvڌԈҍ&x!AjFd("6DP8%JUqE[V``)eH_qy&[kx'QG)"}y~`1Uh!;)ZބNNf꒤v*iI+¤ҨhꥄVkj*t뎵*+Od!U_Dlv5`u]6k؎4-MfҷyfbnWJ5Ӣc$K~n 7G,T!This GIF file was assembled with GIF Construction Set from: Alchemy Mindworks Inc. P.O. Box 500 Beeton, Ontario L0G 1A0 CANADA. This comment block will not appear in files created with a registered version of GIF Construction Set;(uuay)stack/Hentry_completion.c /* Entry/Entry Completion * * GtkEntryCompletion provides a mechanism for adding support for * completion in GtkEntry. * */ #include #include static GtkWidget *window = NULL; /* Creates a tree model containing the completions */ GtkTreeModel * create_completion_model (void) { GtkListStore *store; GtkTreeIter iter; store = gtk_list_store_new (1, G_TYPE_STRING); /* Append one word */ gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, "GNOME", -1); /* Append another word */ gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, "total", -1); /* And another word */ gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, "totally", -1); return GTK_TREE_MODEL (store); } GtkWidget * do_entry_completion (GtkWidget *do_widget) { GtkWidget *content_area; GtkWidget *vbox; GtkWidget *label; GtkWidget *entry; GtkEntryCompletion *completion; GtkTreeModel *completion_model; if (!window) { window = gtk_dialog_new_with_buttons ("GtkEntryCompletion", GTK_WINDOW (do_widget), 0, _("_Close"), GTK_RESPONSE_NONE, NULL); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); content_area = gtk_dialog_get_content_area (GTK_DIALOG (window)); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Completion demo, try writing total or gnome for example."); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); /* Create our entry */ entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0); /* Create the completion object */ completion = gtk_entry_completion_new (); /* Assign the completion to the entry */ gtk_entry_set_completion (GTK_ENTRY (entry), completion); g_object_unref (completion); /* Create a tree model and use it as the completion model */ completion_model = create_completion_model (); gtk_entry_completion_set_model (completion, completion_model); g_object_unref (completion_model); /* Use model column 0 as the text column */ gtk_entry_completion_set_text_column (completion, 0); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)gnome-gsame.pngPNG  IHDR00WgAMA1_^IDATxYdWy[{U3ӳ3a0+f1F !HI7x,g~Swoߟk03֫6Y,bMWr?[?;j1񪴜S|zoY|쳷S;s%>sj\3Җ\+A {?+%y2 P/=S .>٘cƘ2j;_ 'VF;k wN;njYo9-dG-ӿw?ӟ=B()9 4&0L.~$%KL(K~| _ѹ|h#B4xۍKx`Fi猆F?Ikm!qcQ%7 BY`x)uJRc|'g8w:{S@6s:.&R0 =y;zRJß[޲t_}&[i؋.YoKU!Ejg;*sf[)y@E ^G٠L^B6v@$9J@YJ@cp@hs;}jP `8V\Ib+~fժR9֘0r#?chEb5USб2wdЙBDEF(ՠ-4ƶu ra"nR͜>Y1U @2q{78asC^,yr\ģ'\kW!WbJCvFdIJjDS2B #l\S8IMJV@]e߳83lu2mu6ZYÿvW녙th6jLLX{wNgy=;wd#lm'Y,}T[ 6NsD:bj^tG)ǟ{Mo󙝇{.[Fxt+(M AElZET'12nF/"QlҜ02J+%Am D)C~l"oKm! dn[yǹOyԣ%!)RjV)5jK)kRJ8L]" i昭nil M3"݄"OZVc6F.[#7UPxSDq[kSkmbst!D@<ߪv:;f4ZG(9Α) /Í#$'eZbkAx>.v^ @^޶ֶMkmZ+1Ba1BITn+$:vgjT3p$(c'h3Mr&&4 HPiz6%t N;jZkT!Xp55afvVhCE4Mb"Ռ7N:!hk3\ Jr$PF;* 6|k1L5!D0?9uY>@1nRIiĒ:6/ʉ Ɉ2ֶhQ8r\g*h^1b!D`E`3U @=v޴V0M "I $ 2.f[ `uu{W[Bkg^ ,hkB$Z;֎$W|?Ԭ7pGjz}أO<,mFWu̥O]{l#3-R=И^ZI+~`6t kur>dZ֒8Ɋ3T̬\3*_;w.6?:p`f9zDgnĮKk)ԆfBXJ Zztx{n޿w5g1IT+dy&,#I0 |$[7 n[H^ѷΏN8%>Zq^sw~) !zvb(pd:H(4IyFRE IZQ=.TZpZ%^+x:򖛿!If)I>3\Gh)cTZ)cGQz@զ2rGKkkHuNIApn˅^R7a@ݡ.QuԽ];vuZ!T}jQNRT+UfXC 0&' B?LKRnsu^\yJ yv~1qFCbðpq1 !B@K)m!)W.|;}?QS 4,JV~ okwN33^zb8)q]Yx2a%b !TVTRqr)egi9#o$4Ea,Q<ׄQ\|+eƽ®z@$GIL/c&J~TN\^VmR1h!e/4OQ ]$q]_x^Dh1'{&o f@&`%4j.)!DF 4n)4ιJڻ0n^@eB'qa_|9?R5-oL Jkgѣ␰4`aaA}l6fxӾVn_LLy^8 +)," }MR]gU/mCCҀ/ \KylA[_/M-uǽv%Jy#҄Dv @tpPKQq?66*y |tKRRUVen~bՊ5.emmqAI}y`=Nm+_ϾNiJg3ޤW e)q+|%Ķ;^s1aIENDB`(uuay)iconview_edit.c"/* Icon View/Editing and Drag-and-Drop * * The GtkIconView widget supports Editing and Drag-and-Drop. * This example also demonstrates using the generic GtkCellLayout * interface to set up cell renderers in an icon view. */ #include #include static GtkWidget *window = NULL; enum { COL_TEXT, NUM_COLS }; static void fill_store (GtkListStore *store) { GtkTreeIter iter; const gchar *text[] = { "Red", "Green", "Blue", "Yellow" }; gint i; /* First clear the store */ gtk_list_store_clear (store); for (i = 0; i < 4; i++) { gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, COL_TEXT, text[i], -1); } } static GtkListStore * create_store (void) { GtkListStore *store; store = gtk_list_store_new (NUM_COLS, G_TYPE_STRING); return store; } static void set_cell_color (GtkCellLayout *cell_layout, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { gchar *text; GdkRGBA color; guint32 pixel = 0; GdkPixbuf *pixbuf; gtk_tree_model_get (tree_model, iter, COL_TEXT, &text, -1); if (!text) return; if (gdk_rgba_parse (&color, text)) pixel = ((gint)(color.red * 255)) << 24 | ((gint)(color.green * 255)) << 16 | ((gint)(color.blue * 255)) << 8 | ((gint)(color.alpha * 255)); g_free (text); pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, 24, 24); gdk_pixbuf_fill (pixbuf, pixel); g_object_set (cell, "pixbuf", pixbuf, NULL); g_object_unref (pixbuf); } static void edited (GtkCellRendererText *cell, gchar *path_string, gchar *text, gpointer data) { GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path; model = gtk_icon_view_get_model (GTK_ICON_VIEW (data)); path = gtk_tree_path_new_from_string (path_string); gtk_tree_model_get_iter (model, &iter, path); gtk_list_store_set (GTK_LIST_STORE (model), &iter, COL_TEXT, text, -1); gtk_tree_path_free (path); } GtkWidget * do_iconview_edit (GtkWidget *do_widget) { if (!window) { GtkWidget *icon_view; GtkListStore *store; GtkCellRenderer *renderer; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Editing and Drag-and-Drop"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); store = create_store (); fill_store (store); icon_view = gtk_icon_view_new_with_model (GTK_TREE_MODEL (store)); g_object_unref (store); gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (icon_view), GTK_SELECTION_SINGLE); gtk_icon_view_set_item_orientation (GTK_ICON_VIEW (icon_view), GTK_ORIENTATION_HORIZONTAL); gtk_icon_view_set_columns (GTK_ICON_VIEW (icon_view), 2); gtk_icon_view_set_reorderable (GTK_ICON_VIEW (icon_view), TRUE); renderer = gtk_cell_renderer_pixbuf_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (icon_view), renderer, TRUE); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (icon_view), renderer, set_cell_color, NULL, NULL); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (icon_view), renderer, TRUE); g_object_set (renderer, "editable", TRUE, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (edited), icon_view); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (icon_view), renderer, "text", COL_TEXT, NULL); gtk_container_add (GTK_CONTAINER (window), icon_view); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)editable_cells.c./* Tree View/Editable Cells * * This demo demonstrates the use of editable cells in a GtkTreeView. If * you're new to the GtkTreeView widgets and associates, look into * the GtkListStore example first. It also shows how to use the * GtkCellRenderer::editing-started signal to do custom setup of the * editable widget. * * The cell renderers used in this demo are GtkCellRendererText, * GtkCellRendererCombo and GtkCellRendererProgress. */ #include #include #include static GtkWidget *window = NULL; typedef struct { gint number; gchar *product; gint yummy; } Item; enum { COLUMN_ITEM_NUMBER, COLUMN_ITEM_PRODUCT, COLUMN_ITEM_YUMMY, NUM_ITEM_COLUMNS }; enum { COLUMN_NUMBER_TEXT, NUM_NUMBER_COLUMNS }; static GArray *articles = NULL; static void add_items (void) { Item foo; g_return_if_fail (articles != NULL); foo.number = 3; foo.product = g_strdup ("bottles of coke"); foo.yummy = 20; g_array_append_vals (articles, &foo, 1); foo.number = 5; foo.product = g_strdup ("packages of noodles"); foo.yummy = 50; g_array_append_vals (articles, &foo, 1); foo.number = 2; foo.product = g_strdup ("packages of chocolate chip cookies"); foo.yummy = 90; g_array_append_vals (articles, &foo, 1); foo.number = 1; foo.product = g_strdup ("can vanilla ice cream"); foo.yummy = 60; g_array_append_vals (articles, &foo, 1); foo.number = 6; foo.product = g_strdup ("eggs"); foo.yummy = 10; g_array_append_vals (articles, &foo, 1); } static GtkTreeModel * create_items_model (void) { gint i = 0; GtkListStore *model; GtkTreeIter iter; /* create array */ articles = g_array_sized_new (FALSE, FALSE, sizeof (Item), 1); add_items (); /* create list store */ model = gtk_list_store_new (NUM_ITEM_COLUMNS, G_TYPE_INT, G_TYPE_STRING, G_TYPE_INT, G_TYPE_BOOLEAN); /* add items */ for (i = 0; i < articles->len; i++) { gtk_list_store_append (model, &iter); gtk_list_store_set (model, &iter, COLUMN_ITEM_NUMBER, g_array_index (articles, Item, i).number, COLUMN_ITEM_PRODUCT, g_array_index (articles, Item, i).product, COLUMN_ITEM_YUMMY, g_array_index (articles, Item, i).yummy, -1); } return GTK_TREE_MODEL (model); } static GtkTreeModel * create_numbers_model (void) { #define N_NUMBERS 10 gint i = 0; GtkListStore *model; GtkTreeIter iter; /* create list store */ model = gtk_list_store_new (NUM_NUMBER_COLUMNS, G_TYPE_STRING, G_TYPE_INT); /* add numbers */ for (i = 0; i < N_NUMBERS; i++) { char str[2]; str[0] = '0' + i; str[1] = '\0'; gtk_list_store_append (model, &iter); gtk_list_store_set (model, &iter, COLUMN_NUMBER_TEXT, str, -1); } return GTK_TREE_MODEL (model); #undef N_NUMBERS } static void add_item (GtkWidget *button, gpointer data) { Item foo; GtkTreeIter current, iter; GtkTreePath *path; GtkTreeModel *model; GtkTreeViewColumn *column; GtkTreeView *treeview = (GtkTreeView *)data; g_return_if_fail (articles != NULL); foo.number = 0; foo.product = g_strdup ("Description here"); foo.yummy = 50; g_array_append_vals (articles, &foo, 1); /* Insert a new row below the current one */ gtk_tree_view_get_cursor (treeview, &path, NULL); model = gtk_tree_view_get_model (treeview); if (path) { gtk_tree_model_get_iter (model, ¤t, path); gtk_tree_path_free (path); gtk_list_store_insert_after (GTK_LIST_STORE (model), &iter, ¤t); } else { gtk_list_store_insert (GTK_LIST_STORE (model), &iter, -1); } /* Set the data for the new row */ gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_ITEM_NUMBER, foo.number, COLUMN_ITEM_PRODUCT, foo.product, COLUMN_ITEM_YUMMY, foo.yummy, -1); /* Move focus to the new row */ path = gtk_tree_model_get_path (model, &iter); column = gtk_tree_view_get_column (treeview, 0); gtk_tree_view_set_cursor (treeview, path, column, FALSE); gtk_tree_path_free (path); } static void remove_item (GtkWidget *widget, gpointer data) { GtkTreeIter iter; GtkTreeView *treeview = (GtkTreeView *)data; GtkTreeModel *model = gtk_tree_view_get_model (treeview); GtkTreeSelection *selection = gtk_tree_view_get_selection (treeview); if (gtk_tree_selection_get_selected (selection, NULL, &iter)) { gint i; GtkTreePath *path; path = gtk_tree_model_get_path (model, &iter); i = gtk_tree_path_get_indices (path)[0]; gtk_list_store_remove (GTK_LIST_STORE (model), &iter); g_array_remove_index (articles, i); gtk_tree_path_free (path); } } static gboolean separator_row (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { GtkTreePath *path; gint idx; path = gtk_tree_model_get_path (model, iter); idx = gtk_tree_path_get_indices (path)[0]; gtk_tree_path_free (path); return idx == 5; } static void editing_started (GtkCellRenderer *cell, GtkCellEditable *editable, const gchar *path, gpointer data) { gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (editable), separator_row, NULL, NULL); } static void cell_edited (GtkCellRendererText *cell, const gchar *path_string, const gchar *new_text, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreePath *path = gtk_tree_path_new_from_string (path_string); GtkTreeIter iter; gint column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (cell), "column")); gtk_tree_model_get_iter (model, &iter, path); switch (column) { case COLUMN_ITEM_NUMBER: { gint i; i = gtk_tree_path_get_indices (path)[0]; g_array_index (articles, Item, i).number = atoi (new_text); gtk_list_store_set (GTK_LIST_STORE (model), &iter, column, g_array_index (articles, Item, i).number, -1); } break; case COLUMN_ITEM_PRODUCT: { gint i; gchar *old_text; gtk_tree_model_get (model, &iter, column, &old_text, -1); g_free (old_text); i = gtk_tree_path_get_indices (path)[0]; g_free (g_array_index (articles, Item, i).product); g_array_index (articles, Item, i).product = g_strdup (new_text); gtk_list_store_set (GTK_LIST_STORE (model), &iter, column, g_array_index (articles, Item, i).product, -1); } break; } gtk_tree_path_free (path); } static void add_columns (GtkTreeView *treeview, GtkTreeModel *items_model, GtkTreeModel *numbers_model) { GtkCellRenderer *renderer; /* number column */ renderer = gtk_cell_renderer_combo_new (); g_object_set (renderer, "model", numbers_model, "text-column", COLUMN_NUMBER_TEXT, "has-entry", FALSE, "editable", TRUE, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), items_model); g_signal_connect (renderer, "editing-started", G_CALLBACK (editing_started), NULL); g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_ITEM_NUMBER)); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Number", renderer, "text", COLUMN_ITEM_NUMBER, NULL); /* product column */ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "editable", TRUE, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), items_model); g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_ITEM_PRODUCT)); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Product", renderer, "text", COLUMN_ITEM_PRODUCT, NULL); /* yummy column */ renderer = gtk_cell_renderer_progress_new (); g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_ITEM_YUMMY)); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Yummy", renderer, "value", COLUMN_ITEM_YUMMY, NULL); } GtkWidget * do_editable_cells (GtkWidget *do_widget) { if (!window) { GtkWidget *vbox; GtkWidget *hbox; GtkWidget *sw; GtkWidget *treeview; GtkWidget *button; GtkTreeModel *items_model; GtkTreeModel *numbers_model; /* create window, etc */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Shopping list"); gtk_container_set_border_width (GTK_CONTAINER (window), 5); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_box_pack_start (GTK_BOX (vbox), gtk_label_new ("Shopping list (you can edit the cells!)"), FALSE, FALSE, 0); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); /* create models */ items_model = create_items_model (); numbers_model = create_numbers_model (); /* create tree view */ treeview = gtk_tree_view_new_with_model (items_model); gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), GTK_SELECTION_SINGLE); add_columns (GTK_TREE_VIEW (treeview), items_model, numbers_model); g_object_unref (numbers_model); g_object_unref (items_model); gtk_container_add (GTK_CONTAINER (sw), treeview); /* some buttons */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); gtk_box_set_homogeneous (GTK_BOX (hbox), TRUE); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); button = gtk_button_new_with_label ("Add item"); g_signal_connect (button, "clicked", G_CALLBACK (add_item), treeview); gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); button = gtk_button_new_with_label ("Remove item"); g_signal_connect (button, "clicked", G_CALLBACK (remove_item), treeview); gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_window_set_default_size (GTK_WINDOW (window), 320, 200); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)spinner.c /* Spinner * * GtkSpinner allows to show that background activity is on-going. * */ #include #include static GtkWidget *window = NULL; static GtkWidget *spinner_sensitive = NULL; static GtkWidget *spinner_unsensitive = NULL; static void on_play_clicked (GtkButton *button, gpointer user_data) { gtk_spinner_start (GTK_SPINNER (spinner_sensitive)); gtk_spinner_start (GTK_SPINNER (spinner_unsensitive)); } static void on_stop_clicked (GtkButton *button, gpointer user_data) { gtk_spinner_stop (GTK_SPINNER (spinner_sensitive)); gtk_spinner_stop (GTK_SPINNER (spinner_unsensitive)); } GtkWidget * do_spinner (GtkWidget *do_widget) { GtkWidget *content_area; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *button; GtkWidget *spinner; if (!window) { window = gtk_dialog_new_with_buttons ("GtkSpinner", GTK_WINDOW (do_widget), 0, _("_Close"), GTK_RESPONSE_NONE, NULL); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); content_area = gtk_dialog_get_content_area (GTK_DIALOG (window)); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); /* Sensitive */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); spinner = gtk_spinner_new (); gtk_container_add (GTK_CONTAINER (hbox), spinner); gtk_container_add (GTK_CONTAINER (hbox), gtk_entry_new ()); gtk_container_add (GTK_CONTAINER (vbox), hbox); spinner_sensitive = spinner; /* Disabled */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); spinner = gtk_spinner_new (); gtk_container_add (GTK_CONTAINER (hbox), spinner); gtk_container_add (GTK_CONTAINER (hbox), gtk_entry_new ()); gtk_container_add (GTK_CONTAINER (vbox), hbox); spinner_unsensitive = spinner; gtk_widget_set_sensitive (hbox, FALSE); button = gtk_button_new_with_label (_("Play")); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (on_play_clicked), spinner); gtk_container_add (GTK_CONTAINER (vbox), button); button = gtk_button_new_with_label (_("Stop")); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (on_stop_clicked), spinner); gtk_container_add (GTK_CONTAINER (vbox), button); /* Start by default to test for: * https://bugzilla.gnome.org/show_bug.cgi?id=598496 */ on_play_clicked (NULL, NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)popover.c/* Popovers * * A bubble-like window containing contextual information or options. * GtkPopovers can be attached to any widget, and will be displayed * within the same window, but on top of all its content. */ #include static void toggle_changed_cb (GtkToggleButton *button, GtkWidget *popover) { gtk_widget_set_visible (popover, gtk_toggle_button_get_active (button)); } static GtkWidget * create_popover (GtkWidget *parent, GtkWidget *child, GtkPositionType pos) { GtkWidget *popover; popover = gtk_popover_new (parent); gtk_popover_set_position (GTK_POPOVER (popover), pos); gtk_container_add (GTK_CONTAINER (popover), child); gtk_container_set_border_width (GTK_CONTAINER (popover), 6); gtk_widget_show (child); return popover; } static GtkWidget * create_complex_popover (GtkWidget *parent, GtkPositionType pos) { GtkWidget *popover, *window, *content; GtkBuilder *builder; builder = gtk_builder_new (); gtk_builder_add_from_resource (builder, "/popover/popover.ui", NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window")); content = gtk_bin_get_child (GTK_BIN (window)); g_object_ref (content); gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (content)), content); gtk_widget_destroy (window); g_object_unref (builder); popover = create_popover (parent, content, GTK_POS_BOTTOM); g_object_unref (content); gtk_widget_set_size_request (popover, 200, -1); gtk_widget_set_vexpand (popover, TRUE); gtk_widget_set_margin_start (popover, 10); gtk_widget_set_margin_end (popover, 10); gtk_widget_set_margin_bottom (popover, 10); return popover; } static void entry_size_allocate_cb (GtkEntry *entry, GtkAllocation *allocation, gpointer user_data) { GtkEntryIconPosition popover_pos; GtkPopover *popover = user_data; cairo_rectangle_int_t rect; if (gtk_widget_is_visible (GTK_WIDGET (popover))) { popover_pos = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (entry), "popover-icon-pos")); gtk_entry_get_icon_area (entry, popover_pos, &rect); gtk_popover_set_pointing_to (GTK_POPOVER (popover), &rect); } } static void entry_icon_press_cb (GtkEntry *entry, GtkEntryIconPosition icon_pos, GdkEvent *event, gpointer user_data) { GtkWidget *popover = user_data; cairo_rectangle_int_t rect; gtk_entry_get_icon_area (entry, icon_pos, &rect); gtk_popover_set_pointing_to (GTK_POPOVER (popover), &rect); gtk_widget_show (popover); g_object_set_data (G_OBJECT (entry), "popover-icon-pos", GUINT_TO_POINTER (icon_pos)); } static void day_selected_cb (GtkCalendar *calendar, gpointer user_data) { cairo_rectangle_int_t rect; GtkAllocation allocation; GtkWidget *popover; GdkEvent *event; event = gtk_get_current_event (); if (event->type != GDK_BUTTON_PRESS) return; gdk_window_coords_to_parent (event->button.window, event->button.x, event->button.y, &event->button.x, &event->button.y); gtk_widget_get_allocation (GTK_WIDGET (calendar), &allocation); rect.x = event->button.x - allocation.x; rect.y = event->button.y - allocation.y; rect.width = rect.height = 1; popover = create_popover (GTK_WIDGET (calendar), gtk_entry_new (), GTK_POS_BOTTOM); gtk_popover_set_pointing_to (GTK_POPOVER (popover), &rect); gtk_widget_show (popover); gdk_event_free (event); } GtkWidget * do_popover (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *popover, *box, *widget; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 24); gtk_container_set_border_width (GTK_CONTAINER (box), 24); gtk_container_add (GTK_CONTAINER (window), box); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); widget = gtk_toggle_button_new_with_label ("Button"); popover = create_popover (widget, gtk_label_new ("This popover does not grab input"), GTK_POS_TOP); gtk_popover_set_modal (GTK_POPOVER (popover), FALSE); g_signal_connect (widget, "toggled", G_CALLBACK (toggle_changed_cb), popover); gtk_container_add (GTK_CONTAINER (box), widget); widget = gtk_entry_new (); popover = create_complex_popover (widget, GTK_POS_TOP); gtk_entry_set_icon_from_icon_name (GTK_ENTRY (widget), GTK_ENTRY_ICON_PRIMARY, "edit-find"); gtk_entry_set_icon_from_icon_name (GTK_ENTRY (widget), GTK_ENTRY_ICON_SECONDARY, "edit-clear"); g_signal_connect (widget, "icon-press", G_CALLBACK (entry_icon_press_cb), popover); g_signal_connect (widget, "size-allocate", G_CALLBACK (entry_size_allocate_cb), popover); gtk_container_add (GTK_CONTAINER (box), widget); widget = gtk_calendar_new (); g_signal_connect (widget, "day-selected", G_CALLBACK (day_selected_cb), NULL); gtk_container_add (GTK_CONTAINER (box), widget); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)images/)css_shadows/ Szcss_accordion/>upickers.cf /* Pickers * * These widgets are mainly intended for use in preference dialogs. * They allow to select colors, fonts, files, directories and applications. */ #include GtkWidget * do_pickers (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *table, *label, *picker; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Pickers"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); table = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (table), 3); gtk_grid_set_column_spacing (GTK_GRID (table), 10); gtk_container_add (GTK_CONTAINER (window), table); gtk_container_set_border_width (GTK_CONTAINER (table), 10); label = gtk_label_new ("Color:"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_widget_set_hexpand (label, TRUE); picker = gtk_color_button_new (); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); gtk_grid_attach (GTK_GRID (table), picker, 1, 0, 1, 1); label = gtk_label_new ("Font:"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_widget_set_hexpand (label, TRUE); picker = gtk_font_button_new (); gtk_grid_attach (GTK_GRID (table), label, 0, 1, 1, 1); gtk_grid_attach (GTK_GRID (table), picker, 1, 1, 1, 1); label = gtk_label_new ("File:"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_widget_set_hexpand (label, TRUE); picker = gtk_file_chooser_button_new ("Pick a File", GTK_FILE_CHOOSER_ACTION_OPEN); gtk_grid_attach (GTK_GRID (table), label, 0, 2, 1, 1); gtk_grid_attach (GTK_GRID (table), picker, 1, 2, 1, 1); label = gtk_label_new ("Folder:"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); picker = gtk_file_chooser_button_new ("Pick a Folder", GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER); gtk_grid_attach (GTK_GRID (table), label, 0, 3, 1, 1); gtk_grid_attach (GTK_GRID (table), picker, 1, 3, 1, 1); label = gtk_label_new ("Mail:"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_widget_set_hexpand (label, TRUE); picker = gtk_app_chooser_button_new ("x-scheme-handler/mailto"); gtk_app_chooser_button_set_show_dialog_item (GTK_APP_CHOOSER_BUTTON (picker), TRUE); gtk_grid_attach (GTK_GRID (table), label, 0, 4, 1, 1); gtk_grid_attach (GTK_GRID (table), picker, 1, 4, 1, 1); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)listbox.c-/* List Box * * GtkListBox allows lists with complicated layouts, using * regular widgets supporting sorting and filtering. * */ #include #include #include static GdkPixbuf *avatar_pixbuf_other; static GtkWidget *window = NULL; #define GTK_TYPE_MESSAGE (gtk_message_get_type ()) #define GTK_MESSAGE(message) (G_TYPE_CHECK_INSTANCE_CAST ((message), GTK_TYPE_MESSAGE, GtkMessage)) #define GTK_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_MESSAGE, GtkMessageClass)) #define GTK_IS_MESSAGE(message) (G_TYPE_CHECK_INSTANCE_TYPE ((message), GTK_TYPE_MESSAGE)) #define GTK_IS_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_MESSAGE)) #define GTK_MESSAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_MESSAGE, GtkMessageClass)) #define GTK_TYPE_MESSAGE_ROW (gtk_message_row_get_type ()) #define GTK_MESSAGE_ROW(message_row) (G_TYPE_CHECK_INSTANCE_CAST ((message_row), GTK_TYPE_MESSAGE_ROW, GtkMessageRow)) #define GTK_MESSAGE_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_MESSAGE_ROW, GtkMessageRowClass)) #define GTK_IS_MESSAGE_ROW(message_row) (G_TYPE_CHECK_INSTANCE_TYPE ((message_row), GTK_TYPE_MESSAGE_ROW)) #define GTK_IS_MESSAGE_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_MESSAGE_ROW)) #define GTK_MESSAGE_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_MESSAGE_ROW, GtkMessageRowClass)) typedef struct _GtkMessage GtkMessage; typedef struct _GtkMessageClass GtkMessageClass; typedef struct _GtkMessageRow GtkMessageRow; typedef struct _GtkMessageRowClass GtkMessageRowClass; typedef struct _GtkMessageRowPrivate GtkMessageRowPrivate; struct _GtkMessage { GObject parent; guint id; char *sender_name; char *sender_nick; char *message; gint64 time; guint reply_to; char *resent_by; int n_favorites; int n_reshares; }; struct _GtkMessageClass { GObjectClass parent_class; }; struct _GtkMessageRow { GtkListBoxRow parent; GtkMessageRowPrivate *priv; }; struct _GtkMessageRowClass { GtkListBoxRowClass parent_class; }; struct _GtkMessageRowPrivate { GtkMessage *message; GtkRevealer *details_revealer; GtkImage *avatar_image; GtkWidget *extra_buttons_box; GtkLabel *content_label; GtkLabel *source_name; GtkLabel *source_nick; GtkLabel *short_time_label; GtkLabel *detailed_time_label; GtkBox *resent_box; GtkLinkButton *resent_by_button; GtkLabel *n_favorites_label; GtkLabel *n_reshares_label; GtkButton *expand_button; }; GType gtk_message_get_type (void) G_GNUC_CONST; GType gtk_message_row_get_type (void) G_GNUC_CONST; G_DEFINE_TYPE (GtkMessage, gtk_message, G_TYPE_OBJECT); static void gtk_message_class_init (GtkMessageClass *klass) { } static void gtk_message_init (GtkMessage *msg) { } static void gtk_message_parse (GtkMessage *msg, const char *str) { char **strv; int i; strv = g_strsplit (str, "|", 0); i = 0; msg->id = strtol (strv[i++], NULL, 10); msg->sender_name = g_strdup (strv[i++]); msg->sender_nick = g_strdup (strv[i++]); msg->message = g_strdup (strv[i++]); msg->time = strtol (strv[i++], NULL, 10); if (strv[i]) { msg->reply_to = strtol (strv[i++], NULL, 10); if (strv[i]) { if (*strv[i]) msg->resent_by = g_strdup (strv[i]); i++; if (strv[i]) { msg->n_favorites = strtol (strv[i++], NULL, 10); if (strv[i]) { msg->n_reshares = strtol (strv[i++], NULL, 10); } } } } g_strfreev (strv); } static GtkMessage * gtk_message_new (const char *str) { GtkMessage *msg; msg = g_object_new (gtk_message_get_type (), NULL); gtk_message_parse (msg, str); return msg; } G_DEFINE_TYPE_WITH_PRIVATE (GtkMessageRow, gtk_message_row, GTK_TYPE_LIST_BOX_ROW); static void gtk_message_row_update (GtkMessageRow *row) { GtkMessageRowPrivate *priv = row->priv; GDateTime *t; char *s; gtk_label_set_text (priv->source_name, priv->message->sender_name); gtk_label_set_text (priv->source_nick, priv->message->sender_nick); gtk_label_set_text (priv->content_label, priv->message->message); t = g_date_time_new_from_unix_utc (priv->message->time); s = g_date_time_format (t, "%e %b %y"); gtk_label_set_text (priv->short_time_label, s); g_free (s); s = g_date_time_format (t, "%X - %e %b %Y"); gtk_label_set_text (priv->detailed_time_label, s); g_free (s); gtk_widget_set_visible (GTK_WIDGET(priv->n_favorites_label), priv->message->n_favorites != 0); s = g_strdup_printf ("%d\nFavorites", priv->message->n_favorites); gtk_label_set_markup (priv->n_favorites_label, s); g_free (s); gtk_widget_set_visible (GTK_WIDGET(priv->n_reshares_label), priv->message->n_reshares != 0); s = g_strdup_printf ("%d\nReshares", priv->message->n_reshares); gtk_label_set_markup (priv->n_reshares_label, s); g_free (s); gtk_widget_set_visible (GTK_WIDGET (priv->resent_box), priv->message->resent_by != NULL); if (priv->message->resent_by) gtk_button_set_label (GTK_BUTTON (priv->resent_by_button), priv->message->resent_by); if (strcmp (priv->message->sender_nick, "@GTKtoolkit") == 0) gtk_image_set_from_icon_name (priv->avatar_image, "gtk3-demo", GTK_ICON_SIZE_DND); else gtk_image_set_from_pixbuf (priv->avatar_image, avatar_pixbuf_other); } static void gtk_message_row_expand (GtkMessageRow *row) { GtkMessageRowPrivate *priv = row->priv; gboolean expand; expand = !gtk_revealer_get_reveal_child (priv->details_revealer); gtk_revealer_set_reveal_child (priv->details_revealer, expand); if (expand) gtk_button_set_label (priv->expand_button, "Hide"); else gtk_button_set_label (priv->expand_button, "Expand"); } static void expand_clicked (GtkMessageRow *row, GtkButton *button) { gtk_message_row_expand (row); } static void reshare_clicked (GtkMessageRow *row, GtkButton *button) { GtkMessageRowPrivate *priv = row->priv; priv->message->n_reshares++; gtk_message_row_update (row); } static void favorite_clicked (GtkMessageRow *row, GtkButton *button) { GtkMessageRowPrivate *priv = row->priv; priv->message->n_favorites++; gtk_message_row_update (row); } static void gtk_message_row_state_flags_changed (GtkWidget *widget, GtkStateFlags previous_state_flags) { GtkMessageRowPrivate *priv = GTK_MESSAGE_ROW (widget)->priv; GtkStateFlags flags; flags = gtk_widget_get_state_flags (widget); gtk_widget_set_visible (priv->extra_buttons_box, flags & (GTK_STATE_FLAG_PRELIGHT | GTK_STATE_FLAG_SELECTED)); GTK_WIDGET_CLASS (gtk_message_row_parent_class)->state_flags_changed (widget, previous_state_flags); } static void gtk_message_row_class_init (GtkMessageRowClass *klass) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); gtk_widget_class_set_template_from_resource (widget_class, "/listbox/listbox.ui"); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, content_label); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, source_name); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, source_nick); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, short_time_label); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, detailed_time_label); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, extra_buttons_box); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, details_revealer); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, avatar_image); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, resent_box); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, resent_by_button); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, n_reshares_label); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, n_favorites_label); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, expand_button); gtk_widget_class_bind_template_callback (widget_class, expand_clicked); gtk_widget_class_bind_template_callback (widget_class, reshare_clicked); gtk_widget_class_bind_template_callback (widget_class, favorite_clicked); widget_class->state_flags_changed = gtk_message_row_state_flags_changed; } static void gtk_message_row_init (GtkMessageRow *row) { row->priv = gtk_message_row_get_instance_private (row); gtk_widget_init_template (GTK_WIDGET (row)); } static GtkMessageRow * gtk_message_row_new (GtkMessage *message) { GtkMessageRow *row; row = g_object_new (gtk_message_row_get_type (), NULL); row->priv->message = message; gtk_message_row_update (row); return row; } static int gtk_message_row_sort (GtkMessageRow *a, GtkMessageRow *b, gpointer data) { return a->priv->message->time - b->priv->message->time; } static void row_activated (GtkListBox *listbox, GtkListBoxRow *row) { gtk_message_row_expand (GTK_MESSAGE_ROW (row)); } GtkWidget * do_listbox (GtkWidget *do_widget) { GtkWidget *scrolled, *listbox, *vbox, *label; GtkMessage *message; GtkMessageRow *row; GBytes *data; char **lines; int i; if (!window) { avatar_pixbuf_other = gdk_pixbuf_new_from_resource_at_scale ("/listbox/apple-red.png", 32, 32, FALSE, NULL); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "List Box"); gtk_window_set_default_size (GTK_WINDOW (window), 400, 600); /* NULL window variable when window is closed */ g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); gtk_container_add (GTK_CONTAINER (window), vbox); label = gtk_label_new ("Messages from Gtk+ and friends"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), scrolled, TRUE, TRUE, 0); listbox = gtk_list_box_new (); gtk_container_add (GTK_CONTAINER (scrolled), listbox); gtk_list_box_set_sort_func (GTK_LIST_BOX (listbox), (GtkListBoxSortFunc)gtk_message_row_sort, listbox, NULL); gtk_list_box_set_activate_on_single_click (GTK_LIST_BOX (listbox), FALSE); g_signal_connect (listbox, "row-activated", G_CALLBACK (row_activated), NULL); gtk_widget_show_all (vbox); data = g_resources_lookup_data ("/listbox/messages.txt", 0, NULL); lines = g_strsplit (g_bytes_get_data (data, NULL), "\n", 0); for (i = 0; lines[i] != NULL && *lines[i]; i++) { message = gtk_message_new (lines[i]); row = gtk_message_row_new (message); gtk_widget_show (GTK_WIDGET (row)); gtk_container_add (GTK_CONTAINER (listbox), GTK_WIDGET (row)); } g_strfreev (lines); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } (uuay)theming.ui7 6 vertical True False True False False True False False Normal True True edit-find False True False True False False Active True True edit-find True False True False True False False Insensitive True True edit-find False True False True False Raised True True edit-find-symbolic False True False True False Raised Active True True edit-find-symbolic True False True False True False False Insensitive Active True edit-find True True False True False True False True True Search... edit-find-symbolic False False True False True True False True False horizontal center center Hi, I am a button False True True True False False True 0 And I'm another button False True True True False False True 1 This is a button party! False True True True False False True 2 True False True 1 False True False False Normal True list-add-symbolic False True False True False False Normal True list-add-symbolic False True False True False False Active True list-remove-symbolic True False True False True False False Active True list-remove-symbolic True False True False True False False False Insensitive True edit-find-symbolic False True False True False False False Insensitive Active True go-up-symbolic True False True (uuay)gestures.c/* Gestures * * Perform gestures on touchscreens and other input devices. This * demo reacts to long presses and swipes from all devices, plus * multi-touch rotate and zoom gestures. */ #include static GtkWidget *window = NULL; static GtkGesture *rotate = NULL; static GtkGesture *zoom = NULL; static gdouble swipe_x = 0; static gdouble swipe_y = 0; static gboolean long_pressed = FALSE; static void swipe_gesture_swept (GtkGestureSwipe *gesture, gdouble velocity_x, gdouble velocity_y, GtkWidget *widget) { swipe_x = velocity_x / 10; swipe_y = velocity_y / 10; gtk_widget_queue_draw (widget); } static void long_press_gesture_pressed (GtkGestureLongPress *gesture, gdouble x, gdouble y, GtkWidget *widget) { long_pressed = TRUE; gtk_widget_queue_draw (widget); } static void long_press_gesture_end (GtkGesture *gesture, GdkEventSequence *sequence, GtkWidget *widget) { long_pressed = FALSE; gtk_widget_queue_draw (widget); } static void rotation_angle_changed (GtkGestureRotate *gesture, gdouble angle, gdouble delta, GtkWidget *widget) { gtk_widget_queue_draw (widget); } static void zoom_scale_changed (GtkGestureZoom *gesture, gdouble scale, GtkWidget *widget) { gtk_widget_queue_draw (widget); } static gboolean drawing_area_draw (GtkWidget *widget, cairo_t *cr) { GtkAllocation allocation; gtk_widget_get_allocation (widget, &allocation); if (swipe_x != 0 || swipe_y != 0) { cairo_save (cr); cairo_set_line_width (cr, 6); cairo_move_to (cr, allocation.width / 2, allocation.height / 2); cairo_rel_line_to (cr, swipe_x, swipe_y); cairo_set_source_rgba (cr, 1, 0, 0, 0.5); cairo_stroke (cr); cairo_restore (cr); } if (gtk_gesture_is_recognized (rotate) || gtk_gesture_is_recognized (zoom)) { cairo_pattern_t *pat; cairo_matrix_t matrix; gdouble angle, scale; cairo_matrix_init_translate (&matrix, allocation.width / 2, allocation.height / 2); cairo_save (cr); angle = gtk_gesture_rotate_get_angle_delta (GTK_GESTURE_ROTATE (rotate)); cairo_matrix_rotate (&matrix, angle); scale = gtk_gesture_zoom_get_scale_delta (GTK_GESTURE_ZOOM (zoom)); cairo_matrix_scale (&matrix, scale, scale); cairo_set_matrix (cr, &matrix); cairo_rectangle (cr, -100, -100, 200, 200); pat = cairo_pattern_create_linear (-100, 0, 200, 0); cairo_pattern_add_color_stop_rgb (pat, 0, 0, 0, 1); cairo_pattern_add_color_stop_rgb (pat, 1, 1, 0, 0); cairo_set_source (cr, pat); cairo_fill (cr); cairo_restore (cr); cairo_pattern_destroy (pat); } if (long_pressed) { cairo_save (cr); cairo_arc (cr, allocation.width / 2, allocation.height / 2, 50, 0, 2 * G_PI); cairo_set_source_rgba (cr, 0, 1, 0, 0.5); cairo_stroke (cr); cairo_restore (cr); } return TRUE; } GtkWidget * do_gestures (GtkWidget *do_widget) { GtkWidget *drawing_area; GtkGesture *gesture; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 400, 400); gtk_window_set_title (GTK_WINDOW (window), "Gestures demo"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); drawing_area = gtk_drawing_area_new (); gtk_container_add (GTK_CONTAINER (window), drawing_area); gtk_widget_add_events (drawing_area, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_TOUCH_MASK); g_signal_connect (drawing_area, "draw", G_CALLBACK (drawing_area_draw), NULL); /* Swipe */ gesture = gtk_gesture_swipe_new (drawing_area); g_signal_connect (gesture, "swipe", G_CALLBACK (swipe_gesture_swept), drawing_area); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE); g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture); /* Long press */ gesture = gtk_gesture_long_press_new (drawing_area); g_signal_connect (gesture, "pressed", G_CALLBACK (long_press_gesture_pressed), drawing_area); g_signal_connect (gesture, "end", G_CALLBACK (long_press_gesture_end), drawing_area); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE); g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture); /* Rotate */ rotate = gesture = gtk_gesture_rotate_new (drawing_area); g_signal_connect (gesture, "angle-changed", G_CALLBACK (rotation_angle_changed), drawing_area); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE); g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture); /* Zoom */ zoom = gesture = gtk_gesture_zoom_new (drawing_area); g_signal_connect (gesture, "scale-changed", G_CALLBACK (zoom_scale_changed), drawing_area); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE); g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)images.c6/* Images * * GtkImage is used to display an image; the image can be in a number of formats. * Typically, you load an image into a GdkPixbuf, then display the pixbuf. * * This demo code shows some of the more obscure cases, in the simple * case a call to gtk_image_new_from_file() is all you need. * * If you want to put image data in your program as a C variable, * use the make-inline-pixbuf program that comes with GTK+. * This way you won't need to depend on loading external files, your * application binary can be self-contained. */ #include #include #include #include static GtkWidget *window = NULL; static GdkPixbufLoader *pixbuf_loader = NULL; static guint load_timeout = 0; static GInputStream * image_stream = NULL; static void progressive_prepared_callback (GdkPixbufLoader *loader, gpointer data) { GdkPixbuf *pixbuf; GtkWidget *image; image = GTK_WIDGET (data); pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); /* Avoid displaying random memory contents, since the pixbuf * isn't filled in yet. */ gdk_pixbuf_fill (pixbuf, 0xaaaaaaff); gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf); } static void progressive_updated_callback (GdkPixbufLoader *loader, gint x, gint y, gint width, gint height, gpointer data) { GtkWidget *image; GdkPixbuf *pixbuf; image = GTK_WIDGET (data); /* We know the pixbuf inside the GtkImage has changed, but the image * itself doesn't know this; so give it a hint by setting the pixbuf * again. Queuing a redraw used to be sufficient, but nowadays GtkImage * uses GtkIconHelper which caches the pixbuf state and will just redraw * from the cache. */ pixbuf = gtk_image_get_pixbuf (GTK_IMAGE (image)); g_object_ref (pixbuf); gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf); g_object_unref (pixbuf); } static gint progressive_timeout (gpointer data) { GtkWidget *image; image = GTK_WIDGET (data); /* This shows off fully-paranoid error handling, so looks scary. * You could factor out the error handling code into a nice separate * function to make things nicer. */ if (image_stream) { gssize bytes_read; guchar buf[256]; GError *error = NULL; bytes_read = g_input_stream_read (image_stream, buf, 256, NULL, &error); if (bytes_read < 0) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failure reading image file 'alphatest.png': %s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_object_unref (image_stream); image_stream = NULL; gtk_widget_show (dialog); load_timeout = 0; return FALSE; /* uninstall the timeout */ } if (!gdk_pixbuf_loader_write (pixbuf_loader, buf, bytes_read, &error)) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failed to load image: %s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_object_unref (image_stream); image_stream = NULL; gtk_widget_show (dialog); load_timeout = 0; return FALSE; /* uninstall the timeout */ } if (bytes_read == 0) { /* Errors can happen on close, e.g. if the image * file was truncated we'll know on close that * it was incomplete. */ error = NULL; if (!g_input_stream_close (image_stream, NULL, &error)) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failed to load image: %s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); g_object_unref (image_stream); image_stream = NULL; g_object_unref (pixbuf_loader); pixbuf_loader = NULL; load_timeout = 0; return FALSE; /* uninstall the timeout */ } g_object_unref (image_stream); image_stream = NULL; /* Errors can happen on close, e.g. if the image * file was truncated we'll know on close that * it was incomplete. */ error = NULL; if (!gdk_pixbuf_loader_close (pixbuf_loader, &error)) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failed to load image: %s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); g_object_unref (pixbuf_loader); pixbuf_loader = NULL; load_timeout = 0; return FALSE; /* uninstall the timeout */ } g_object_unref (pixbuf_loader); pixbuf_loader = NULL; } } else { GError *error = NULL; image_stream = g_resources_open_stream ("/images/alphatest.png", 0, &error); if (image_stream == NULL) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); load_timeout = 0; return FALSE; /* uninstall the timeout */ } if (pixbuf_loader) { gdk_pixbuf_loader_close (pixbuf_loader, NULL); g_object_unref (pixbuf_loader); } pixbuf_loader = gdk_pixbuf_loader_new (); g_signal_connect (pixbuf_loader, "area-prepared", G_CALLBACK (progressive_prepared_callback), image); g_signal_connect (pixbuf_loader, "area-updated", G_CALLBACK (progressive_updated_callback), image); } /* leave timeout installed */ return TRUE; } static void start_progressive_loading (GtkWidget *image) { /* This is obviously totally contrived (we slow down loading * on purpose to show how incremental loading works). * The real purpose of incremental loading is the case where * you are reading data from a slow source such as the network. * The timeout simply simulates a slow data source by inserting * pauses in the reading process. */ load_timeout = gdk_threads_add_timeout (150, progressive_timeout, image); g_source_set_name_by_id (load_timeout, "[gtk+] progressive_timeout"); } static void cleanup_callback (GObject *object, gpointer data) { if (load_timeout) { g_source_remove (load_timeout); load_timeout = 0; } if (pixbuf_loader) { gdk_pixbuf_loader_close (pixbuf_loader, NULL); g_object_unref (pixbuf_loader); pixbuf_loader = NULL; } if (image_stream) { g_object_unref (image_stream); image_stream = NULL; } } static void toggle_sensitivity_callback (GtkWidget *togglebutton, gpointer user_data) { GtkContainer *container = user_data; GList *list; GList *tmp; list = gtk_container_get_children (container); tmp = list; while (tmp != NULL) { /* don't disable our toggle */ if (GTK_WIDGET (tmp->data) != togglebutton) gtk_widget_set_sensitive (GTK_WIDGET (tmp->data), !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (togglebutton))); tmp = tmp->next; } g_list_free (list); } GtkWidget * do_images (GtkWidget *do_widget) { GtkWidget *frame; GtkWidget *vbox; GtkWidget *image; GtkWidget *label; GtkWidget *button; GIcon *gicon; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Images"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); g_signal_connect (window, "destroy", G_CALLBACK (cleanup_callback), NULL); gtk_container_set_border_width (GTK_CONTAINER (window), 8); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (window), vbox); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Image loaded from a file"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_widget_set_halign (frame, GTK_ALIGN_CENTER); gtk_widget_set_valign (frame, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); image = gtk_image_new_from_icon_name ("gtk3-demo", GTK_ICON_SIZE_DIALOG); gtk_container_add (GTK_CONTAINER (frame), image); /* Animation */ label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Animation loaded from a file"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_widget_set_halign (frame, GTK_ALIGN_CENTER); gtk_widget_set_valign (frame, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); image = gtk_image_new_from_resource ("/images/floppybuddy.gif"); gtk_container_add (GTK_CONTAINER (frame), image); /* Symbolic icon */ label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Symbolic themed icon"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_widget_set_halign (frame, GTK_ALIGN_CENTER); gtk_widget_set_valign (frame, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); gicon = g_themed_icon_new_with_default_fallbacks ("battery-caution-charging-symbolic"); image = gtk_image_new_from_gicon (gicon, GTK_ICON_SIZE_DIALOG); gtk_container_add (GTK_CONTAINER (frame), image); /* Progressive */ label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Progressive image loading"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_widget_set_halign (frame, GTK_ALIGN_CENTER); gtk_widget_set_valign (frame, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); /* Create an empty image for now; the progressive loader * will create the pixbuf and fill it in. */ image = gtk_image_new_from_pixbuf (NULL); gtk_container_add (GTK_CONTAINER (frame), image); start_progressive_loading (image); /* Sensitivity control */ button = gtk_toggle_button_new_with_mnemonic ("_Insensitive"); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); g_signal_connect (button, "toggled", G_CALLBACK (toggle_sensitivity_callback), vbox); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)iconview.c#/* Icon View/Icon View Basics * * The GtkIconView widget is used to display and manipulate icons. * It uses a GtkTreeModel for data storage, so the list store * example might be helpful. */ #include #include #include static GtkWidget *window = NULL; #define FOLDER_NAME "/iconview/gnome-fs-directory.png" #define FILE_NAME "/iconview/gnome-fs-regular.png" enum { COL_PATH, COL_DISPLAY_NAME, COL_PIXBUF, COL_IS_DIRECTORY, NUM_COLS }; static GdkPixbuf *file_pixbuf, *folder_pixbuf; gchar *parent; GtkToolItem *up_button; /* Loads the images for the demo and returns whether the operation succeeded */ static void load_pixbufs (void) { if (file_pixbuf) return; /* already loaded earlier */ file_pixbuf = gdk_pixbuf_new_from_resource (FILE_NAME, NULL); /* resources must load successfully */ g_assert (file_pixbuf); folder_pixbuf = gdk_pixbuf_new_from_resource (FOLDER_NAME, NULL); g_assert (folder_pixbuf); } static void fill_store (GtkListStore *store) { GDir *dir; const gchar *name; GtkTreeIter iter; /* First clear the store */ gtk_list_store_clear (store); /* Now go through the directory and extract all the file * information */ dir = g_dir_open (parent, 0, NULL); if (!dir) return; name = g_dir_read_name (dir); while (name != NULL) { gchar *path, *display_name; gboolean is_dir; /* We ignore hidden files that start with a '.' */ if (name[0] != '.') { path = g_build_filename (parent, name, NULL); is_dir = g_file_test (path, G_FILE_TEST_IS_DIR); display_name = g_filename_to_utf8 (name, -1, NULL, NULL, NULL); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, COL_PATH, path, COL_DISPLAY_NAME, display_name, COL_IS_DIRECTORY, is_dir, COL_PIXBUF, is_dir ? folder_pixbuf : file_pixbuf, -1); g_free (path); g_free (display_name); } name = g_dir_read_name (dir); } g_dir_close (dir); } static gint sort_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data) { gboolean is_dir_a, is_dir_b; gchar *name_a, *name_b; int ret; /* We need this function because we want to sort * folders before files. */ gtk_tree_model_get (model, a, COL_IS_DIRECTORY, &is_dir_a, COL_DISPLAY_NAME, &name_a, -1); gtk_tree_model_get (model, b, COL_IS_DIRECTORY, &is_dir_b, COL_DISPLAY_NAME, &name_b, -1); if (!is_dir_a && is_dir_b) ret = 1; else if (is_dir_a && !is_dir_b) ret = -1; else { ret = g_utf8_collate (name_a, name_b); } g_free (name_a); g_free (name_b); return ret; } static GtkListStore * create_store (void) { GtkListStore *store; store = gtk_list_store_new (NUM_COLS, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN); /* Set sort column and function */ gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (store), sort_func, NULL, NULL); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); return store; } static void item_activated (GtkIconView *icon_view, GtkTreePath *tree_path, gpointer user_data) { GtkListStore *store; gchar *path; GtkTreeIter iter; gboolean is_dir; store = GTK_LIST_STORE (user_data); gtk_tree_model_get_iter (GTK_TREE_MODEL (store), &iter, tree_path); gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, COL_PATH, &path, COL_IS_DIRECTORY, &is_dir, -1); if (!is_dir) { g_free (path); return; } /* Replace parent with path and re-fill the model*/ g_free (parent); parent = path; fill_store (store); /* Sensitize the up button */ gtk_widget_set_sensitive (GTK_WIDGET (up_button), TRUE); } static void up_clicked (GtkToolItem *item, gpointer user_data) { GtkListStore *store; gchar *dir_name; store = GTK_LIST_STORE (user_data); dir_name = g_path_get_dirname (parent); g_free (parent); parent = dir_name; fill_store (store); /* Maybe de-sensitize the up button */ gtk_widget_set_sensitive (GTK_WIDGET (up_button), strcmp (parent, "/") != 0); } static void home_clicked (GtkToolItem *item, gpointer user_data) { GtkListStore *store; store = GTK_LIST_STORE (user_data); g_free (parent); parent = g_strdup (g_get_home_dir ()); fill_store (store); /* Sensitize the up button */ gtk_widget_set_sensitive (GTK_WIDGET (up_button), TRUE); } static void close_window(void) { gtk_widget_destroy (window); window = NULL; g_object_unref (file_pixbuf); file_pixbuf = NULL; g_object_unref (folder_pixbuf); folder_pixbuf = NULL; } GtkWidget * do_iconview (GtkWidget *do_widget) { if (!window) { GtkWidget *sw; GtkWidget *icon_view; GtkListStore *store; GtkWidget *vbox; GtkWidget *tool_bar; GtkToolItem *home_button; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 650, 400); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "GtkIconView demo"); g_signal_connect (window, "destroy", G_CALLBACK (close_window), NULL); load_pixbufs (); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); tool_bar = gtk_toolbar_new (); gtk_box_pack_start (GTK_BOX (vbox), tool_bar, FALSE, FALSE, 0); up_button = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_label (GTK_TOOL_BUTTON (up_button), _("_Up")); gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (up_button), TRUE); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (up_button), "go-up"); gtk_tool_item_set_is_important (up_button, TRUE); gtk_widget_set_sensitive (GTK_WIDGET (up_button), FALSE); gtk_toolbar_insert (GTK_TOOLBAR (tool_bar), up_button, -1); home_button = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_label (GTK_TOOL_BUTTON (home_button), _("_Home")); gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (home_button), TRUE); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (home_button), "go-home"); gtk_tool_item_set_is_important (home_button, TRUE); gtk_toolbar_insert (GTK_TOOLBAR (tool_bar), home_button, -1); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); /* Create the store and fill it with the contents of '/' */ parent = g_strdup ("/"); store = create_store (); fill_store (store); icon_view = gtk_icon_view_new_with_model (GTK_TREE_MODEL (store)); gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (icon_view), GTK_SELECTION_MULTIPLE); g_object_unref (store); /* Connect to the "clicked" signal of the "Up" tool button */ g_signal_connect (up_button, "clicked", G_CALLBACK (up_clicked), store); /* Connect to the "clicked" signal of the "Home" tool button */ g_signal_connect (home_button, "clicked", G_CALLBACK (home_clicked), store); /* We now set which model columns that correspond to the text * and pixbuf of each item */ gtk_icon_view_set_text_column (GTK_ICON_VIEW (icon_view), COL_DISPLAY_NAME); gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (icon_view), COL_PIXBUF); /* Connect to the "item-activated" signal */ g_signal_connect (icon_view, "item-activated", G_CALLBACK (item_activated), store); gtk_container_add (GTK_CONTAINER (sw), icon_view); gtk_widget_grab_focus (icon_view); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)floppybuddy.gif`GIF89aPF  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~ぁ=v{! NETSCAPE2.0! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@H 2hJ2rD)@*0.O[vDٕ@Xsjj׶l6$٫w5mW)9-͢{,ҁEgu8 5|bSCJ%x3|Cf ۸Icqhq}vmBN-8(U/gys_9qٵ^?9yï>d|p_M6~ϕv(ބ`.} W!*I؅І9gNAȚkhq8S)5Hgf>$JBHL:mh:QIe!I6 $0JY$dHX'umAh긑*9|jB昉aрx&be1aJYziviJ:*A*=ҫꚔ,Bk$KO9Ūl}<WL%*QMi.W~HS•;Rvն;m_2xn~).kn2zk0 .9,o[.fw#! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@&΃EE4eSF@TL}Z 4TIb͚P vX(Dːյj7)֩VU{n*4YR{5*ʹ ,hq |PJ|]x'ФsWZ_Sޙ'[}u[[E%č_O|9sϥ.PassSWo8yguh` w%V"h rY]ɗփvN(ǁd`]&L%Db'\~ rуxvڌԈҍ&x!AjFd("6DP8%JUqE[V``)eH_qy&[kx'QG)"}y~`1Uh!;)ZބNNf꒤v*iI+¤ҨhꥄVkj*t뎵*+Od!U_Dlv5`u]6k؎4-MfҷyfbnWJ5Ӣc$K~n 7G,T!This GIF file was assembled by CDavis with GIF Construction Set from: Alchemy Mindworks Inc. P.O. Box 500 Beeton, Ontario L0G 1A0 CANADA. ! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@H 2hJ2rD)@*0.O[vDٕ@Xsjj׶l6$٫w5mW)9-͢{,ҁEgu8 5|bSCJ%x3|Cf ۸Icqhq}vmBN-8(U/gys_9qٵ^?9yï>d|p_M6~ϕv(ބ`.} W!*I؅І9gNAȚkhq8S)5Hgf>$JBHL:mh:QIe!I6 $0JY$dHX'umAh긑*9|jB昉aрx&be1aJYziviJ:*A*=ҫꚔ,Bk$KO9Ūl}<WL%*QMi.W~HS•;Rvն;m_2xn~).kn2zk0 .9,o[.fw#! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@&΃EE4eSF@TL}Z 4TIb͚P vX(Dːյj7)֩VU{n*4YR{5*ʹ ,hq |PJ|]x'ФsWZ_Sޙ'[}u[[E%č_O|9sϥ.PassSWo8yguh` w%V"h rY]ɗփvN(ǁd`]&L%Db'\~ rуxvڌԈҍ&x!AjFd("6DP8%JUqE[V``)eH_qy&[kx'QG)"}y~`1Uh!;)ZބNNf꒤v*iI+¤ҨhꥄVkj*t뎵*+Od!U_Dlv5`u]6k؎4-MfҷyfbnWJ5Ӣc$K~n 7G,T!This space for rent...! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@H 2hJ2rD)@*0.O[vDٕ@Xsjj׶l6$٫w5mW)9-͢{,ҁEgu8 5|bSCJ%x3|Cf ۸Icqhq}vmBN-8(U/gys_9qٵ^?9yï>d|p_M6~ϕv(ބ`.} W!*I؅І9gNAȚkhq8S)5Hgf>$JBHL:mh:QIe!I6 $0JY$dHX'umAh긑*9|jB昉aрx&be1aJYziviJ:*A*=ҫꚔ,Bk$KO9Ūl}<WL%*QMi.W~HS•;Rvն;m_2xn~).kn2zk0 .9,o[.fw#! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@&΃EE4eSF@TL}Z 4TIb͚P vX(Dːյj7)֩VU{n*4YR{5*ʹ ,hq |PJ|]x'ФsWZ_Sޙ'[}u[[E%č_O|9sϥ.PassSWo8yguh` w%V"h rY]ɗփvN(ǁd`]&L%Db'\~ rуxvڌԈҍ&x!AjFd("6DP8%JUqE[V``)eH_qy&[kx'QG)"}y~`1Uh!;)ZބNNf꒤v*iI+¤ҨhꥄVkj*t뎵*+Od!U_Dlv5`u]6k؎4-MfҷyfbnWJ5Ӣc$K~n 7G,T!This GIF file was assembled with GIF Construction Set from: Alchemy Mindworks Inc. P.O. Box 500 Beeton, Ontario L0G 1A0 CANADA. This comment block will not appear in files created with a registered version of GIF Construction Set;(uuay)gnome-fs-directory.png$GdkP$00Kz^˼tvf$}}x)*$$||zyyzyyxwwvvu;<2_üusqqpppoonmmlly{gt|nZ\Uj}i{~hy|fx{ez}gz}fx{ey{fx{dx{ewycuycor]oq]lnZoqartctvdvwgvwgvwevwevwgy{kxyixyhvwey{j{|l{|k|~m~p}~mq|~mx\^Otwaps^or^nq\mo[nq]mo[mo[mp\mp[lo[knZZ[JikWfiVegUcfSceSdgTceSceScfSceSbeSRUD%&vvnbdR_bP^`O]`N]_N^`O]`N]_N]_N]_N]_NAB6gj]wxn_aO]_N[^M[]LZ]L[^MZ\LZ]LY[JY\K?A4BB;ʷɴɳdzï®®tMNEɳƳƳŰ}q34-~Ƴůï®|}pűİï®yzmκ͹̸̷˷ʶɵȳDzƲűݯ®wxkκ͹̷̶˶ʵɴȳDzŲıð¯vxk͸̷ʶ˵ʵȴDzƱŰİï®uvi˶ʵɴɴȳDzƱŰİï®rshɴȳdzDzƱŰįï®pqfȲDZƱŰįí¬mobŰİĮí¬lnajl_ik_hj^hj]hj]  ~}~hj]  ~}}|hj] ~}{{z{fh\ !}|zyyy{egZ&(~~|{yxxxyzceY+)~}}|zywwwxy{bdX/!)~}}|zyxwwwyz{bdW/ &~}||{zyxxyyz||bdX* {}m{}mx{kyzjxzjvxjvvhsuhsufqsfqsepqcoqcoqclnalm`kl_jk^ij]hj]hi]hi]fh[fg\dfZegZdfZdfYdfZdfYceYceYceXceXbdXbdXceY()$% qy  $('++,.+,..,--0/0/21/102//12/100-)"      (uuay)alphatest.pnggPNG  IHDR|B}>gAMA|Q cHRMo?r$m_j<Wmg,IDATxb?(`i0 F(> F Q0 F(! F Q0 F(! F Q0 F(! F Q0 F(! F Q0 F(! F Q0 9]:= h`3Z G[`Q02@G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(R@,Q0 F~8.h Q0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 F v(C D,R @Z``d"ڭ` b?,SLWRdh$7|4CH4 UPvfdd3 gm0$riUR=7 (Y^`8FXrpIgt(( Obm(F5@ qE7B+:`eD(ʠN< $uG"=X!܋@\?`|kn  c$Fp@'FF \SxIg*ZcR@{  ȿHhr uj45cac1#iUQ4}E;D-T2?,H͋U^$&,#, ta|HwTgF(  |X!0F.W"ˀ@c)!L6 aAFF

J˙{Ie`*z .opf N{ e\0Vy02BZxh y/ƚ:$-8* t? S<a![&^(@9k(u09 u)#*F{hnhR9@+Ѐ_?D1 ,5i0N!#\?:3AP\u`<A!5^VDi&j024M j-у]'`U`a&D@]࣏`zlCȒm"v`a [tz5#R,CSϸd@z+0@Y[K¿PQ0 h h#NXvB}vQKA10i.J=G--|:nh+a $pCw"nGŶ,;؊ {>WVOv3V|VON˙ , >.[=6#7 F4PC:-{I3t`p?Rw|ZctC[H4,n',Z7xҎNdufѕ@Jh?M'7!$Q]RҢ@,7sj7踂l ѥ!L1`+`L ޾mrژ3hn!db5qNiO!=,98-'@;>Ⱦ]ٟX{ft< &]hA9]ƭ< ^(p 931q@MPy NrynX̤ Y]eyjD"4#v84`sK.#@ |X|=0g"ҁ.M74T@LjÍ "K PnX9 WdL#t <&$ԁydElYv_Ԍ!Cr;VOpW02, K U@75ő)fA갫$[eO)ӌqotg|FYHe#RflQgD3tUB!R<@X]0w .dZ+i t%aK*#}HQLzU?HsYL%5B##rL!@Fd7 TXoNxt2]A X0v ]ЍrK|2J^r z vhl4<2@W댈$= $0‰.9L`Y Np1@/Jeu,ldY*\v|Q7= {P z0(Ԟ t;l?tfEtd+Z`aT4<@:ms2*D! Hص 7@F8#Al+!U2x !U Ԇ< RCVTbP ^ π-SoB3tP*PqJ 6`퟼RBFB6Vy;l? ~C4Y9v*J1Q.Q!ɦ;v2XXAѥgN+Y :,C[J[u/~~q! QRP2IjvoMgҁD9 N'ygdI0-z7lB,z|!}i8i| ['D!sf}n{SA7q0R-l i!=Ǚz"ub e52,FsE݃p?;bv+$|o'6<ȳׄ+i v/YA0wTЍ $`de@]*H ;+ƉKrJ Djι/tXe{X;(;o>N4U4p;Z(̀m[#҆3/mbwSD|<n^08B-EDܝjq,/_i [XkB\K\!;nSD.az}&qG\&@"pu{D&bsFXfd?8%Ī|/.ˀgF"nS Ԥ`f2,c?.z$'K'~ +naJ?(HI2/IW` tձr FD9$5i@QPWx?c8d?R ^f`VΩ].n?:r!l 8'P֩٠Bco!4aSx\ئgFjdf6 Zӟp`@ HόyZ&0Tk fϻE-̜Z|'t"-eRP4QM;p{aY"` @SGRPCBÚ)ᣨЋi` -/ 3YX>*Izn=0 #p$F3,HV& (,&X=$q˯`` [D y _.sXI[Old?]ʓe{4o~_[G܈ .ݔ)杓.%%hClD=ӂƫ֫ _m (u dd~N7{sQ3->s m7S  XVQ+`Xʎ}SWDI!P"1I` hl#]OFAXà,ǘL\ @0Uևn}m4#Ĵ~BVmId~.6`n?de @޵ ,l$vXXG`D ,RQ@4ugύ?w1ŭ=פ-!*Gr]O̽Q.XN}1* D= LdjP+cHsCHr; {ܯ Ur5(Vtv$[&;䟝<2%uM;Y*1|ɲ| ]"ISf}5Pp0nTdNPA:wG"3Iji܏K*NxH o"=TXgH:| = qah3p`gg\pǪ&yi+$$jIdzjIo{{6l}t41I/Z[/ې)-,F}~m5 K)8 19P@{eYKw$I0E @"+T]q<]oV=dzeCLp67TIJʎ2xgbӟ G߅}!35tgnko0L}oRę1,qJ'^mh')! $"%;)د,s$9(N5Ԥ.bC uYemb쵴`ox %ygo0 Ca# 4l =;P2 0+q+zO wGsX'?}I ER#܎!*K^|AUY6$գ[ٜIBi /$٣{͵(ѥBh*&iӴNݲo~SƘ7 _Q&` v.o]S}kfHSC-@;J*W0C6p%A2p-@C:Jՠ+y|ڮO&jq@^ѼV|M;}/Js`2JlOЦA2m@ tH,0=s9g;' hD}';_,O)x_J)`m琿gZQS}=IS;x*!1k@'-I`|(Fh2N,& 3X-Wtp;'}e'<)[TӨ架9]jaU E2Ĭ4hWUB-.$sϬ39!}x'v@;iȴ(O4 J$Z{{eK+Gy< qa(lo +`c [!SЩ?RN{qv?r ߃݂_Q ZBՁfm"u6x-{z{gJFUL<~q"d%)mFPg-:d>f2Foy'T;UosEn@_/|e?Ø٠m<>21V$Pܳ)Ti]vӱ cۤ qFw 2$Wʝh9{4$):pVY|31unWȻ#bǫkj% lw<,fFo ax< }F7_^熧 'ڂ04<_?*ȍpC8,Z´KМ-W)|FeB%wfEVm!Aչ3Q4zhKv<ڍah4+0ð @T4,Ai#K iqPdYz/:r|X&Rz3^/Dډ䃇A*z XZhh(Nêp9'6=RXa& drѣ*Ct{=}2; {B`2UāWR I{m)lGKR\E7lulw̱* @Q&B҉uԕxS1wC[2=kTDTSapZi>Ydҧ]{#o]Wa&.FCtD=[ZI&8a1!1!>},Q KN?. u{iDF+A;=lˣ{4_C^ P1Skdx/<9L.I0=eyyN)[3 k 'PY_em#|P\ Ң~VDP0iIp+:C,Z{/4Ts1av)f PI@ap#R0N>*E1]#e:< na`bLX“ 0JDWu&9/v~?s2*H}6=/ %ɦ"3ԨGf BuDLk;. s|'ج 0pB"l`Z+)xeӢi~}vވz)@2,02q;0kg;Z fG3'SQTL{e&vIвLEcr8^a?G6zXT&BISg=0 B0%&L9 c{ @!A҄ ``ÿU@#3;2,fN ӋW:vsRHbldiHV4{( @Xa\jYd}jG<{ %=> eMg땓 m]E29.ckGaaXNfũf)9rS]1+ZA,tG&# k(L fvl+L)\PGa 6=QTdp $6LvyWP>~?w70oa /FFVٗ6*UN2@g*NNLw _H9TAKexa4%a}ߘrH)$ID"ؽZD_7=7ucI>TE"+G,7IG+{$o";?ӛ"1Ϡ\1^)S$>NԴG^b F+7]!k6(Y2.1>oGrea5$H>R*ie[bv;znW4CN@JyEo+ -2&MilǁMOW:}[{ QQOL0N DXB %h+J@Y&8tyno@ $l >b5d8>}Ԋ'2N@uO#q9بjUS6S):OF@ y raX &_E#LIL 4֬M~#k܉< b" ,H )OSMceaYCDktLmup [D):*7'B'%iBE<^E% g)؄jJ;9ֻFd; Eh}4zT%1+f CESwGo,;gFL=/钱*z(6F4.*+& !"ѣ19 @ d3 gԾD FT&״>_!Qq {F,`_ OL_ϥ_n;tfUՠ !KFJ˧jlCH2w&~yJ!.WJFJ9YLcsWrfjӗ6g LX4͹Z)cĻCn9`@ExbDxs t htgZZF蟀8Ja]RJI ).I&PI"#f#a>Wڵ\lf ye|>QUYd"U]8|a}</fp?*'zx)7>k+yV(rrKzɒ=2Ç1u½jTn:᬴sR'p*T/KYTŒgBߔ"x Mn*$TO p=9k@ @l,l? J /QKG[UmN/\5XvU|+[>r\@] $R/c]Nj QEp`fYA'ja<6+Ʈocƭ U, K( &h:#(wU%">*rKylI!iؖ\_s4LNxɍάh[&3:Ia* 0[ |ҨABDO+g{v;Ql9 IJS͆`uhJ’Նb8:}YWdoulArdWb5wWV_pVW XdґR?Lm)CZďyg$tux)OAr:dV^ g(XRҰ-R'T4ц\iǟXx%6y!diϰ18GsV3?oȻa(/:@b ŗ1`(}ֲsb=0oZE{۝|Vy03X9j_)sy~viBesG)oe =ssA#TI !s2nn9Iy^]Zd=]z$}3+2ۈ]"Ɠ+k@ `*:%[{N#{8)[rҳG*ߙvE54*=̆[[N* W?k4o0SV -12JE#j Xg,Tº<3GHӏ.3WTzatM.[Ł0lYK0xž$ ;]H.@k̇] 0 t`>$@Gk?/Ikg g>ˈ~]EpoWbpdAui,=/MlzJS tEAd=""2 19ak *!`D:lf,>T1GFc6 : 70#+ZD8d-hMO?x2!fY{BտLgZP|z |Uu#D٣RҐ*mW'Jr\<7]0 Q( 蘀)-2%Cc%t.DZ-)/A;6lrрg5'']^Q$D gcnj}*oxH;ū<,K&kg}7cd1{~,_eO(دN;-EZ$cYŞaG|Àm I&dJ1dRj!.r&$|/s|szR.؄C=0Ke6PhƠ'!w_58S$':E1st}a B;c V`h)bKq]:p"qȎ[YvjݏYf̳$=kX)MެH,4u[~%srЈU{W˦퐺0I+$,+zy{#%w{|`[3Ɛi%+nx"2i:hM @VJuGX`%i/3H4P!a >5ZSr{4tA1}5Ii,_K";OA4>Pw80 LG>03&2&NQ DBU!MrGr}1eYa\wvqd6̞9OYW{D5J/qfRK߬nRo'W])8*Y*8N.(q9on]ʳ6 kWdԥP5U>]M  z$t?R&obDO|(y#vR X׃Z@& 6Z0psH,gfu@|g@/TC#Z(/80zN!ۜ4 LaW .$?ZIO\guЂO@wM[ 1`q sn(<[V*sa);T?LئFDs/#-ȇaڅȆ5OEp#Q?\@a t T@KAܱ=ŽD.q ?-?}5c4+iA(]i@aH?lv͊4t XnC;$,p@7KUlj{;wpv4iRh;q /I'3k݌z -D@@&ʷG5(BjyhΜNʢҜa@tr~ YhEJn6 $#EUJ?8JH(^}?5k+8uЯΒk% Z"]0 sF`؅-x cp&X#m'G>IDqDnq 33+9XtA f-to.c w=7r4-j9kNz+HGCIx$=HrqEoxI=EԊKZu JiF(~Hi(j_r:SEZ񰝩 VƱw|B:z@:J[G*I^C>!{.{ӒOrFrnj1pPsޜ\OBwqSK^QB >s,L8hFf+ Tgw':/ra{M$ ,`UI5!P.)Z*o׷1ȝ'5Q`ݐ4>V\?ŭ6o mnA2kΟ]10 4 /aeGB06 x;?`gbd&>@-T0!*U(Nj_ KGMRs$M~s2C1.Eُ˘}(M=^zucKvGڛV>v|9M.O x׳_m7*˂H:-,dvkpBQ>Y&7M34"54.J0K׏O,\j1 uZ j֋4z{eJ{5ρ A-8W݋ mbo:X"53P1 % Is|9 (~~ŀ߽y$Lej/-|(?&vY%gp >+Nq<w$d2e}r& WYTaAT;xdz-6GFaT1~lv3ihaSePX͇$Њ-֨ CH̞RTzeA9@G4Pf۳e:"`b^CH:W*NB9jldcz\HIEdw=5@CǿܒpEPElUr-`%H>ne>v([@]& e-;G4k$_zkmH :, +r=%`oͨݳJO; z>Oۦ!u`02/w ]e:D0—ZGI;/`o* 7[xXEib2 s+t >y9LÏZ@Tț gv20Zѳ۫ؿ @vv|X5c@@CG/ı+\ !K5La 3ȁ$:tjQj}O9c~G6$PSa"~(SrNfG-89hPˀvяv/@ [\3S&HK؆*B@:ڗQ0E"^Sq tEZҐn@Z+DzA|h UY=뫴4o`,G3E [ zhGEY9b[4T8ȀmE$#j2C0>#@%`+Ax1@k$`%#8i+J{]r vG<_^;stQ#p-;0w1 9?vBeEgqMcjFt-ms!5-`1BVdvV@A„{$FX9 *@P8 0yąe C9!® 6L:={!\`Cag̓@̇,2'@oGfVaq;2,*X:5p" xd>G.G.8t ,GBpaeo u0Xh H1*a~6/F QpCeB IpH]?7юT};Ia״B,z-a%٥Ѝj~IV3A+j"Nć,e 2$)j [x'j˫E;nUrZ%7&o "ZXc3@0RF J"D -]`u4,@2AMbi4Ej/t4/s VbrˇP _0BfXm†l\#M4y#_,ht #J^aqD+f'- w4s ?1zآ ڮ "C`>m3=KP }HA>` aZ9Kۧ"Ō1{xǀ.h993B%jg͋H^+:a,nvA`a@q &3DhfD\ 1kVpwAkDpOYPz*,)&<9%DhCZC{#e4\ |\l?ZKdgN}+zsB@k0gr }BjT!bPF{5}"]ZY7O!N6`-Ki~ϬHFÊ'$3g=ps?lh O瑋~b)3B!ﰞa/)*-Qcహ(֤!f!Hσ Vb/!2B8lk,c abBKp %M?κSn#C @ 59aqĀ=b@ 1_⒃ #xJ;@AG S8ց_.5~Y{!lPZ־cF+hyX>ubdޑcdY 6F*a711X x*ek@eO>x'J;g@ LOܔa7E<,`eWǐPt$ڏ5+ ͺ@[9 r ́!oE=@{F@uo(>0*&Fx&X%݋SKZ)/G((j;Lȣds!M7b3Pm"r /eM@A#9-EN#PlKpfY'h7,S``a ,Z KN]h?Z@C]5ݲ3L6c3! 1^LB2Ƚc4,:r[4ᏂQ0 1(l;j ,AsC{݈qd]=HZc! H{B GSaQ? +Q@5,e%#|3bt)І5H;pQF<NoD*;#|ƙsM#h? F(&0OCo]tdVBG(Y|]SG)## 9|o)@| F Q0 FUb@: ?P;#$d1 G"vm(d2tXRaO` F'mG(TGy g@7WB7sl/@̪{W] ul?|2R}>t@`FfeȜpAl‡&`ECT#(k푶@%jzy-G(T3yO89 P c&`4b:v"GYHGQ@1n?i*;={<ƏybB)RC h? F(x q%[baxv  z ?`@EnciZK,#*Q0 FUj_tfHMa0@o_ފ>ƀ|C*W~:Š4ZQ0 3>e@) ro Ϣ^.AїOJBb2@6o1 Q?|=j)[t//Q@5lr|#DyX Zy8p3u1ݶw3v2"] ,rk= @(j`Bs`&,F l,rqpkrRc8ԀXw/@6U7W H8 끅Q4ZQ0  \!fa Asgawe@ gW*ТTi_5Zc=Q@uPvLX q^(Ȏ,hg@rw0s* 1l+Ew0Q@P~ :gBVVR5_rM7^ueʘ1gP/D\)o6X ]=8@`lYЋt |Ն/+_):,y`둚K ߡ-G(``h`h`h`h`h`h`h`pwm &uHb10 "7'~gx|9u~>}~$Rۥ]'ckxyYkZz62 6 CY#d?^fLe8\F`Ẇ[y_dA }7o/ػAa%xeli?ɱ#;\y4> Ye©Poly%(cE3'!Opnǁ6*VWKSr\8dbuܫ=9=~' v`NiHą*+çï6mv¨r^25ı38vu墜N94;,j4"d0i᷊֭C'})FQ?Cj[Gε铖r,S WBڡr U4e|iF}sn7MH_&##Us}V+_Wu5 ݼ0ֽ}GnkCਓ]UKgFkuyn$O\%#uD\'I%JpX'w97uoswkxݚ[%| {G։DUjuk8#9V;9@uG3rY:1П[sPdD NK(ڡNR֩0&EUC)U]]5nm OZWZީh)bHY [JLL([v!q3@6P!FDWO./4W8!ہM_@E9\q:e @Owjc;tSkJ=|&ՇaT\$Dy<_ܞ&2\cR[O>xԫoZ]ruq q0IYbbyEJo1 _Jӷu$fv$3I)a}7E u **s"D>7@G;hO|G$:qkG֝ӽ*HߵOؽQ`qAN&iK\dBD)W 3aHnIɘc%! ")= \]+36u׶b.AL% C+}vߋ؁jbK$ pXձY=3BծA++-tk ?8ӹN)+'=?$(a3?JnZ^Hئ$Sc!KhrQR\_'_|ӌ#-][r`_?:<ҡ݊ 37 Pshu0ܝV}(~ ӹuW2`=qjm4 6%: 1{҃@=01-4bZ2/)Wr3 L/:PKT@NwАB)&U^yj\`s WEGߐ LR[\~MzÜP^*60"[ rIO]A}F4"΋$K7)$t5(2;Mb;AU씲]C&>pyԷuqq]1Su6vNeN` 1 k'A%.: Vl/L2f6 IwjmobH t=QLc/]d 6U)Kj̣[UVӉlu4g_:_lBjKrZ# lRR tR]myא*srL?E"?}KlsE*&uqC4bLi CCNܓwo{Sdr_iH,_9atO8-=-j0A'|nٴoQ=+SoeJigg {kMx^=^ 4Sot6n3.Ԩ. 5X| K`u7C2F@1Ǘ $} cK#o褙LQQa;A܈ m'1Q4h2s$3[8cfvfM|[6#9ڵixlm?_:TLS 2d.\*bsXRt~i5/<-Mj i58$Ѷ|ؚGQj')!b=d(` ? F( F Q0 F(! F Q0 F(! F Q0 F(! F Q0 F(! F Q0 F(! F Q0 F(! F Q0 F(! V0,$iaX _..b>ik1rNEo穴F'oG~VgOx^Wduuu2]>>٪3-yib<6g-wg@AjB&60MPs|הRW>';S@A|ZSzN)@uECui .W͎ .Tt).#QQ[(.*j μ8BwBpŸb&~i[ -IsmL y }EВe#@7w[Sx|r}ۿ,-*C;sh|hnkM͗Vȧi9d| Q>qgqq Az[4 e5'Fn,F,Dj؀BS #3 S3NS[bɷ#,NwC}yGS?8nb;q 'qF>9cbgKVZKMAt1`wTSk.GzT{*/$|QIFi;Q_Wftwvunb"bۄBͼ՞^KJOret@tKb5ע׿t;t]> \E;Ap1<vsqd$8GuVҳDtU *_`k<%T :ڸ Y +. ~n@qͰ3|+FAu 50d`qf"B.xQNH$T$c[M2>pKη&3@^Rwՙ2nu qAz[{E A|yA)I)$O L{SqOeIv!vgD9tIN [91"4Ǧhd;[[.) [C̯6 *Tj@]<mZx6[ȩᦙ5@U΁ 0p(\ 8]ۻĒ,rkwk /a\aH\mЉie^5sDA4\ϜK4# MSKTOÉKi={b)4s-mv}r6ަԘ63mҏ |]ktw[jRl.u!'ˌh\0@.EGL/ gx81l> X?cS!QC #include #include /* The ChangeDisplayInfo structure corresponds to a toplevel window and * holds pointers to widgets inside the toplevel window along with other * information about the contents of the window. * This is a common organizational structure in real applications. */ typedef struct _ChangeDisplayInfo ChangeDisplayInfo; struct _ChangeDisplayInfo { GtkWidget *window; GtkSizeGroup *size_group; GtkTreeModel *display_model; GdkDisplay *current_display; }; /* These enumerations provide symbolic names for the columns * in the two GtkListStore models. */ enum { DISPLAY_COLUMN_NAME, DISPLAY_COLUMN_DISPLAY, DISPLAY_NUM_COLUMNS }; enum { SCREEN_COLUMN_NUMBER, SCREEN_COLUMN_SCREEN, SCREEN_NUM_COLUMNS }; /* Finds the toplevel window under the mouse pointer, if any. */ static GtkWidget * find_toplevel_at_pointer (GdkDisplay *display) { GdkWindow *pointer_window; GtkWidget *widget = NULL; pointer_window = gdk_device_get_window_at_position (gtk_get_current_event_device (), NULL, NULL); /* The user data field of a GdkWindow is used to store a pointer * to the widget that created it. */ if (pointer_window) { gpointer widget_ptr; gdk_window_get_user_data (pointer_window, &widget_ptr); widget = widget_ptr; } return widget ? gtk_widget_get_toplevel (widget) : NULL; } static gboolean button_release_event_cb (GtkWidget *widget, GdkEventButton *event, gboolean *clicked) { *clicked = TRUE; return TRUE; } /* Asks the user to click on a window, then waits for them click * the mouse. When the mouse is released, returns the toplevel * window under the pointer, or NULL, if there is none. */ static GtkWidget * query_for_toplevel (GdkScreen *screen, const char *prompt) { GdkDisplay *display = gdk_screen_get_display (screen); GtkWidget *popup, *label, *frame; GdkCursor *cursor; GtkWidget *toplevel = NULL; popup = gtk_window_new (GTK_WINDOW_POPUP); gtk_window_set_screen (GTK_WINDOW (popup), screen); gtk_window_set_modal (GTK_WINDOW (popup), TRUE); gtk_window_set_position (GTK_WINDOW (popup), GTK_WIN_POS_CENTER); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT); gtk_container_add (GTK_CONTAINER (popup), frame); label = gtk_label_new (prompt); g_object_set (label, "margin", 10, NULL); gtk_container_add (GTK_CONTAINER (frame), label); gtk_widget_show_all (popup); cursor = gdk_cursor_new_for_display (display, GDK_CROSSHAIR); if (gdk_device_grab (gtk_get_current_event_device (), gtk_widget_get_window (popup), GDK_OWNERSHIP_NONE, FALSE, GDK_BUTTON_RELEASE_MASK, cursor, GDK_CURRENT_TIME) == GDK_GRAB_SUCCESS) { gboolean clicked = FALSE; g_signal_connect (popup, "button-release-event", G_CALLBACK (button_release_event_cb), &clicked); /* Process events until clicked is set by button_release_event_cb. * We pass in may_block=TRUE since we want to wait if there * are no events currently. */ while (!clicked) g_main_context_iteration (NULL, TRUE); toplevel = find_toplevel_at_pointer (gdk_screen_get_display (screen)); if (toplevel == popup) toplevel = NULL; } g_object_unref (cursor); gtk_widget_destroy (popup); gdk_flush (); /* Really release the grab */ return toplevel; } /* Prompts the user for a toplevel window to move, and then moves * that window to the currently selected display */ static void query_change_display (ChangeDisplayInfo *info) { GdkScreen *screen = gtk_widget_get_screen (info->window); GtkWidget *toplevel; toplevel = query_for_toplevel (screen, "Please select the toplevel\n" "to move to the new screen"); if (toplevel) gtk_window_set_screen (GTK_WINDOW (toplevel), gdk_display_get_screen (info->current_display, 0)); else gdk_display_beep (gdk_screen_get_display (screen)); } /* Called when the user clicks on a button in our dialog or * closes the dialog through the window manager. Unless the * "Change" button was clicked, we destroy the dialog. */ static void response_cb (GtkDialog *dialog, gint response_id, ChangeDisplayInfo *info) { if (response_id == GTK_RESPONSE_OK) query_change_display (info); else gtk_widget_destroy (GTK_WIDGET (dialog)); } /* Called when the user clicks on "Open..." in the display * frame. Prompts for a new display, and then opens a connection * to that display. */ static void open_display_cb (GtkWidget *button, ChangeDisplayInfo *info) { GtkWidget *content_area; GtkWidget *dialog; GtkWidget *display_entry; GtkWidget *dialog_label; gchar *new_screen_name = NULL; GdkDisplay *result = NULL; dialog = gtk_dialog_new_with_buttons ("Open Display", GTK_WINDOW (info->window), GTK_DIALOG_MODAL, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_OK"), GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); display_entry = gtk_entry_new (); gtk_entry_set_activates_default (GTK_ENTRY (display_entry), TRUE); dialog_label = gtk_label_new ("Please enter the name of\nthe new display\n"); content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); gtk_container_add (GTK_CONTAINER (content_area), dialog_label); gtk_container_add (GTK_CONTAINER (content_area), display_entry); gtk_widget_grab_focus (display_entry); gtk_widget_show_all (gtk_bin_get_child (GTK_BIN (dialog))); while (!result) { gint response_id = gtk_dialog_run (GTK_DIALOG (dialog)); if (response_id != GTK_RESPONSE_OK) break; new_screen_name = gtk_editable_get_chars (GTK_EDITABLE (display_entry), 0, -1); if (strcmp (new_screen_name, "") != 0) { result = gdk_display_open (new_screen_name); if (!result) { gchar *error_msg = g_strdup_printf ("Can't open display :\n\t%s\nplease try another one\n", new_screen_name); gtk_label_set_text (GTK_LABEL (dialog_label), error_msg); g_free (error_msg); } g_free (new_screen_name); } } gtk_widget_destroy (dialog); } /* Called when the user clicks on the "Close" button in the * "Display" frame. Closes the selected display. */ static void close_display_cb (GtkWidget *button, ChangeDisplayInfo *info) { if (info->current_display) gdk_display_close (info->current_display); } /* Called when the selected row in the display list changes. * Updates info->current_display, then refills the list of * screens. */ static void display_changed_cb (GtkTreeSelection *selection, ChangeDisplayInfo *info) { GtkTreeModel *model; GtkTreeIter iter; if (info->current_display) g_object_unref (info->current_display); if (gtk_tree_selection_get_selected (selection, &model, &iter)) gtk_tree_model_get (model, &iter, DISPLAY_COLUMN_DISPLAY, &info->current_display, -1); else info->current_display = NULL; } /* This function is used both for creating the "Display" and * "Screen" frames, since they have a similar structure. The * caller hooks up the right context for the value returned * in tree_view, and packs any relevant buttons into button_vbox. */ static void create_frame (ChangeDisplayInfo *info, const char *title, GtkWidget **frame, GtkWidget **tree_view, GtkWidget **button_vbox) { GtkTreeSelection *selection; GtkWidget *scrollwin; GtkWidget *hbox; *frame = gtk_frame_new (title); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_container_add (GTK_CONTAINER (*frame), hbox); scrollwin = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (hbox), scrollwin, TRUE, TRUE, 0); *tree_view = gtk_tree_view_new (); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (*tree_view), FALSE); gtk_container_add (GTK_CONTAINER (scrollwin), *tree_view); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (*tree_view)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE); *button_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start (GTK_BOX (hbox), *button_vbox, FALSE, FALSE, 0); if (!info->size_group) info->size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); gtk_size_group_add_widget (GTK_SIZE_GROUP (info->size_group), *button_vbox); } /* If we have a stack of buttons, it often looks better if their contents * are left-aligned, rather than centered. This function creates a button * and left-aligns it contents. */ GtkWidget * left_align_button_new (const char *label) { GtkWidget *button = gtk_button_new_with_mnemonic (label); GtkWidget *child = gtk_bin_get_child (GTK_BIN (button)); gtk_widget_set_halign (child, GTK_ALIGN_START); gtk_widget_set_valign (child, GTK_ALIGN_CENTER); return button; } /* Creates the "Display" frame in the main window. */ GtkWidget * create_display_frame (ChangeDisplayInfo *info) { GtkWidget *frame; GtkWidget *tree_view; GtkWidget *button_vbox; GtkTreeViewColumn *column; GtkTreeSelection *selection; GtkWidget *button; create_frame (info, "Display", &frame, &tree_view, &button_vbox); button = left_align_button_new ("_Open..."); g_signal_connect (button, "clicked", G_CALLBACK (open_display_cb), info); gtk_box_pack_start (GTK_BOX (button_vbox), button, FALSE, FALSE, 0); button = left_align_button_new ("_Close"); g_signal_connect (button, "clicked", G_CALLBACK (close_display_cb), info); gtk_box_pack_start (GTK_BOX (button_vbox), button, FALSE, FALSE, 0); info->display_model = (GtkTreeModel *)gtk_list_store_new (DISPLAY_NUM_COLUMNS, G_TYPE_STRING, GDK_TYPE_DISPLAY); gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), info->display_model); column = gtk_tree_view_column_new_with_attributes ("Name", gtk_cell_renderer_text_new (), "text", DISPLAY_COLUMN_NAME, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)); g_signal_connect (selection, "changed", G_CALLBACK (display_changed_cb), info); return frame; } /* Called when one of the currently open displays is closed. * Remove it from our list of displays. */ static void display_closed_cb (GdkDisplay *display, gboolean is_error, ChangeDisplayInfo *info) { GtkTreeIter iter; gboolean valid; for (valid = gtk_tree_model_get_iter_first (info->display_model, &iter); valid; valid = gtk_tree_model_iter_next (info->display_model, &iter)) { GdkDisplay *tmp_display; gtk_tree_model_get (info->display_model, &iter, DISPLAY_COLUMN_DISPLAY, &tmp_display, -1); if (tmp_display == display) { gtk_list_store_remove (GTK_LIST_STORE (info->display_model), &iter); break; } } } /* Adds a new display to our list of displays, and connects * to the "closed" signal so that we can remove it from the * list of displays again. */ static void add_display (ChangeDisplayInfo *info, GdkDisplay *display) { const gchar *name = gdk_display_get_name (display); GtkTreeIter iter; gtk_list_store_append (GTK_LIST_STORE (info->display_model), &iter); gtk_list_store_set (GTK_LIST_STORE (info->display_model), &iter, DISPLAY_COLUMN_NAME, name, DISPLAY_COLUMN_DISPLAY, display, -1); g_signal_connect (display, "closed", G_CALLBACK (display_closed_cb), info); } /* Called when a new display is opened */ static void display_opened_cb (GdkDisplayManager *manager, GdkDisplay *display, ChangeDisplayInfo *info) { add_display (info, display); } /* Adds all currently open displays to our list of displays, * and set up a signal connection so that we'll be notified * when displays are opened in the future as well. */ static void initialize_displays (ChangeDisplayInfo *info) { GdkDisplayManager *manager = gdk_display_manager_get (); GSList *displays = gdk_display_manager_list_displays (manager); GSList *tmp_list; for (tmp_list = displays; tmp_list; tmp_list = tmp_list->next) add_display (info, tmp_list->data); g_slist_free (tmp_list); g_signal_connect (manager, "display-opened", G_CALLBACK (display_opened_cb), info); } /* Cleans up when the toplevel is destroyed; we remove the * connections we use to track currently open displays, then * free the ChangeDisplayInfo structure. */ static void destroy_info (ChangeDisplayInfo *info) { GdkDisplayManager *manager = gdk_display_manager_get (); GSList *displays = gdk_display_manager_list_displays (manager); GSList *tmp_list; g_signal_handlers_disconnect_by_func (manager, display_opened_cb, info); for (tmp_list = displays; tmp_list; tmp_list = tmp_list->next) g_signal_handlers_disconnect_by_func (tmp_list->data, display_closed_cb, info); g_slist_free (tmp_list); g_object_unref (info->size_group); g_object_unref (info->display_model); if (info->current_display) g_object_unref (info->current_display); g_free (info); } static void destroy_cb (GObject *object, ChangeDisplayInfo **info) { destroy_info (*info); *info = NULL; } /* Main entry point. If the dialog for this demo doesn't yet exist, creates * it. Otherwise, destroys it. */ GtkWidget * do_changedisplay (GtkWidget *do_widget) { static ChangeDisplayInfo *info = NULL; if (!info) { GtkWidget *content_area; GtkWidget *vbox; GtkWidget *frame; info = g_new0 (ChangeDisplayInfo, 1); info->window = gtk_dialog_new_with_buttons ("Change Screen or display", GTK_WINDOW (do_widget), 0, _("_Close"), GTK_RESPONSE_CLOSE, "Change", GTK_RESPONSE_OK, NULL); gtk_window_set_default_size (GTK_WINDOW (info->window), 300, 400); g_signal_connect (info->window, "response", G_CALLBACK (response_cb), info); g_signal_connect (info->window, "destroy", G_CALLBACK (destroy_cb), &info); content_area = gtk_dialog_get_content_area (GTK_DIALOG (info->window)); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); frame = create_display_frame (info); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); initialize_displays (info); gtk_widget_show_all (info->window); return info->window; } else { gtk_widget_destroy (info->window); return NULL; } } (uuay)brick.pngPNG  IHDRT*sBIT|d pHYs tEXtSoftwarewww.inkscape.org<0IDATxiՕ ' FW|byH[PE3"r,ؚĢ3d'`f2#Jw <)";h&Г|TUWT,3i ]Dv~ m稾f@S(z\[H(ңS>ADfn]-umυp.Pf$V &AmvR,?x6(S E"mGh}_o*HV7EɊDږPCyߖQ=ৎX ?@V$ք JPUΩ{Q^:YHd4:B6t-S/%[UgtEz=qGO(&{/z"`/U}`H#1t "ȤĽ4+<侔U07.SUܼ"ߨcF"*"o=쿁CӼDdEܣUΆEa16P("r0ބۀSU:HA 7{U C UuyFDn⼹X7RHY |ZU{ Eԙ޾Dd]Ȕeo0#_h]"f"";R'$8vXguETuzuow!i6"2;P6ög!ɽӀ]XT`Hc LzsU'pb `cTuNcԍD"Ep)0~MTc$iw{vjผcp-|Xwt; ;H:gQEU]H]"NFUW `.VS{DqTNćUDd!+ !!"p?bnrQՅ-S$ 6Ş}!Kh2vxYt\P? 5J F/|v^1=Y'':oI`k=>E^zW=mfW%sd^+( _| :XI.1Ȣ/6hgzw e.n/C= k0Vx #yU. }9c  QsaJ=u]fU둷q9, s8$ywѷB㺯yo'W$p hrU!'] ~."Uf#( x ۯ}N[:\:Գ%88@^Hm'_S[f $Y99只?kGoK 9WU} ;/8IKLCN" нx`^\2ri>$^pmBwϹ7O.-:PcK AG]+v$zpT#iw{?VNU0%ʲ| SNιmnjC }(g@۫lv"!=Z{ EC YW6@DV"1 svʢc虆."|wT,w̧7 S׋>d7l#Clҍq\/Ddz9 =w8V%Nk_9Qm.!fZdgjWLd*k}f. lؿƉ(k>GUzdѱ=ЏhyAUoneeMC-1ر,&'#\>(;!o*S߮Ⱥz`{{$=wM:]s1R$7' f1 rDdPGD_d҅%ݸ:@_zY,I0!N"D ` #ozhv PU44 ׯTˀMhMG`z+j.SŸ z\fȫҦ`:~/EaX`zaz;S{gpT25h =HU}Iv nC?tﲛ_BhdB6vl*IhoWG֦߆?̴;̺H7n=zKɚko l,\>Ta +GU'V$.{.Psl6}"]h[:ПvRճ<O#Oȯ2Tu&,甏OzN i3~ӶVx Q;r-)jRhhtxXv\L¨vmuC#"#.dV_O 1;UuigLFj+_[dNEQeSMLz]#OUsti~ lM$UGU_j[bMQٷIxb|S܇P~,f>/+R>ӫf|Kȡ wRiz6U#"}.(p\EuM7hNNQVk"r3g?*"%azH^f=aQfgShDOiWѹ *`pvC8qO?" i,&qo39ܒ09>}SXlu<&&Ӎzll]u(']e:\L*PDlk<]ЦZg[%26{y2MWأt w%p83Gç;OMN]IG{ |mZ Us`ݶGdPY>.d;{^:7Q&$kTc"\iuHDƊɵM*p0j}(|LT4?St׮"q`I0Fy{P7iAJ MH˳&m285ocwLJX^ -h^#o4ى}&s}\ӣwrF]FdIi6O+ x_X>CuҀoq^x[!BsWf3yz"c}X?|Yvm qY ̩VJf(I8i(!Dd+l륈SkzA!Zp'pqM&dm=L|ݟοT-RlRN9@$]2kN sy ϝdy%bgTk"r%(xTUtx ئ`U5U$WMC'eQ# T6.ˈ$S>V~$xjFc!M\xKHG5G|\80xó#)lu=&[$ґ UuiH"ZF&g} 5#:A=zO%? >ኘv.t^YvN$)b<)/"$1gBzG"{"T;oXݰEafμhȪ@)C>{;UR{ZH$@ 84G"+)ݣ9-8&_;˔ѻQ07Vd(2>y$q*3tD7fr pNT6t%XdKZ`4٪:D"K zR霝\8&pZH$AC 3Ӱe^bݠ-t M15()l;D,/E.x$O a; ڴ7B T9H$،-.B>IENDB`(uuay)toolpalette.cCl/* Tool Palette * * A tool palette widget shows groups of toolbar items as a grid of icons * or a list of names. */ #include #include static GtkWidget *window = NULL; static void load_icon_items (GtkToolPalette *palette); static void load_toggle_items (GtkToolPalette *palette); static void load_special_items (GtkToolPalette *palette); typedef struct _CanvasItem CanvasItem; struct _CanvasItem { GdkPixbuf *pixbuf; gdouble x, y; }; static gboolean drag_data_requested_for_drop = FALSE; static CanvasItem *drop_item = NULL; static GList *canvas_items = NULL; /********************************/ /* ====== Canvas drawing ====== */ /********************************/ static CanvasItem* canvas_item_new (GtkWidget *widget, GtkToolButton *button, gdouble x, gdouble y) { CanvasItem *item = NULL; const gchar *icon_name; GdkPixbuf *pixbuf; GtkIconTheme *icon_theme; int width; icon_name = gtk_tool_button_get_icon_name (button); icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (widget)); gtk_icon_size_lookup (GTK_ICON_SIZE_DIALOG, &width, NULL); pixbuf = gtk_icon_theme_load_icon (icon_theme, icon_name, width, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL); if (pixbuf) { item = g_slice_new0 (CanvasItem); item->pixbuf = pixbuf; item->x = x; item->y = y; } return item; } static void canvas_item_free (CanvasItem *item) { g_object_unref (item->pixbuf); g_slice_free (CanvasItem, item); } static void canvas_item_draw (const CanvasItem *item, cairo_t *cr, gboolean preview) { gdouble cx = gdk_pixbuf_get_width (item->pixbuf); gdouble cy = gdk_pixbuf_get_height (item->pixbuf); gdk_cairo_set_source_pixbuf (cr, item->pixbuf, item->x - cx * 0.5, item->y - cy * 0.5); if (preview) cairo_paint_with_alpha (cr, 0.6); else cairo_paint (cr); } static gboolean canvas_draw (GtkWidget *widget, cairo_t *cr) { GList *iter; cairo_set_source_rgb (cr, 1, 1, 1); cairo_paint (cr); for (iter = canvas_items; iter; iter = iter->next) canvas_item_draw (iter->data, cr, FALSE); if (drop_item) canvas_item_draw (drop_item, cr, TRUE); return TRUE; } /*****************************/ /* ====== Palette DnD ====== */ /*****************************/ static void palette_drop_item (GtkToolItem *drag_item, GtkToolItemGroup *drop_group, gint x, gint y) { GtkWidget *drag_group = gtk_widget_get_parent (GTK_WIDGET (drag_item)); GtkToolItem *drop_item = gtk_tool_item_group_get_drop_item (drop_group, x, y); gint drop_position = -1; if (drop_item) drop_position = gtk_tool_item_group_get_item_position (GTK_TOOL_ITEM_GROUP (drop_group), drop_item); if (GTK_TOOL_ITEM_GROUP (drag_group) != drop_group) { gboolean homogeneous, expand, fill, new_row; g_object_ref (drag_item); gtk_container_child_get (GTK_CONTAINER (drag_group), GTK_WIDGET (drag_item), "homogeneous", &homogeneous, "expand", &expand, "fill", &fill, "new-row", &new_row, NULL); gtk_container_remove (GTK_CONTAINER (drag_group), GTK_WIDGET (drag_item)); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (drop_group), drag_item, drop_position); gtk_container_child_set (GTK_CONTAINER (drop_group), GTK_WIDGET (drag_item), "homogeneous", homogeneous, "expand", expand, "fill", fill, "new-row", new_row, NULL); g_object_unref (drag_item); } else gtk_tool_item_group_set_item_position (GTK_TOOL_ITEM_GROUP (drop_group), drag_item, drop_position); } static void palette_drop_group (GtkToolPalette *palette, GtkToolItemGroup *drag_group, GtkToolItemGroup *drop_group) { gint drop_position = -1; if (drop_group) drop_position = gtk_tool_palette_get_group_position (palette, drop_group); gtk_tool_palette_set_group_position (palette, drag_group, drop_position); } static void palette_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection, guint info, guint time, gpointer data) { GtkAllocation allocation; GtkToolItemGroup *drop_group = NULL; GtkWidget *drag_palette = gtk_drag_get_source_widget (context); GtkWidget *drag_item = NULL; while (drag_palette && !GTK_IS_TOOL_PALETTE (drag_palette)) drag_palette = gtk_widget_get_parent (drag_palette); if (drag_palette) { drag_item = gtk_tool_palette_get_drag_item (GTK_TOOL_PALETTE (drag_palette), selection); drop_group = gtk_tool_palette_get_drop_group (GTK_TOOL_PALETTE (widget), x, y); } if (GTK_IS_TOOL_ITEM_GROUP (drag_item)) palette_drop_group (GTK_TOOL_PALETTE (drag_palette), GTK_TOOL_ITEM_GROUP (drag_item), drop_group); else if (GTK_IS_TOOL_ITEM (drag_item) && drop_group) { gtk_widget_get_allocation (GTK_WIDGET (drop_group), &allocation); palette_drop_item (GTK_TOOL_ITEM (drag_item), drop_group, x - allocation.x, y - allocation.y); } } /********************************/ /* ====== Passive Canvas ====== */ /********************************/ static void passive_canvas_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection, guint info, guint time, gpointer data) { /* find the tool button, which is the source of this DnD operation */ GtkWidget *palette = gtk_drag_get_source_widget (context); CanvasItem *canvas_item = NULL; GtkWidget *tool_item = NULL; while (palette && !GTK_IS_TOOL_PALETTE (palette)) palette = gtk_widget_get_parent (palette); if (palette) tool_item = gtk_tool_palette_get_drag_item (GTK_TOOL_PALETTE (palette), selection); g_assert (NULL == drop_item); /* append a new canvas item when a tool button was found */ if (GTK_IS_TOOL_ITEM (tool_item)) canvas_item = canvas_item_new (widget, GTK_TOOL_BUTTON (tool_item), x, y); if (canvas_item) { canvas_items = g_list_append (canvas_items, canvas_item); gtk_widget_queue_draw (widget); } } /************************************/ /* ====== Interactive Canvas ====== */ /************************************/ static gboolean interactive_canvas_drag_motion (GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time, gpointer data) { if (drop_item) { /* already have a drop indicator - just update position */ drop_item->x = x; drop_item->y = y; gtk_widget_queue_draw (widget); gdk_drag_status (context, GDK_ACTION_COPY, time); } else { /* request DnD data for creating a drop indicator */ GdkAtom target = gtk_drag_dest_find_target (widget, context, NULL); if (!target) return FALSE; drag_data_requested_for_drop = FALSE; gtk_drag_get_data (widget, context, target, time); } return TRUE; } static void interactive_canvas_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection, guint info, guint time, gpointer data) { /* find the tool button which is the source of this DnD operation */ GtkWidget *palette = gtk_drag_get_source_widget (context); GtkWidget *tool_item = NULL; CanvasItem *item; while (palette && !GTK_IS_TOOL_PALETTE (palette)) palette = gtk_widget_get_parent (palette); if (palette) tool_item = gtk_tool_palette_get_drag_item (GTK_TOOL_PALETTE (palette), selection); /* create a canvas item when a tool button was found */ g_assert (NULL == drop_item); if (!GTK_IS_TOOL_ITEM (tool_item)) return; if (drop_item) { canvas_item_free (drop_item); drop_item = NULL; } item = canvas_item_new (widget, GTK_TOOL_BUTTON (tool_item), x, y); /* Either create a new item or just create a preview item, depending on why the drag data was requested. */ if(drag_data_requested_for_drop) { canvas_items = g_list_append (canvas_items, item); drop_item = NULL; gtk_drag_finish (context, TRUE, FALSE, time); } else { drop_item = item; gdk_drag_status (context, GDK_ACTION_COPY, time); } gtk_widget_queue_draw (widget); } static gboolean interactive_canvas_drag_drop (GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time, gpointer data) { GdkAtom target = gtk_drag_dest_find_target (widget, context, NULL); if (!target) return FALSE; drag_data_requested_for_drop = TRUE; gtk_drag_get_data (widget, context, target, time); return FALSE; } static void interactive_canvas_drag_leave (gpointer data) { if (drop_item) { GtkWidget *widget = GTK_WIDGET (data); canvas_item_free (drop_item); drop_item = NULL; if (widget) gtk_widget_queue_draw (widget); } } static void on_combo_orientation_changed (GtkComboBox *combo_box, gpointer user_data) { GtkToolPalette *palette = GTK_TOOL_PALETTE (user_data); GtkScrolledWindow *sw; GtkTreeModel *model = gtk_combo_box_get_model (combo_box); GtkTreeIter iter; gint val = 0; sw = GTK_SCROLLED_WINDOW (gtk_widget_get_parent (GTK_WIDGET (palette))); if (!gtk_combo_box_get_active_iter (combo_box, &iter)) return; gtk_tree_model_get (model, &iter, 1, &val, -1); gtk_orientable_set_orientation (GTK_ORIENTABLE (palette), val); if (val == GTK_ORIENTATION_HORIZONTAL) gtk_scrolled_window_set_policy (sw, GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER); else gtk_scrolled_window_set_policy (sw, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); } static void on_combo_style_changed (GtkComboBox *combo_box, gpointer user_data) { GtkToolPalette *palette = GTK_TOOL_PALETTE (user_data); GtkTreeModel *model = gtk_combo_box_get_model (combo_box); GtkTreeIter iter; gint val = 0; if (!gtk_combo_box_get_active_iter (combo_box, &iter)) return; gtk_tree_model_get (model, &iter, 1, &val, -1); if (val == -1) gtk_tool_palette_unset_style (palette); else gtk_tool_palette_set_style (palette, val); } GtkWidget * do_toolpalette (GtkWidget *do_widget) { GtkWidget *box = NULL; GtkWidget *hbox = NULL; GtkWidget *combo_orientation = NULL; GtkListStore *orientation_model = NULL; GtkWidget *combo_style = NULL; GtkListStore *style_model = NULL; GtkCellRenderer *cell_renderer = NULL; GtkTreeIter iter; GtkWidget *palette = NULL; GtkWidget *palette_scroller = NULL; GtkWidget *notebook = NULL; GtkWidget *contents = NULL; GtkWidget *contents_scroller = NULL; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Tool Palette"); gtk_window_set_default_size (GTK_WINDOW (window), 200, 600); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 8); /* Add widgets to control the ToolPalette appearance: */ box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); gtk_container_add (GTK_CONTAINER (window), box); /* Orientation combo box: */ orientation_model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); gtk_list_store_append (orientation_model, &iter); gtk_list_store_set (orientation_model, &iter, 0, "Horizontal", 1, GTK_ORIENTATION_HORIZONTAL, -1); gtk_list_store_append (orientation_model, &iter); gtk_list_store_set (orientation_model, &iter, 0, "Vertical", 1, GTK_ORIENTATION_VERTICAL, -1); combo_orientation = gtk_combo_box_new_with_model (GTK_TREE_MODEL (orientation_model)); cell_renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_orientation), cell_renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_orientation), cell_renderer, "text", 0, NULL); gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo_orientation), &iter); gtk_box_pack_start (GTK_BOX (box), combo_orientation, FALSE, FALSE, 0); /* Style combo box: */ style_model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); gtk_list_store_append (style_model, &iter); gtk_list_store_set (style_model, &iter, 0, "Text", 1, GTK_TOOLBAR_TEXT, -1); gtk_list_store_append (style_model, &iter); gtk_list_store_set (style_model, &iter, 0, "Both", 1, GTK_TOOLBAR_BOTH, -1); gtk_list_store_append (style_model, &iter); gtk_list_store_set (style_model, &iter, 0, "Both: Horizontal", 1, GTK_TOOLBAR_BOTH_HORIZ, -1); gtk_list_store_append (style_model, &iter); gtk_list_store_set (style_model, &iter, 0, "Icons", 1, GTK_TOOLBAR_ICONS, -1); gtk_list_store_append (style_model, &iter); gtk_list_store_set (style_model, &iter, 0, "Default", 1, -1, /* A custom meaning for this demo. */ -1); combo_style = gtk_combo_box_new_with_model (GTK_TREE_MODEL (style_model)); cell_renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_style), cell_renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_style), cell_renderer, "text", 0, NULL); gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo_style), &iter); gtk_box_pack_start (GTK_BOX (box), combo_style, FALSE, FALSE, 0); /* Add hbox */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); gtk_box_pack_start (GTK_BOX (box), hbox, TRUE, TRUE, 0); /* Add and fill the ToolPalette: */ palette = gtk_tool_palette_new (); load_icon_items (GTK_TOOL_PALETTE (palette)); load_toggle_items (GTK_TOOL_PALETTE (palette)); load_special_items (GTK_TOOL_PALETTE (palette)); palette_scroller = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (palette_scroller), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_set_border_width (GTK_CONTAINER (palette_scroller), 6); gtk_widget_set_hexpand (palette_scroller, TRUE); gtk_container_add (GTK_CONTAINER (palette_scroller), palette); gtk_container_add (GTK_CONTAINER (hbox), palette_scroller); gtk_widget_show_all (box); /* Connect signals: */ g_signal_connect (combo_orientation, "changed", G_CALLBACK (on_combo_orientation_changed), palette); g_signal_connect (combo_style, "changed", G_CALLBACK (on_combo_style_changed), palette); /* Keep the widgets in sync: */ on_combo_orientation_changed (GTK_COMBO_BOX (combo_orientation), palette); /* ===== notebook ===== */ notebook = gtk_notebook_new (); gtk_container_set_border_width (GTK_CONTAINER (notebook), 6); gtk_box_pack_end (GTK_BOX(hbox), notebook, FALSE, FALSE, 0); /* ===== DnD for tool items ===== */ g_signal_connect (palette, "drag-data-received", G_CALLBACK (palette_drag_data_received), NULL); gtk_tool_palette_add_drag_dest (GTK_TOOL_PALETTE (palette), palette, GTK_DEST_DEFAULT_ALL, GTK_TOOL_PALETTE_DRAG_ITEMS | GTK_TOOL_PALETTE_DRAG_GROUPS, GDK_ACTION_MOVE); /* ===== passive DnD dest ===== */ contents = gtk_drawing_area_new (); gtk_widget_set_app_paintable (contents, TRUE); g_object_connect (contents, "signal::draw", canvas_draw, NULL, "signal::drag-data-received", passive_canvas_drag_data_received, NULL, NULL); gtk_tool_palette_add_drag_dest (GTK_TOOL_PALETTE (palette), contents, GTK_DEST_DEFAULT_ALL, GTK_TOOL_PALETTE_DRAG_ITEMS, GDK_ACTION_COPY); contents_scroller = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (contents_scroller), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_container_add (GTK_CONTAINER (contents_scroller), contents); gtk_container_set_border_width (GTK_CONTAINER (contents_scroller), 6); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), contents_scroller, gtk_label_new ("Passive DnD Mode")); /* ===== interactive DnD dest ===== */ contents = gtk_drawing_area_new (); gtk_widget_set_app_paintable (contents, TRUE); g_object_connect (contents, "signal::draw", canvas_draw, NULL, "signal::drag-motion", interactive_canvas_drag_motion, NULL, "signal::drag-data-received", interactive_canvas_drag_data_received, NULL, "signal::drag-leave", interactive_canvas_drag_leave, contents, "signal::drag-drop", interactive_canvas_drag_drop, NULL, NULL); gtk_tool_palette_add_drag_dest (GTK_TOOL_PALETTE (palette), contents, GTK_DEST_DEFAULT_HIGHLIGHT, GTK_TOOL_PALETTE_DRAG_ITEMS, GDK_ACTION_COPY); contents_scroller = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (contents_scroller), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_container_add (GTK_CONTAINER (contents_scroller), contents); gtk_container_set_border_width (GTK_CONTAINER (contents_scroller), 6); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), contents_scroller, gtk_label_new ("Interactive DnD Mode")); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } static void load_icon_items (GtkToolPalette *palette) { GList *contexts; GList *l; GtkIconTheme *icon_theme; icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (palette))); contexts = gtk_icon_theme_list_contexts (icon_theme); for (l = contexts; l; l = g_list_next (l)) { gchar *context = l->data; GList *icon_names; GList *ll; const guint max_icons = 10; guint icons_count = 0; GtkWidget *group = gtk_tool_item_group_new (context); gtk_container_add (GTK_CONTAINER (palette), group); if (g_strcmp0 (context, "Animations") == 0) continue; g_message ("Got context '%s'", context); icon_names = gtk_icon_theme_list_icons (icon_theme, context); icon_names = g_list_sort (icon_names, (GCompareFunc) strcmp); for (ll = icon_names; ll; ll = g_list_next (ll)) { GtkToolItem *item; gchar *id = ll->data; if (g_str_equal (id, "emblem-desktop")) continue; if (g_str_has_suffix (id, "-symbolic")) continue; g_message ("Got id '%s'", id); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), id); gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (item), id); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); /* Prevent us having an insane number of icons: */ ++icons_count; if(icons_count >= max_icons) break; } g_list_free_full (icon_names, g_free); } g_list_free_full (contexts, g_free); } static void load_toggle_items (GtkToolPalette *palette) { GSList *toggle_group = NULL; GtkToolItem *item; GtkWidget *group; char *label; int i; group = gtk_tool_item_group_new ("Radio Item"); gtk_container_add (GTK_CONTAINER (palette), group); for (i = 1; i <= 10; ++i) { label = g_strdup_printf ("#%d", i); item = gtk_radio_tool_button_new (toggle_group); gtk_tool_button_set_label (GTK_TOOL_BUTTON (item), label); g_free (label); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); toggle_group = gtk_radio_tool_button_get_group (GTK_RADIO_TOOL_BUTTON (item)); } } static GtkToolItem * create_entry_item (const char *text) { GtkToolItem *item; GtkWidget *entry; entry = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (entry), text); gtk_entry_set_width_chars (GTK_ENTRY (entry), 5); item = gtk_tool_item_new (); gtk_container_add (GTK_CONTAINER (item), entry); return item; } static void load_special_items (GtkToolPalette *palette) { GtkToolItem *item; GtkWidget *group; GtkWidget *label_button; group = gtk_tool_item_group_new (NULL); label_button = gtk_button_new_with_label ("Advanced Features"); gtk_widget_show (label_button); gtk_tool_item_group_set_label_widget (GTK_TOOL_ITEM_GROUP (group), label_button); gtk_container_add (GTK_CONTAINER (palette), group); item = create_entry_item ("homogeneous=FALSE"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_container_child_set (GTK_CONTAINER (group), GTK_WIDGET (item), "homogeneous", FALSE, NULL); item = create_entry_item ("homogeneous=FALSE, expand=TRUE"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_container_child_set (GTK_CONTAINER (group), GTK_WIDGET (item), "homogeneous", FALSE, "expand", TRUE, NULL); item = create_entry_item ("homogeneous=FALSE, expand=TRUE, fill=FALSE"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_container_child_set (GTK_CONTAINER (group), GTK_WIDGET (item), "homogeneous", FALSE, "expand", TRUE, "fill", FALSE, NULL); item = create_entry_item ("homogeneous=FALSE, expand=TRUE, new-row=TRUE"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_container_child_set (GTK_CONTAINER (group), GTK_WIDGET (item), "homogeneous", FALSE, "expand", TRUE, "new-row", TRUE, NULL); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-up"); gtk_tool_item_set_tooltip_text (item, "Show on vertical palettes only"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_tool_item_set_visible_horizontal (item, FALSE); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-next"); gtk_tool_item_set_tooltip_text (item, "Show on horizontal palettes only"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_tool_item_set_visible_vertical (item, FALSE); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "edit-delete"); gtk_tool_item_set_tooltip_text (item, "Do not show at all"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_widget_set_no_show_all (GTK_WIDGET (item), TRUE); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "view-fullscreen"); gtk_tool_item_set_tooltip_text (item, "Expanded this item"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_container_child_set (GTK_CONTAINER (group), GTK_WIDGET (item), "homogeneous", FALSE, "expand", TRUE, NULL); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "help-browser"); gtk_tool_item_set_tooltip_text (item, "A regular item"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); } (uuay)revealer/Pcss_basics.css%/* You can edit the text in this window to change the * appearance of this Window. * Be careful, if you screw it up, nothing might be visible * anymore. :) */ /* This CSS resets all properties to their defaults values * and overrides all user settings and the theme in use */ @import url("resource://css_basics/reset.css"); /* Set a very futuristic style by default */ * { color: green; font-family: Monospace; border: 1px solid; } /* Make sure selections are visible */ :selected { background-color: darkGreen; color: black; } (uuay)gnome-calendar.png PNG  IHDR00WgAMA1_ zIDATx]lWwvvwNvc7֤}B"TDAVT臢ҨQ Ayh)BB R>ѠTb'󹉿];wwfa7N*Du5;wN;Nnn0;x}?&Ex @twRJ"T!@QW @ a H_(yJ6'C""a$ BuZ BiM* *=ܪD;ϏweBB E*es8N2H)A6/O^ZJ)[?J%#/hl34*aH(ω|>*c76 $2'\O6.8y}B1aᅊmsu'X aHB|rןP(J(^)RԑRDJNDΗ^ac_kG-VVW6l |#bhm!ne~ye9FhfA^G#7)rp$^<|] QJ"py2 KV^o $ʈ C;Qؐ{Iȥnc2}8ڭ;rk LdGui 8ƃ@ "Z!&7ֽ@^xO,k*)-l ]o[fMCz8@oܸ K;7ę v(d6LJxh-`Oˌ]5MdU`PHw@1c; 9D5#M@.}@7vg):?yyF+C ? lSKl =˓R)/fYZ)JgDeYZXbbGF@o84ށX5e!J:OS)N)w3ccdYv 180H+Mm֢@QNtR|'C^_Cgzt%eTkÐZ25;5эIXخh&BrĻt[jEZjc'ak*ͮa1yKTu]T%onl(r  ~ضrC4d'Ƅ:o!:zGcXd&zI} !ҩh+-G7 I4[=`ŵ $Mce_ܿ'F{1>7wccۀ^k1.Z\10ŁNVdf9v)c|t=< 3ccL̔1E94y0nzz=Du:3.XLvb+Ng0Ƣ2Eeh8kqIz]T2Gd6%"@nY>| `oFX^=vxƚek-ΝEj @f22kU|as <5d$Z-~@RcF޴,:ۼ|GzrTfIZ!|: 8p 91a@Jߗx+6][=Ӧj>pOn_" bc3?ϛukO!DQkuffZlnl> RiΟybҌԦh2 Gl.hxW^wMDŽ " C(Bk &;;=]u4 ֮T*:œqfKssdWw>?v۝}tZ$nR*?x {!koƯ-?ܳ{rHNSGvIRa8  ~#&qL$R0ers7h$NXťuV$J&WrX._M9<|ߗ~K)58ILb,Zn#ʼni$ J}y`1j s*qȷomR)v{sp/oH?[~qX!RJj*RqOiA)d2A)E$ycZs 9GZ%X\gqao.κ<=stؗŷD>Rz{D)>t|cDQDE$IB) jlr!.-h68r mh6:O|=|?k8VۯGkY$ Ks$Ii2 DQD(A0;3#8~|޲Gfnрtww|LN\B<[?~+? q;h6xO|| \),T*cPJ!GUG @NI!:>rC t]qB̀f3'G'~~OwָcJBeH)B0L}BCkspFYufm_]^!tuG/4GK9RT*8Bnׅ!ֲHE0Dx<RzD⯟},BxX~+~u2c}U/dxkR1뽑V@D¿)i>ed!0 ihQJM H)WIFfIoZGn&js\*x-'FkHd$v>iRΎ1fZE'2zkܠ9Ph-'PX,0Okb–IL&&;|7W 9rUˣ_ρmw#$I SZk8- $sV2[/H)d$J81Sŗ <.diZOZ_rљ#Ϝ9R 9HӔ4M}cJGQV[l4K`MI&|^B»x static GtkWidget *window = NULL; static GtkWidget *da; static GdkRGBA color; static GtkWidget *frame; /* draw callback for the drawing area */ static gboolean draw_callback (GtkWidget *widget, cairo_t *cr, gpointer data) { gdk_cairo_set_source_rgba (cr, &color); cairo_paint (cr); return TRUE; } static void response_cb (GtkDialog *dialog, gint response_id, gpointer user_data) { if (response_id == GTK_RESPONSE_OK) { gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (dialog), &color); } gtk_widget_destroy (GTK_WIDGET (dialog)); } static void change_color_callback (GtkWidget *button, gpointer data) { GtkWidget *dialog; dialog = gtk_color_chooser_dialog_new ("Changing color", GTK_WINDOW (window)); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (dialog), &color); g_signal_connect (dialog, "response", G_CALLBACK (response_cb), NULL); gtk_widget_show_all (dialog); } GtkWidget * do_colorsel (GtkWidget *do_widget) { GtkWidget *vbox; GtkWidget *button; if (!window) { color.red = 0; color.blue = 1; color.green = 0; color.alpha = 1; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Color Chooser"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 8); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (window), vbox); /* * Create the color swatch area */ frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); da = gtk_drawing_area_new (); g_signal_connect (da, "draw", G_CALLBACK (draw_callback), NULL); /* set a minimum size */ gtk_widget_set_size_request (da, 200, 200); gtk_container_add (GTK_CONTAINER (frame), da); button = gtk_button_new_with_mnemonic ("_Change the above color"); gtk_widget_set_halign (button, GTK_ALIGN_END); gtk_widget_set_valign (button, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); g_signal_connect (button, "clicked", G_CALLBACK (change_color_callback), NULL); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)menus.c/* Menus * * There are several widgets involved in displaying menus. The * GtkMenuBar widget is a menu bar, which normally appears horizontally * at the top of an application, but can also be layed out vertically. * The GtkMenu widget is the actual menu that pops up. Both GtkMenuBar * and GtkMenu are subclasses of GtkMenuShell; a GtkMenuShell contains * menu items (GtkMenuItem). Each menu item contains text and/or images * and can be selected by the user. * * There are several kinds of menu item, including plain GtkMenuItem, * GtkCheckMenuItem which can be checked/unchecked, GtkRadioMenuItem * which is a check menu item that's in a mutually exclusive group, * GtkSeparatorMenuItem which is a separator bar, GtkTearoffMenuItem * which allows a GtkMenu to be torn off, and GtkImageMenuItem which * can place a GtkImage or other widget next to the menu text. * * A GtkMenuItem can have a submenu, which is simply a GtkMenu to pop * up when the menu item is selected. Typically, all menu items in a menu bar * have submenus. * * GtkUIManager provides a higher-level interface for creating menu bars * and menus; while you can construct menus manually, most people don't * do that. There's a separate demo for GtkUIManager. */ #include #include #include static GtkWidget * create_menu (gint depth) { GtkWidget *menu; GtkWidget *menuitem; GSList *group; char buf[32]; int i, j; if (depth < 1) return NULL; menu = gtk_menu_new (); group = NULL; for (i = 0, j = 1; i < 5; i++, j++) { sprintf (buf, "item %2d - %d", depth, j); menuitem = gtk_radio_menu_item_new_with_label (group, buf); group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menuitem)); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); gtk_widget_show (menuitem); if (i == 3) gtk_widget_set_sensitive (menuitem, FALSE); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (depth - 1)); } return menu; } static void change_orientation (GtkWidget *button, GtkWidget *menubar) { GtkWidget *parent; GtkOrientation orientation; parent = gtk_widget_get_parent (menubar); orientation = gtk_orientable_get_orientation (GTK_ORIENTABLE (parent)); gtk_orientable_set_orientation (GTK_ORIENTABLE (parent), 1 - orientation); if (orientation == GTK_ORIENTATION_VERTICAL) g_object_set (menubar, "pack-direction", GTK_PACK_DIRECTION_TTB, NULL); else g_object_set (menubar, "pack-direction", GTK_PACK_DIRECTION_LTR, NULL); } static GtkWidget *window = NULL; GtkWidget * do_menus (GtkWidget *do_widget) { GtkWidget *box; GtkWidget *box1; GtkWidget *box2; GtkWidget *button; if (!window) { GtkWidget *menubar; GtkWidget *menu; GtkWidget *menuitem; GtkAccelGroup *accel_group; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Menus"); g_signal_connect (window, "destroy", G_CALLBACK(gtk_widget_destroyed), &window); accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); gtk_container_set_border_width (GTK_CONTAINER (window), 0); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_add (GTK_CONTAINER (window), box); gtk_widget_show (box); box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (box), box1); gtk_widget_show (box1); menubar = gtk_menu_bar_new (); gtk_box_pack_start (GTK_BOX (box1), menubar, FALSE, TRUE, 0); gtk_widget_show (menubar); menu = create_menu (2); menuitem = gtk_menu_item_new_with_label ("test\nline2"); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu); gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem); gtk_widget_show (menuitem); menuitem = gtk_menu_item_new_with_label ("foo"); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (3)); gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem); gtk_widget_show (menuitem); menuitem = gtk_menu_item_new_with_label ("bar"); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (4)); gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem); gtk_widget_show (menuitem); box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); gtk_widget_show (box2); button = gtk_button_new_with_label ("Flip"); g_signal_connect (button, "clicked", G_CALLBACK (change_orientation), menubar); gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); gtk_widget_show (button); button = gtk_button_new_with_label ("Close"); g_signal_connect_swapped (button, "clicked", G_CALLBACK(gtk_widget_destroy), window); gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); gtk_widget_set_can_default (button, TRUE); gtk_widget_grab_default (button); gtk_widget_show (button); } if (!gtk_widget_get_visible (window)) { gtk_widget_show (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)drawingarea.cZ!/* Drawing Area * * GtkDrawingArea is a blank area where you can draw custom displays * of various kinds. * * This demo has two drawing areas. The checkerboard area shows * how you can just draw something; all you have to do is write * a signal handler for expose_event, as shown here. * * The "scribble" area is a bit more advanced, and shows how to handle * events such as button presses and mouse motion. Click the mouse * and drag in the scribble area to draw squiggles. Resize the window * to clear the area. */ #include static GtkWidget *window = NULL; /* Pixmap for scribble area, to store current scribbles */ static cairo_surface_t *surface = NULL; /* Create a new surface of the appropriate size to store our scribbles */ static gboolean scribble_configure_event (GtkWidget *widget, GdkEventConfigure *event, gpointer data) { GtkAllocation allocation; cairo_t *cr; if (surface) cairo_surface_destroy (surface); gtk_widget_get_allocation (widget, &allocation); surface = gdk_window_create_similar_surface (gtk_widget_get_window (widget), CAIRO_CONTENT_COLOR, allocation.width, allocation.height); /* Initialize the surface to white */ cr = cairo_create (surface); cairo_set_source_rgb (cr, 1, 1, 1); cairo_paint (cr); cairo_destroy (cr); /* We've handled the configure event, no need for further processing. */ return TRUE; } /* Redraw the screen from the surface */ static gboolean scribble_draw (GtkWidget *widget, cairo_t *cr, gpointer data) { cairo_set_source_surface (cr, surface, 0, 0); cairo_paint (cr); return FALSE; } /* Draw a rectangle on the screen */ static void draw_brush (GtkWidget *widget, gdouble x, gdouble y) { GdkRectangle update_rect; cairo_t *cr; update_rect.x = x - 3; update_rect.y = y - 3; update_rect.width = 6; update_rect.height = 6; /* Paint to the surface, where we store our state */ cr = cairo_create (surface); gdk_cairo_rectangle (cr, &update_rect); cairo_fill (cr); cairo_destroy (cr); /* Now invalidate the affected region of the drawing area. */ gdk_window_invalidate_rect (gtk_widget_get_window (widget), &update_rect, FALSE); } static gboolean scribble_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer data) { if (surface == NULL) return FALSE; /* paranoia check, in case we haven't gotten a configure event */ if (event->button == GDK_BUTTON_PRIMARY) draw_brush (widget, event->x, event->y); /* We've handled the event, stop processing */ return TRUE; } static gboolean scribble_motion_notify_event (GtkWidget *widget, GdkEventMotion *event, gpointer data) { int x, y; GdkModifierType state; if (surface == NULL) return FALSE; /* paranoia check, in case we haven't gotten a configure event */ /* This call is very important; it requests the next motion event. * If you don't call gdk_window_get_pointer() you'll only get * a single motion event. The reason is that we specified * GDK_POINTER_MOTION_HINT_MASK to gtk_widget_set_events(). * If we hadn't specified that, we could just use event->x, event->y * as the pointer location. But we'd also get deluged in events. * By requesting the next event as we handle the current one, * we avoid getting a huge number of events faster than we * can cope. */ gdk_window_get_device_position (event->window, event->device, &x, &y, &state); if (state & GDK_BUTTON1_MASK) draw_brush (widget, x, y); /* We've handled it, stop processing */ return TRUE; } static gboolean checkerboard_draw (GtkWidget *da, cairo_t *cr, gpointer data) { gint i, j, xcount, ycount, width, height; #define CHECK_SIZE 10 #define SPACING 2 /* At the start of a draw handler, a clip region has been set on * the Cairo context, and the contents have been cleared to the * widget's background color. The docs for * gdk_window_begin_paint_region() give more details on how this * works. */ xcount = 0; width = gtk_widget_get_allocated_width (da); height = gtk_widget_get_allocated_height (da); i = SPACING; while (i < width) { j = SPACING; ycount = xcount % 2; /* start with even/odd depending on row */ while (j < height) { if (ycount % 2) cairo_set_source_rgb (cr, 0.45777, 0, 0.45777); else cairo_set_source_rgb (cr, 1, 1, 1); /* If we're outside the clip, this will do nothing. */ cairo_rectangle (cr, i, j, CHECK_SIZE, CHECK_SIZE); cairo_fill (cr); j += CHECK_SIZE + SPACING; ++ycount; } i += CHECK_SIZE + SPACING; ++xcount; } /* return TRUE because we've handled this event, so no * further processing is required. */ return TRUE; } static void close_window (void) { window = NULL; if (surface) cairo_surface_destroy (surface); surface = NULL; } GtkWidget * do_drawingarea (GtkWidget *do_widget) { GtkWidget *frame; GtkWidget *vbox; GtkWidget *da; GtkWidget *label; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Drawing Area"); g_signal_connect (window, "destroy", G_CALLBACK (close_window), NULL); gtk_container_set_border_width (GTK_CONTAINER (window), 8); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (window), vbox); /* * Create the checkerboard area */ label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Checkerboard pattern"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); da = gtk_drawing_area_new (); /* set a minimum size */ gtk_widget_set_size_request (da, 100, 100); gtk_container_add (GTK_CONTAINER (frame), da); g_signal_connect (da, "draw", G_CALLBACK (checkerboard_draw), NULL); /* * Create the scribble area */ label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Scribble area"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); da = gtk_drawing_area_new (); /* set a minimum size */ gtk_widget_set_size_request (da, 100, 100); gtk_container_add (GTK_CONTAINER (frame), da); /* Signals used to handle backing surface */ g_signal_connect (da, "draw", G_CALLBACK (scribble_draw), NULL); g_signal_connect (da,"configure-event", G_CALLBACK (scribble_configure_event), NULL); /* Event signals */ g_signal_connect (da, "motion-notify-event", G_CALLBACK (scribble_motion_notify_event), NULL); g_signal_connect (da, "button-press-event", G_CALLBACK (scribble_button_press_event), NULL); /* Ask to receive events the drawing area doesn't normally * subscribe to */ gtk_widget_set_events (da, gtk_widget_get_events (da) | GDK_LEAVE_NOTIFY_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)printing.c/* Printing * * GtkPrintOperation offers a simple API to support printing * in a cross-platform way. * */ #include #include /* In points */ #define HEADER_HEIGHT (10*72/25.4) #define HEADER_GAP (3*72/25.4) typedef struct { gchar *resourcename; gdouble font_size; gint lines_per_page; gchar **lines; gint num_lines; gint num_pages; } PrintData; static void begin_print (GtkPrintOperation *operation, GtkPrintContext *context, gpointer user_data) { PrintData *data = (PrintData *)user_data; GBytes *bytes; int i; double height; height = gtk_print_context_get_height (context) - HEADER_HEIGHT - HEADER_GAP; data->lines_per_page = floor (height / data->font_size); bytes = g_resources_lookup_data (data->resourcename, 0, NULL); data->lines = g_strsplit (g_bytes_get_data (bytes, NULL), "\n", 0); g_bytes_unref (bytes); i = 0; while (data->lines[i] != NULL) i++; data->num_lines = i; data->num_pages = (data->num_lines - 1) / data->lines_per_page + 1; gtk_print_operation_set_n_pages (operation, data->num_pages); } static void draw_page (GtkPrintOperation *operation, GtkPrintContext *context, gint page_nr, gpointer user_data) { PrintData *data = (PrintData *)user_data; cairo_t *cr; PangoLayout *layout; gint text_width, text_height; gdouble width; gint line, i; PangoFontDescription *desc; gchar *page_str; cr = gtk_print_context_get_cairo_context (context); width = gtk_print_context_get_width (context); cairo_rectangle (cr, 0, 0, width, HEADER_HEIGHT); cairo_set_source_rgb (cr, 0.8, 0.8, 0.8); cairo_fill_preserve (cr); cairo_set_source_rgb (cr, 0, 0, 0); cairo_set_line_width (cr, 1); cairo_stroke (cr); layout = gtk_print_context_create_pango_layout (context); desc = pango_font_description_from_string ("sans 14"); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); pango_layout_set_text (layout, data->resourcename, -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); if (text_width > width) { pango_layout_set_width (layout, width); pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_START); pango_layout_get_pixel_size (layout, &text_width, &text_height); } cairo_move_to (cr, (width - text_width) / 2, (HEADER_HEIGHT - text_height) / 2); pango_cairo_show_layout (cr, layout); page_str = g_strdup_printf ("%d/%d", page_nr + 1, data->num_pages); pango_layout_set_text (layout, page_str, -1); g_free (page_str); pango_layout_set_width (layout, -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); cairo_move_to (cr, width - text_width - 4, (HEADER_HEIGHT - text_height) / 2); pango_cairo_show_layout (cr, layout); g_object_unref (layout); layout = gtk_print_context_create_pango_layout (context); desc = pango_font_description_from_string ("monospace"); pango_font_description_set_size (desc, data->font_size * PANGO_SCALE); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); cairo_move_to (cr, 0, HEADER_HEIGHT + HEADER_GAP); line = page_nr * data->lines_per_page; for (i = 0; i < data->lines_per_page && line < data->num_lines; i++) { pango_layout_set_text (layout, data->lines[line], -1); pango_cairo_show_layout (cr, layout); cairo_rel_move_to (cr, 0, data->font_size); line++; } g_object_unref (layout); } static void end_print (GtkPrintOperation *operation, GtkPrintContext *context, gpointer user_data) { PrintData *data = (PrintData *)user_data; g_free (data->resourcename); g_strfreev (data->lines); g_free (data); } GtkWidget * do_printing (GtkWidget *do_widget) { GtkPrintOperation *operation; GtkPrintSettings *settings; PrintData *data; GError *error = NULL; operation = gtk_print_operation_new (); data = g_new0 (PrintData, 1); data->resourcename = g_strdup ("/sources/printing.c"); data->font_size = 12.0; g_signal_connect (G_OBJECT (operation), "begin-print", G_CALLBACK (begin_print), data); g_signal_connect (G_OBJECT (operation), "draw-page", G_CALLBACK (draw_page), data); g_signal_connect (G_OBJECT (operation), "end-print", G_CALLBACK (end_print), data); gtk_print_operation_set_use_full_page (operation, FALSE); gtk_print_operation_set_unit (operation, GTK_UNIT_POINTS); gtk_print_operation_set_embed_page_setup (operation, TRUE); settings = gtk_print_settings_new (); gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_OUTPUT_BASENAME, "gtk-demo"); gtk_print_operation_set_print_settings (operation, settings); gtk_print_operation_run (operation, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, GTK_WINDOW (do_widget), &error); g_object_unref (operation); g_object_unref (settings); if (error) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (do_widget), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); } return NULL; } (uuay)gnome-calendar.png PNG  IHDR00WgAMA1_ zIDATx]lWwvvwNvc7֤}B"TDAVT臢ҨQ Ayh)BB R>ѠTb'󹉿];wwfa7N*Du5;wN;Nnn0;x}?&Ex @twRJ"T!@QW @ a H_(yJ6'C""a$ BuZ BiM* *=ܪD;ϏweBB E*es8N2H)A6/O^ZJ)[?J%#/hl34*aH(ω|>*c76 $2'\O6.8y}B1aᅊmsu'X aHB|rןP(J(^)RԑRDJNDΗ^ac_kG-VVW6l |#bhm!ne~ye9FhfA^G#7)rp$^<|] QJ"py2 KV^o $ʈ C;Qؐ{Iȥnc2}8ڭ;rk LdGui 8ƃ@ "Z!&7ֽ@^xO,k*)-l ]o[fMCz8@oܸ K;7ę v(d6LJxh-`Oˌ]5MdU`PHw@1c; 9D5#M@.}@7vg):?yyF+C ? lSKl =˓R)/fYZ)JgDeYZXbbGF@o84ށX5e!J:OS)N)w3ccdYv 180H+Mm֢@QNtR|'C^_Cgzt%eTkÐZ25;5эIXخh&BrĻt[jEZjc'ak*ͮa1yKTu]T%onl(r  ~ضrC4d'Ƅ:o!:zGcXd&zI} !ҩh+-G7 I4[=`ŵ $Mce_ܿ'F{1>7wccۀ^k1.Z\10ŁNVdf9v)c|t=< 3ccL̔1E94y0nzz=Du:3 static GtkWidget *window = NULL; static void search_entry_destroyed (GtkWidget *widget) { window = NULL; } static void search_changed_cb (GtkSearchEntry *entry, GtkLabel *result_label) { const char *text; text = gtk_entry_get_text (GTK_ENTRY (entry)); g_message ("search changed: %s", text); gtk_label_set_text (result_label, text ? text : ""); } static void changed_cb (GtkEditable *editable) { const char *text; text = gtk_entry_get_text (GTK_ENTRY (editable)); g_message ("changed: %s", text); } static gboolean window_key_press_event_cb (GtkWidget *widget, GdkEvent *event, GtkSearchBar *bar) { return gtk_search_bar_handle_event (bar, event); } static void search_changed (GtkSearchEntry *entry, GtkLabel *label) { gtk_label_set_text (label, "search-changed"); } static void next_match (GtkSearchEntry *entry, GtkLabel *label) { gtk_label_set_text (label, "next-match"); } static void previous_match (GtkSearchEntry *entry, GtkLabel *label) { gtk_label_set_text (label, "previous-match"); } static void stop_search (GtkSearchEntry *entry, GtkLabel *label) { gtk_label_set_text (label, "stop-search"); } GtkWidget * do_search_entry2 (GtkWidget *do_widget) { GtkWidget *vbox; GtkWidget *hbox; GtkWidget *label; GtkWidget *entry; GtkWidget *container; GtkWidget *searchbar; GtkWidget *button; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Search Entry #2"); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_resizable (GTK_WINDOW (window), TRUE); gtk_widget_set_size_request (window, 200, -1); g_signal_connect (window, "destroy", G_CALLBACK (search_entry_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 0); entry = gtk_search_entry_new (); container = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); gtk_widget_set_halign (container, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (container), entry, FALSE, FALSE, 0); searchbar = gtk_search_bar_new (); gtk_search_bar_connect_entry (GTK_SEARCH_BAR (searchbar), GTK_ENTRY (entry)); gtk_search_bar_set_show_close_button (GTK_SEARCH_BAR (searchbar), FALSE); gtk_container_add (GTK_CONTAINER (searchbar), container); gtk_box_pack_start (GTK_BOX (vbox), searchbar, FALSE, FALSE, 0); /* Hook the search bar to key presses */ g_signal_connect (window, "key-press-event", G_CALLBACK (window_key_press_event_cb), searchbar); /* Help */ label = gtk_label_new ("Start Typing to search"); gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0); /* Toggle button */ button = gtk_toggle_button_new_with_label ("Search"); g_object_bind_property (button, "active", searchbar, "search-mode-enabled", G_BINDING_BIDIRECTIONAL); gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0); /* Result */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 0); label = gtk_label_new ("Result:"); gtk_label_set_xalign (GTK_LABEL (label), 0.0); gtk_widget_set_margin_start (label, 6); gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); label = gtk_label_new (""); gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); g_signal_connect (entry, "search-changed", G_CALLBACK (search_changed_cb), label); g_signal_connect (entry, "changed", G_CALLBACK (changed_cb), label); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 0); label = gtk_label_new ("Signal:"); gtk_label_set_xalign (GTK_LABEL (label), 0.0); gtk_widget_set_margin_start (label, 6); gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); label = gtk_label_new (""); gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); g_signal_connect (entry, "search-changed", G_CALLBACK (search_changed), label); g_signal_connect (entry, "next-match", G_CALLBACK (next_match), label); g_signal_connect (entry, "previous-match", G_CALLBACK (previous_match), label); g_signal_connect (entry, "stop-search", G_CALLBACK (stop_search), label); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)button_box.c/* Button Boxes * * The Button Box widgets are used to arrange buttons with padding. */ #include #include static GtkWidget * create_bbox (gint horizontal, char *title, gint spacing, gint layout) { GtkWidget *frame; GtkWidget *bbox; GtkWidget *button; frame = gtk_frame_new (title); if (horizontal) bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); else bbox = gtk_button_box_new (GTK_ORIENTATION_VERTICAL); gtk_container_set_border_width (GTK_CONTAINER (bbox), 5); gtk_container_add (GTK_CONTAINER (frame), bbox); gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), layout); gtk_box_set_spacing (GTK_BOX (bbox), spacing); button = gtk_button_new_with_label (_("OK")); gtk_container_add (GTK_CONTAINER (bbox), button); button = gtk_button_new_with_label (_("Cancel")); gtk_container_add (GTK_CONTAINER (bbox), button); button = gtk_button_new_with_label (_("Help")); gtk_container_add (GTK_CONTAINER (bbox), button); return frame; } GtkWidget * do_button_box (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *main_vbox; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *frame_horz; GtkWidget *frame_vert; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Button Boxes"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), main_vbox); frame_horz = gtk_frame_new ("Horizontal Button Boxes"); gtk_box_pack_start (GTK_BOX (main_vbox), frame_horz, TRUE, TRUE, 10); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 10); gtk_container_add (GTK_CONTAINER (frame_horz), vbox); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "Spread", 40, GTK_BUTTONBOX_SPREAD), TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "Edge", 40, GTK_BUTTONBOX_EDGE), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "Start", 40, GTK_BUTTONBOX_START), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "End", 40, GTK_BUTTONBOX_END), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "Center", 40, GTK_BUTTONBOX_CENTER), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "Expand", 0, GTK_BUTTONBOX_EXPAND), TRUE, TRUE, 5); frame_vert = gtk_frame_new ("Vertical Button Boxes"); gtk_box_pack_start (GTK_BOX (main_vbox), frame_vert, TRUE, TRUE, 10); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 10); gtk_container_add (GTK_CONTAINER (frame_vert), hbox); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "Spread", 10, GTK_BUTTONBOX_SPREAD), TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "Edge", 10, GTK_BUTTONBOX_EDGE), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "Start", 10, GTK_BUTTONBOX_START), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "End", 10, GTK_BUTTONBOX_END), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "Center", 10, GTK_BUTTONBOX_CENTER), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "Expand", 0, GTK_BUTTONBOX_EXPAND), TRUE, TRUE, 5); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)ui/search_entry.c"/* Entry/Search Entry * * GtkEntry allows to display icons and progress information. * This demo shows how to use these features in a search entry. */ #include #include static GtkWidget *window = NULL; static GtkWidget *menu = NULL; static GtkWidget *notebook = NULL; static guint search_progress_id = 0; static guint finish_search_id = 0; static void show_find_button (void) { gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 0); } static void show_cancel_button (void) { gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 1); } static gboolean search_progress (gpointer data) { gtk_entry_progress_pulse (GTK_ENTRY (data)); return G_SOURCE_CONTINUE; } static void search_progress_done (GtkEntry *entry) { gtk_entry_set_progress_fraction (entry, 0.0); } static gboolean finish_search (GtkButton *button) { show_find_button (); g_source_remove (search_progress_id); search_progress_id = 0; return FALSE; } static gboolean start_search_feedback (gpointer data) { search_progress_id = g_timeout_add_full (G_PRIORITY_DEFAULT, 100, (GSourceFunc)search_progress, data, (GDestroyNotify)search_progress_done); return FALSE; } static void start_search (GtkButton *button, GtkEntry *entry) { show_cancel_button (); search_progress_id = g_timeout_add_seconds (1, (GSourceFunc)start_search_feedback, entry); finish_search_id = g_timeout_add_seconds (15, (GSourceFunc)finish_search, button); } static void stop_search (GtkButton *button, gpointer data) { g_source_remove (finish_search_id); finish_search (button); } static void clear_entry (GtkEntry *entry) { gtk_entry_set_text (entry, ""); } static void search_by_name (GtkWidget *item, GtkEntry *entry) { gtk_entry_set_icon_tooltip_text (entry, GTK_ENTRY_ICON_PRIMARY, "Search by name\n" "Click here to change the search type"); gtk_entry_set_placeholder_text (entry, "name"); } static void search_by_description (GtkWidget *item, GtkEntry *entry) { gtk_entry_set_icon_tooltip_text (entry, GTK_ENTRY_ICON_PRIMARY, "Search by description\n" "Click here to change the search type"); gtk_entry_set_placeholder_text (entry, "description"); } static void search_by_file (GtkWidget *item, GtkEntry *entry) { gtk_entry_set_icon_tooltip_text (entry, GTK_ENTRY_ICON_PRIMARY, "Search by file name\n" "Click here to change the search type"); gtk_entry_set_placeholder_text (entry, "file name"); } GtkWidget * create_search_menu (GtkWidget *entry) { GtkWidget *menu; GtkWidget *item; menu = gtk_menu_new (); item = gtk_menu_item_new_with_mnemonic ("Search by _name"); g_signal_connect (item, "activate", G_CALLBACK (search_by_name), entry); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new_with_mnemonic ("Search by _description"); g_signal_connect (item, "activate", G_CALLBACK (search_by_description), entry); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new_with_mnemonic ("Search by _file name"); g_signal_connect (item, "activate", G_CALLBACK (search_by_file), entry); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show_all (menu); return menu; } static void icon_press_cb (GtkEntry *entry, gint position, GdkEventButton *event, gpointer data) { if (position == GTK_ENTRY_ICON_PRIMARY) gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, event->button, event->time); } static void activate_cb (GtkEntry *entry, GtkButton *button) { if (search_progress_id != 0) return; start_search (button, entry); } static void search_entry_destroyed (GtkWidget *widget) { if (finish_search_id != 0) g_source_remove (finish_search_id); if (search_progress_id != 0) g_source_remove (search_progress_id); window = NULL; } static void entry_populate_popup (GtkEntry *entry, GtkMenu *menu, gpointer user_data) { GtkWidget *item; GtkWidget *search_menu; gboolean has_text; has_text = gtk_entry_get_text_length (entry) > 0; item = gtk_separator_menu_item_new (); gtk_widget_show (item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new_with_mnemonic ("C_lear"); gtk_widget_show (item); g_signal_connect_swapped (item, "activate", G_CALLBACK (clear_entry), entry); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_set_sensitive (item, has_text); search_menu = create_search_menu (GTK_WIDGET (entry)); item = gtk_menu_item_new_with_label ("Search by"); gtk_widget_show (item); gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), search_menu); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); } GtkWidget * do_search_entry (GtkWidget *do_widget) { GtkWidget *content_area; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *label; GtkWidget *entry; GtkWidget *button; GtkWidget *find_button; GtkWidget *cancel_button; if (!window) { window = gtk_dialog_new_with_buttons ("Search Entry", GTK_WINDOW (do_widget), 0, _("_Close"), GTK_RESPONSE_NONE, NULL); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (window, "destroy", G_CALLBACK (search_entry_destroyed), &window); content_area = gtk_dialog_get_content_area (GTK_DIALOG (window)); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Search entry demo"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 0); /* Create our entry */ entry = gtk_search_entry_new (); gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0); /* Create the find and cancel buttons */ notebook = gtk_notebook_new (); gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE); gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); gtk_box_pack_start (GTK_BOX (hbox), notebook, FALSE, FALSE, 0); find_button = gtk_button_new_with_label ("Find"); g_signal_connect (find_button, "clicked", G_CALLBACK (start_search), entry); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), find_button, NULL); gtk_widget_show (find_button); cancel_button = gtk_button_new_with_label ("Cancel"); g_signal_connect (cancel_button, "clicked", G_CALLBACK (stop_search), NULL); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), cancel_button, NULL); gtk_widget_show (cancel_button); /* Set up the search icon */ search_by_name (NULL, GTK_ENTRY (entry)); /* Set up the clear icon */ g_signal_connect (entry, "icon-press", G_CALLBACK (icon_press_cb), NULL); g_signal_connect (entry, "activate", G_CALLBACK (activate_cb), NULL); /* Create the menu */ menu = create_search_menu (entry); gtk_menu_attach_to_widget (GTK_MENU (menu), entry, NULL); /* add accessible alternatives for icon functionality */ g_signal_connect (entry, "populate-popup", G_CALLBACK (entry_populate_popup), NULL); /* Give the focus to the close button */ button = gtk_dialog_get_widget_for_response (GTK_DIALOG (window), GTK_RESPONSE_NONE); gtk_widget_grab_focus (button); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (menu); gtk_widget_destroy (window); window = NULL; } return window; } (uuay)reset.css/* @import this colorsheet to get the default values for every property. * This is useful when writing special CSS tests that should not be * inluenced by themes - not even the default ones. * Keep in mind that the output will be very ugly and not look like * anything GTK. * Also, when adding new style properties, please add them here. */ * { color: inherit; font-size: inherit; background-color: initial; font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; text-shadow: inherit; icon-shadow: inherit; box-shadow: initial; margin-top: initial; margin-left: initial; margin-bottom: initial; margin-right: initial; padding-top: initial; padding-left: initial; padding-bottom: initial; padding-right: initial; border-top-style: initial; border-top-width: initial; border-left-style: initial; border-left-width: initial; border-bottom-style: initial; border-bottom-width: initial; border-right-style: initial; border-right-width: initial; border-top-left-radius: initial; border-top-right-radius: initial; border-bottom-right-radius: initial; border-bottom-left-radius: initial; outline-style: initial; outline-width: initial; outline-offset: initial; background-clip: initial; background-origin: initial; background-size: initial; background-position: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: initial; outline-color: initial; background-repeat: initial; background-image: initial; border-image-source: initial; border-image-repeat: initial; border-image-slice: initial; border-image-width: initial; transition-property: initial; transition-duration: initial; transition-timing-function: initial; transition-delay: initial; engine: initial; gtk-key-bindings: initial; -GtkWidget-focus-line-width: 0; -GtkWidget-focus-padding: 0; -GtkNotebook-initial-gap: 0; } (uuay)apple-red.png PNG  IHDR00WgAMA a IDATx[]Wyk9s8 N)JڄڨB>pE WK R@@@BqS+8v3sk}>31^|֞9e{^tvy_Tz߇} r޽cksM?p<p+E>*ܾ֏ W]vfgvw>yv!'+_dLom]aD֭G7L#ͯ굿>tbލW-,.{>E,&+֬h /ڳ{^>߄z;?/ ;po}U.tKGŇf6)o]EZ91|}~ W--7C4 ;%씍ozۍ! g|aNgnMo,VKU!@0G|׶nڱk5pJog&;W5B8tpao;[6:׽O\ 2R wͮr|Ο=ZEB|[aղ,ꭿw~x VmB)Fhcݷ}\In}GSefc"vԪg/-3j"`wogpr>Aqow;7O ̄ & AXA۰ض8pS9pMNwnmჃja~n,v?s{v}7ُOP v4!tTUMOh[( 0 :4uȢ(;'yn9?Scbጙ!|'/͛7+Wu_իNH)D^'jFĪBĐ,h.%49 0ofH_ CSv&/ʁnzhɖtJ?ܽ^q6]^~ӣ&5)G1!@2 ĺۖzf r\饊6?7=_ޓwַ/;w'W7y'^jc wzCDqbO1H!޴a f曖cP26,dhRЀص0hO~ί{r/VOMVl^}5#ey_\3*1D7*Jx*4+Dƨ$",X^SxAJpǏvpǏ8Gݍ׮YmeM޲zr\ǎ1?L NɈq X4L Iz!u$Dw!P!X(3J⺫~w>*;o; fLթѦO{ A?MtzU:z47"qsHNDS@8ɜn5A75e<3atH` _ v:,~J;I`U"* af#Pp wD0US"Vka`9zT5^W/8Ognl?P2⠥Qs8;A T"J9%3^]vݫ )%@_jBxɘ9w'fT(0 -/lpaAAi#aEN0NKm7]E;tz`@~$Zɘ`xD^1CQƱoN@pu,@z%jS6:ઔEk)e  "`h "TFPv,GbrJ>5ZS TP'4QuGlb*-+18ʨ>L Uǣ",*V1,E, *U;Ή@&D "Ǐљ&}a5\ )"JF0U3 sh БB+isa+  J)-M:&Xɸ "y4âd-TrD@#Ȱ(q@S<ܶwŧULЛYE*J.D B#%Cdb`#j0#qZUT)h}7kCPK VfZaoI@PB iA ֩#  F Q>JdŽP1IP"XTlXE"ia"Z@<hsaЎgyhCL_) LMttzb|[{v0Fԕ*A"E" 'U(G3.ElPSZsD %;١B1rch&3Ԅ%$D9FbwƓ963{;ydb vXs<2N80qY?fza\!9zTr;O97c2~ie8]щblE˜ |\IENDB`(uuay)stack.cv/* Stack * * GtkStack is a container that shows a single child at a time, * with nice transitions when the visible child changes. * * GtkStackSwitcher adds buttons to control which child is visible. */ #include static GtkBuilder *builder; GtkWidget * do_stack (GtkWidget *do_widget) { static GtkWidget *window = NULL; GError *err = NULL; if (!window) { builder = gtk_builder_new (); gtk_builder_add_from_resource (builder, "/stack/stack.ui", &err); if (err) { g_error ("ERROR: %s\n", err->message); return NULL; } gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)css_accordion.css;@import url("resource://css_accordion/reset.css"); * { transition-property: color, background-color, border-color, background-image, padding, border-width; transition-duration: 1s; font: Cantarell 20px; } GtkWindow { background: linear-gradient(153deg, #151515, #151515 5px, transparent 5px) 0 0, linear-gradient(333deg, #151515, #151515 5px, transparent 5px) 10px 5px, linear-gradient(153deg, #222, #222 5px, transparent 5px) 0 5px, linear-gradient(333deg, #222, #222 5px, transparent 5px) 10px 10px, linear-gradient(90deg, #1b1b1b, #1b1b1b 10px, transparent 10px), linear-gradient(#1d1d1d, #1d1d1d 25%, #1a1a1a 25%, #1a1a1a 50%, transparent 50%, transparent 75%, #242424 75%, #242424); background-color: #131313; background-size: 20px 20px; } .button { color: black; background-color: #bbb; border-style: solid; border-width: 2px 0 2px 2px; border-color: #333; padding: 12px 4px; } .button:first-child { border-radius: 5px 0 0 5px; } .button:last-child { border-radius: 0 5px 5px 0; border-width: 2px; } .button:hover { padding: 12px 48px; background-color: #4870bc; } .button *:hover { color: white; } .button:hover:active, .button:active { background-color: #993401; } (uuay)glarea.c)/* OpenGL Area * * GtkGLArea is a widget that allows custom drawing using OpenGL calls. */ #include #include #include static GtkWidget *demo_window = NULL; /* the GtkGLArea widget */ static GtkWidget *gl_area = NULL; enum { X_AXIS, Y_AXIS, Z_AXIS, N_AXIS }; /* Rotation angles on each axis */ static float rotation_angles[N_AXIS] = { 0.0 }; /* The object we are drawing */ static const GLfloat vertex_data[] = { 0.f, 0.5f, 0.f, 1.f, 0.5f, -0.366f, 0.f, 1.f, -0.5f, -0.366f, 0.f, 1.f, }; /* Initialize the GL buffers */ static void init_buffers (GLuint *vao_out, GLuint *buffer_out) { GLuint vao, buffer; /* We only use one VAO, so we always keep it bound */ glGenVertexArrays (1, &vao); glBindVertexArray (vao); /* This is the buffer that holds the vertices */ glGenBuffers (1, &buffer); glBindBuffer (GL_ARRAY_BUFFER, buffer); glBufferData (GL_ARRAY_BUFFER, sizeof (vertex_data), vertex_data, GL_STATIC_DRAW); glBindBuffer (GL_ARRAY_BUFFER, 0); if (vao_out != NULL) *vao_out = vao; if (buffer_out != NULL) *buffer_out = buffer; } /* Create and compile a shader */ static GLuint create_shader (int type, const char *src) { GLuint shader; int status; shader = glCreateShader (type); glShaderSource (shader, 1, &src, NULL); glCompileShader (shader); glGetShaderiv (shader, GL_COMPILE_STATUS, &status); if (status == GL_FALSE) { int log_len; char *buffer; glGetShaderiv (shader, GL_INFO_LOG_LENGTH, &log_len); buffer = g_malloc (log_len + 1); glGetShaderInfoLog (shader, log_len, NULL, buffer); g_warning ("Compile failure in %s shader:\n%s\n", type == GL_VERTEX_SHADER ? "vertex" : "fragment", buffer); g_free (buffer); glDeleteShader (shader); return 0; } return shader; } /* Initialize the shaders and link them into a program */ static void init_shaders (GLuint *program_out, GLuint *mvp_out) { GLuint vertex, fragment; GLuint program = 0; GLuint mvp = 0; int status; GBytes *source; source = g_resources_lookup_data ("/glarea/glarea-vertex.glsl", 0, NULL); vertex = create_shader (GL_VERTEX_SHADER, g_bytes_get_data (source, NULL)); g_bytes_unref (source); if (vertex == 0) { *program_out = 0; return; } source = g_resources_lookup_data ("/glarea/glarea-fragment.glsl", 0, NULL); fragment = create_shader (GL_FRAGMENT_SHADER, g_bytes_get_data (source, NULL)); g_bytes_unref (source); if (fragment == 0) { glDeleteShader (vertex); *program_out = 0; return; } program = glCreateProgram (); glAttachShader (program, vertex); glAttachShader (program, fragment); glLinkProgram (program); glGetProgramiv (program, GL_LINK_STATUS, &status); if (status == GL_FALSE) { int log_len; char *buffer; glGetProgramiv (program, GL_INFO_LOG_LENGTH, &log_len); buffer = g_malloc (log_len + 1); glGetProgramInfoLog (program, log_len, NULL, buffer); g_warning ("Linking failure:\n%s\n", buffer); g_free (buffer); glDeleteProgram (program); program = 0; goto out; } /* Get the location of the "mvp" uniform */ mvp = glGetUniformLocation (program, "mvp"); glDetachShader (program, vertex); glDetachShader (program, fragment); out: glDeleteShader (vertex); glDeleteShader (fragment); if (program_out != NULL) *program_out = program; if (mvp_out != NULL) *mvp_out = mvp; } static void compute_mvp (float *res, float phi, float theta, float psi) { float x = phi * (G_PI / 180.f); float y = theta * (G_PI / 180.f); float z = psi * (G_PI / 180.f); float c1 = cosf (x), s1 = sinf (x); float c2 = cosf (y), s2 = sinf (y); float c3 = cosf (z), s3 = sinf (z); float c3c2 = c3 * c2; float s3c1 = s3 * c1; float c3s2s1 = c3 * s2 * s1; float s3s1 = s3 * s1; float c3s2c1 = c3 * s2 * c1; float s3c2 = s3 * c2; float c3c1 = c3 * c1; float s3s2s1 = s3 * s2 * s1; float c3s1 = c3 * s1; float s3s2c1 = s3 * s2 * c1; float c2s1 = c2 * s1; float c2c1 = c2 * c1; /* initialize to the identity matrix */ res[0] = 1.f; res[4] = 0.f; res[8] = 0.f; res[12] = 0.f; res[1] = 0.f; res[5] = 1.f; res[9] = 0.f; res[13] = 0.f; res[2] = 0.f; res[6] = 0.f; res[10] = 1.f; res[14] = 0.f; res[3] = 0.f; res[7] = 0.f; res[11] = 0.f; res[15] = 1.f; /* apply all three rotations using the three matrices: * * ⎡ c3 s3 0 ⎤ ⎡ c2 0 -s2 ⎤ ⎡ 1 0 0 ⎤ * ⎢ -s3 c3 0 ⎥ ⎢ 0 1 0 ⎥ ⎢ 0 c1 s1 ⎥ * ⎣ 0 0 1 ⎦ ⎣ s2 0 c2 ⎦ ⎣ 0 -s1 c1 ⎦ */ res[0] = c3c2; res[4] = s3c1 + c3s2s1; res[8] = s3s1 - c3s2c1; res[12] = 0.f; res[1] = -s3c2; res[5] = c3c1 - s3s2s1; res[9] = c3s1 + s3s2c1; res[13] = 0.f; res[2] = s2; res[6] = -c2s1; res[10] = c2c1; res[14] = 0.f; res[3] = 0.f; res[7] = 0.f; res[11] = 0.f; res[15] = 1.f; } static GLuint position_buffer; static GLuint program; static GLuint mvp_location; /* We need to set up our state when we realize the GtkGLArea widget */ static void realize (GtkWidget *widget) { gtk_gl_area_make_current (GTK_GL_AREA (widget)); if (gtk_gl_area_get_error (GTK_GL_AREA (widget)) != NULL) return; init_buffers (&position_buffer, NULL); init_shaders (&program, &mvp_location); } /* We should tear down the state when unrealizing */ static void unrealize (GtkWidget *widget) { gtk_gl_area_make_current (GTK_GL_AREA (widget)); if (gtk_gl_area_get_error (GTK_GL_AREA (widget)) != NULL) return; glDeleteBuffers (1, &position_buffer); glDeleteProgram (program); } static void draw_triangle (void) { float mvp[16]; /* Compute the model view projection matrix using the * rotation angles specified through the GtkRange widgets */ compute_mvp (mvp, rotation_angles[X_AXIS], rotation_angles[Y_AXIS], rotation_angles[Z_AXIS]); /* Use our shaders */ glUseProgram (program); /* Update the "mvp" matrix we use in the shader */ glUniformMatrix4fv (mvp_location, 1, GL_FALSE, &mvp[0]); /* Use the vertices in our buffer */ glBindBuffer (GL_ARRAY_BUFFER, position_buffer); glEnableVertexAttribArray (0); glVertexAttribPointer (0, 4, GL_FLOAT, GL_FALSE, 0, 0); /* Draw the three vertices as a triangle */ glDrawArrays (GL_TRIANGLES, 0, 3); /* We finished using the buffers and program */ glDisableVertexAttribArray (0); glBindBuffer (GL_ARRAY_BUFFER, 0); glUseProgram (0); } static gboolean render (GtkGLArea *area, GdkGLContext *context) { if (gtk_gl_area_get_error (area) != NULL) return FALSE; /* Clear the viewport */ glClearColor (0.5, 0.5, 0.5, 1.0); glClear (GL_COLOR_BUFFER_BIT); /* Draw our object */ draw_triangle (); /* Flush the contents of the pipeline */ glFlush (); return TRUE; } static void on_axis_value_change (GtkAdjustment *adjustment, gpointer data) { int axis = GPOINTER_TO_INT (data); g_assert (axis >= 0 && axis < N_AXIS); /* Update the rotation angle */ rotation_angles[axis] = gtk_adjustment_get_value (adjustment); /* Update the contents of the GL drawing area */ gtk_widget_queue_draw (gl_area); } static GtkWidget * create_axis_slider (int axis) { GtkWidget *box, *label, *slider; GtkAdjustment *adj; const char *text; box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE); switch (axis) { case X_AXIS: text = "X axis"; break; case Y_AXIS: text = "Y axis"; break; case Z_AXIS: text = "Z axis"; break; default: g_assert_not_reached (); } label = gtk_label_new (text); gtk_container_add (GTK_CONTAINER (box), label); gtk_widget_show (label); adj = gtk_adjustment_new (0.0, 0.0, 360.0, 1.0, 12.0, 0.0); g_signal_connect (adj, "value-changed", G_CALLBACK (on_axis_value_change), GINT_TO_POINTER (axis)); slider = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, adj); gtk_container_add (GTK_CONTAINER (box), slider); gtk_widget_set_hexpand (slider, TRUE); gtk_widget_show (slider); gtk_widget_show (box); return box; } static void close_window (GtkWidget *widget) { /* Reset the state */ demo_window = NULL; gl_area = NULL; rotation_angles[X_AXIS] = 0.0; rotation_angles[Y_AXIS] = 0.0; rotation_angles[Z_AXIS] = 0.0; } GtkWidget * create_glarea_window (GtkWidget *do_widget) { GtkWidget *window, *box, *button, *controls; int i; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "GtkGLArea - Golden Triangle"); gtk_window_set_default_size (GTK_WINDOW (window), 400, 600); gtk_container_set_border_width (GTK_CONTAINER (window), 12); g_signal_connect (window, "destroy", G_CALLBACK (close_window), NULL); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE); gtk_box_set_spacing (GTK_BOX (box), 6); gtk_container_add (GTK_CONTAINER (window), box); gl_area = gtk_gl_area_new (); gtk_widget_set_hexpand (gl_area, TRUE); gtk_widget_set_vexpand (gl_area, TRUE); gtk_container_add (GTK_CONTAINER (box), gl_area); /* We need to initialize and free GL resources, so we use * the realize and unrealize signals on the widget */ g_signal_connect (gl_area, "realize", G_CALLBACK (realize), NULL); g_signal_connect (gl_area, "unrealize", G_CALLBACK (unrealize), NULL); /* The main "draw" call for GtkGLArea */ g_signal_connect (gl_area, "render", G_CALLBACK (render), NULL); controls = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE); gtk_container_add (GTK_CONTAINER (box), controls); gtk_widget_set_hexpand (controls, TRUE); for (i = 0; i < N_AXIS; i++) gtk_container_add (GTK_CONTAINER (controls), create_axis_slider (i)); button = gtk_button_new_with_label ("Quit"); gtk_widget_set_hexpand (button, TRUE); gtk_container_add (GTK_CONTAINER (box), button); g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window); return window; } GtkWidget* do_glarea (GtkWidget *do_widget) { if (demo_window == NULL) demo_window = create_glarea_window (do_widget); if (!gtk_widget_get_visible (demo_window)) gtk_widget_show_all (demo_window); else gtk_widget_destroy (demo_window); return demo_window; } (uuay)combobox.c3/* Combo Boxes * * The GtkComboBox widget allows to select one option out of a list. * The GtkComboBoxEntry additionally allows the user to enter a value * that is not in the list of options. * * How the options are displayed is controlled by cell renderers. */ #include #include enum { ICON_NAME_COL, TEXT_COL }; static GtkTreeModel * create_icon_store (void) { const gchar *icon_names[6] = { "dialog-warning", "process-stop", "document-new", "edit-clear", NULL, "document-open" }; const gchar *labels[6] = { N_("Warning"), N_("Stop"), N_("New"), N_("Clear"), NULL, N_("Open") }; GtkWidget *cellview; GtkTreeIter iter; GtkListStore *store; gint i; cellview = gtk_cell_view_new (); store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); for (i = 0; i < G_N_ELEMENTS (icon_names); i++) { if (icon_names[i]) { gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, ICON_NAME_COL, icon_names[i], TEXT_COL, _(labels[i]), -1); } else { gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, ICON_NAME_COL, NULL, TEXT_COL, "separator", -1); } } gtk_widget_destroy (cellview); return GTK_TREE_MODEL (store); } /* A GtkCellLayoutDataFunc that demonstrates how one can control * sensitivity of rows. This particular function does nothing * useful and just makes the second row insensitive. */ static void set_sensitive (GtkCellLayout *cell_layout, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { GtkTreePath *path; gint *indices; gboolean sensitive; path = gtk_tree_model_get_path (tree_model, iter); indices = gtk_tree_path_get_indices (path); sensitive = indices[0] != 1; gtk_tree_path_free (path); g_object_set (cell, "sensitive", sensitive, NULL); } /* A GtkTreeViewRowSeparatorFunc that demonstrates how rows can be * rendered as separators. This particular function does nothing * useful and just turns the fourth row into a separator. */ static gboolean is_separator (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { GtkTreePath *path; gboolean result; path = gtk_tree_model_get_path (model, iter); result = gtk_tree_path_get_indices (path)[0] == 4; gtk_tree_path_free (path); return result; } static GtkTreeModel * create_capital_store (void) { struct { gchar *group; gchar *capital; } capitals[] = { { "A - B", NULL }, { NULL, "Albany" }, { NULL, "Annapolis" }, { NULL, "Atlanta" }, { NULL, "Augusta" }, { NULL, "Austin" }, { NULL, "Baton Rouge" }, { NULL, "Bismarck" }, { NULL, "Boise" }, { NULL, "Boston" }, { "C - D", NULL }, { NULL, "Carson City" }, { NULL, "Charleston" }, { NULL, "Cheyenne" }, { NULL, "Columbia" }, { NULL, "Columbus" }, { NULL, "Concord" }, { NULL, "Denver" }, { NULL, "Des Moines" }, { NULL, "Dover" }, { "E - J", NULL }, { NULL, "Frankfort" }, { NULL, "Harrisburg" }, { NULL, "Hartford" }, { NULL, "Helena" }, { NULL, "Honolulu" }, { NULL, "Indianapolis" }, { NULL, "Jackson" }, { NULL, "Jefferson City" }, { NULL, "Juneau" }, { "K - O" }, { NULL, "Lansing" }, { NULL, "Lincoln" }, { NULL, "Little Rock" }, { NULL, "Madison" }, { NULL, "Montgomery" }, { NULL, "Montpelier" }, { NULL, "Nashville" }, { NULL, "Oklahoma City" }, { NULL, "Olympia" }, { NULL, "P - S" }, { NULL, "Phoenix" }, { NULL, "Pierre" }, { NULL, "Providence" }, { NULL, "Raleigh" }, { NULL, "Richmond" }, { NULL, "Sacramento" }, { NULL, "Salem" }, { NULL, "Salt Lake City" }, { NULL, "Santa Fe" }, { NULL, "Springfield" }, { NULL, "St. Paul" }, { "T - Z", NULL }, { NULL, "Tallahassee" }, { NULL, "Topeka" }, { NULL, "Trenton" }, { NULL, NULL } }; GtkTreeIter iter, iter2; GtkTreeStore *store; gint i; store = gtk_tree_store_new (1, G_TYPE_STRING); for (i = 0; capitals[i].group || capitals[i].capital; i++) { if (capitals[i].group) { gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, 0, capitals[i].group, -1); } else if (capitals[i].capital) { gtk_tree_store_append (store, &iter2, &iter); gtk_tree_store_set (store, &iter2, 0, capitals[i].capital, -1); } } return GTK_TREE_MODEL (store); } static void is_capital_sensitive (GtkCellLayout *cell_layout, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { gboolean sensitive; sensitive = !gtk_tree_model_iter_has_child (tree_model, iter); g_object_set (cell, "sensitive", sensitive, NULL); } static void fill_combo_entry (GtkWidget *combo) { gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "One"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "Two"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "2\302\275"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "Three"); } /* A simple validating entry */ #define TYPE_MASK_ENTRY (mask_entry_get_type ()) #define MASK_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MASK_ENTRY, MaskEntry)) #define MASK_ENTRY_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), TYPE_MASK_ENTRY, MaskEntryClass)) #define IS_MASK_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MASK_ENTRY)) #define IS_MASK_ENTRY_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), TYPE_MASK_ENTRY)) #define MASK_ENTRY_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), TYPE_MASK_ENTRY, MaskEntryClass)) typedef struct _MaskEntry MaskEntry; struct _MaskEntry { GtkEntry entry; gchar *mask; }; typedef struct _MaskEntryClass MaskEntryClass; struct _MaskEntryClass { GtkEntryClass parent_class; }; static void mask_entry_editable_init (GtkEditableInterface *iface); G_DEFINE_TYPE_WITH_CODE (MaskEntry, mask_entry, GTK_TYPE_ENTRY, G_IMPLEMENT_INTERFACE (GTK_TYPE_EDITABLE, mask_entry_editable_init)); static void mask_entry_set_background (MaskEntry *entry) { if (entry->mask) { if (!g_regex_match_simple (entry->mask, gtk_entry_get_text (GTK_ENTRY (entry)), 0, 0)) { PangoAttrList *attrs; attrs = pango_attr_list_new (); pango_attr_list_insert (attrs, pango_attr_foreground_new (65535, 32767, 32767)); gtk_entry_set_attributes (GTK_ENTRY (entry), attrs); pango_attr_list_unref (attrs); return; } } gtk_entry_set_attributes (GTK_ENTRY (entry), NULL); } static void mask_entry_changed (GtkEditable *editable) { mask_entry_set_background (MASK_ENTRY (editable)); } static void mask_entry_init (MaskEntry *entry) { entry->mask = NULL; } static void mask_entry_class_init (MaskEntryClass *klass) { } static void mask_entry_editable_init (GtkEditableInterface *iface) { iface->changed = mask_entry_changed; } GtkWidget * do_combobox (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *vbox, *frame, *box, *combo, *entry; GtkTreeModel *model; GtkCellRenderer *renderer; GtkTreePath *path; GtkTreeIter iter; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Combo boxes"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); gtk_container_add (GTK_CONTAINER (window), vbox); /* A combobox demonstrating cell renderers, separators and * insensitive rows */ frame = gtk_frame_new ("Items with icons"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (box), 5); gtk_container_add (GTK_CONTAINER (frame), box); model = create_icon_store (); combo = gtk_combo_box_new_with_model (model); g_object_unref (model); gtk_container_add (GTK_CONTAINER (box), combo); renderer = gtk_cell_renderer_pixbuf_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "icon-name", ICON_NAME_COL, NULL); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), renderer, set_sensitive, NULL, NULL); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", TEXT_COL, NULL); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), renderer, set_sensitive, NULL, NULL); gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combo), is_separator, NULL, NULL); gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); /* A combobox demonstrating trees. */ frame = gtk_frame_new ("Where are we ?"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (box), 5); gtk_container_add (GTK_CONTAINER (frame), box); model = create_capital_store (); combo = gtk_combo_box_new_with_model (model); g_object_unref (model); gtk_container_add (GTK_CONTAINER (box), combo); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), renderer, is_capital_sensitive, NULL, NULL); path = gtk_tree_path_new_from_indices (0, 8, -1); gtk_tree_model_get_iter (model, &iter, path); gtk_tree_path_free (path); gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo), &iter); /* A GtkComboBoxEntry with validation. */ frame = gtk_frame_new ("Editable"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (box), 5); gtk_container_add (GTK_CONTAINER (frame), box); combo = gtk_combo_box_text_new_with_entry (); fill_combo_entry (combo); gtk_container_add (GTK_CONTAINER (box), combo); entry = g_object_new (TYPE_MASK_ENTRY, NULL); MASK_ENTRY (entry)->mask = "^([0-9]*|One|Two|2\302\275|Three)$"; gtk_container_remove (GTK_CONTAINER (combo), gtk_bin_get_child (GTK_BIN (combo))); gtk_container_add (GTK_CONTAINER (combo), entry); /* A combobox with string IDs */ frame = gtk_frame_new ("String IDs"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (box), 5); gtk_container_add (GTK_CONTAINER (frame), box); combo = gtk_combo_box_text_new (); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo), "never", "Not visible"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo), "when-active", "Visible when active"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo), "always", "Always visible"); gtk_container_add (GTK_CONTAINER (box), combo); entry = gtk_entry_new (); g_object_bind_property (combo, "active-id", entry, "text", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (box), entry); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)builder/Zcss_multiplebgs.cn/* CSS Theming/Multiple Backgrounds * * Gtk themes are written using CSS. Every widget is build of multiple items * that you can style very similarly to a regular website. * */ #include static GtkWidget *window = NULL; static void show_parsing_error (GtkCssProvider *provider, GtkCssSection *section, const GError *error, GtkTextBuffer *buffer) { GtkTextIter start, end; const char *tag_name; gtk_text_buffer_get_iter_at_line_index (buffer, &start, gtk_css_section_get_start_line (section), gtk_css_section_get_start_position (section)); gtk_text_buffer_get_iter_at_line_index (buffer, &end, gtk_css_section_get_end_line (section), gtk_css_section_get_end_position (section)); if (g_error_matches (error, GTK_CSS_PROVIDER_ERROR, GTK_CSS_PROVIDER_ERROR_DEPRECATED)) tag_name = "warning"; else tag_name = "error"; gtk_text_buffer_apply_tag_by_name (buffer, tag_name, &start, &end); } static void css_text_changed (GtkTextBuffer *buffer, GtkCssProvider *provider) { GtkTextIter start, end; char *text; gtk_text_buffer_get_start_iter (buffer, &start); gtk_text_buffer_get_end_iter (buffer, &end); gtk_text_buffer_remove_all_tags (buffer, &start, &end); text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); gtk_css_provider_load_from_data (provider, text, -1, NULL); g_free (text); gtk_style_context_reset_widgets (gdk_screen_get_default ()); } static gboolean drawing_area_draw (GtkWidget *widget, cairo_t *cr) { GtkStyleContext *context = gtk_widget_get_style_context (widget); gtk_render_background (context, cr, 0, 0, gtk_widget_get_allocated_width (widget), gtk_widget_get_allocated_height (widget)); gtk_render_frame (context, cr, 0, 0, gtk_widget_get_allocated_width (widget), gtk_widget_get_allocated_height (widget)); return FALSE; } static void apply_css (GtkWidget *widget, GtkStyleProvider *provider) { gtk_style_context_add_provider (gtk_widget_get_style_context (widget), provider, G_MAXUINT); if (GTK_IS_CONTAINER (widget)) gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) apply_css, provider); } GtkWidget * do_css_multiplebgs (GtkWidget *do_widget) { if (!window) { GtkWidget *paned, *container, *child; GtkStyleProvider *provider; GtkTextBuffer *text; GBytes *bytes; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); container = gtk_overlay_new (); gtk_widget_add_events (container, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK); gtk_container_add (GTK_CONTAINER (window), container); child = gtk_drawing_area_new (); gtk_widget_set_name (child, "canvas"); g_signal_connect (child, "draw", G_CALLBACK (drawing_area_draw), NULL); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new (); gtk_widget_add_events (child, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK); gtk_overlay_add_overlay (GTK_OVERLAY (container), child); gtk_widget_set_name (child, "bricks-button"); gtk_widget_set_halign (child, GTK_ALIGN_CENTER); gtk_widget_set_valign (child, GTK_ALIGN_CENTER); gtk_widget_set_size_request (child, 250, 84); paned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_overlay_add_overlay (GTK_OVERLAY (container), paned); /* Need a filler so we get a handle */ child = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (paned), child); text = gtk_text_buffer_new (NULL); gtk_text_buffer_create_tag (text, "warning", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (text, "error", "underline", PANGO_UNDERLINE_ERROR, NULL); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); container = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (paned), container); child = gtk_text_view_new_with_buffer (text); gtk_container_add (GTK_CONTAINER (container), child); g_signal_connect (text, "changed", G_CALLBACK (css_text_changed), provider); bytes = g_resources_lookup_data ("/css_multiplebgs/css_multiplebgs.css", 0, NULL); gtk_text_buffer_set_text (text, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes)); g_bytes_unref (bytes); g_signal_connect (provider, "parsing-error", G_CALLBACK (show_parsing_error), gtk_text_view_get_buffer (GTK_TEXT_VIEW (child))); apply_css (window, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)messages.txt1|GTK+ and friends|@GTKtoolkit|GTK+ 3.8.0 (STABLE) released: wayland, Multi-application Broadway, improved CSS support and more ... http://ur1.ca/d6yms #gtk #gtk3|1364338800|0||4|2 2|Daniel Svensson|@dsvensson|Bringing an application up to the new features in GTK 3.x = tons of negative diffs, awesome work by @GTKtoolkit devs <3|1382565600|0|GTK+ and friends|0|1 3|GTK+ and friends|@GTKtoolkit|GLib status update and a warning: http://ur1.ca/awsm1 #glib|1384383600 4|GTK+ and friends|@GTKtoolkit|GProperty status: http://ur1.ca/awslh #glib|1384383300 5|GTK+ and friends|@GTKtoolkit|GTK+ 3.6.2 (STABLE) available: http://ur1.ca/awsl2 #gtk #gtk3|1384383000 6|GTK+ and friends|@GTKtoolkit|GLib 2.34.2 (STABLE) available: http://ur1.ca/awskn #glib|1384383000 7|GTK+ and friends|@GTKtoolkit|GTK+ 3.6.0 (STABLE) released: http://ur1.ca/aj4e0 #gtk #gtk3|1381528800 8|GTK+ and friends|@GTKtoolkit|GLib 2.34.0 (STABLE) released: http://ur1.ca/aj4du #glib|1381522800 (uuay)glarea-vertex.glslx#version 330 layout(location = 0) in vec4 position; uniform mat4 mvp; void main() { gl_Position = mvp * position; } (uuay)offscreen_window.c0L/* Offscreen Windows/Rotated Button * * Offscreen windows can be used to transform parts of a widget * hierarchy. Note that the rotated button is fully functional. */ #include #include #define GTK_TYPE_ROTATED_BIN (gtk_rotated_bin_get_type ()) #define GTK_ROTATED_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ROTATED_BIN, GtkRotatedBin)) #define GTK_ROTATED_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_ROTATED_BIN, GtkRotatedBinClass)) #define GTK_IS_ROTATED_BIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_ROTATED_BIN)) #define GTK_IS_ROTATED_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ROTATED_BIN)) #define GTK_ROTATED_BIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ROTATED_BIN, GtkRotatedBinClass)) typedef struct _GtkRotatedBin GtkRotatedBin; typedef struct _GtkRotatedBinClass GtkRotatedBinClass; struct _GtkRotatedBin { GtkContainer container; GtkWidget *child; GdkWindow *offscreen_window; gdouble angle; }; struct _GtkRotatedBinClass { GtkContainerClass parent_class; }; GType gtk_rotated_bin_get_type (void) G_GNUC_CONST; GtkWidget* gtk_rotated_bin_new (void); void gtk_rotated_bin_set_angle (GtkRotatedBin *bin, gdouble angle); /*** implementation ***/ static void gtk_rotated_bin_realize (GtkWidget *widget); static void gtk_rotated_bin_unrealize (GtkWidget *widget); static void gtk_rotated_bin_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural); static void gtk_rotated_bin_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural); static void gtk_rotated_bin_size_allocate (GtkWidget *widget, GtkAllocation *allocation); static gboolean gtk_rotated_bin_damage (GtkWidget *widget, GdkEventExpose *event); static gboolean gtk_rotated_bin_draw (GtkWidget *widget, cairo_t *cr); static void gtk_rotated_bin_add (GtkContainer *container, GtkWidget *child); static void gtk_rotated_bin_remove (GtkContainer *container, GtkWidget *widget); static void gtk_rotated_bin_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data); static GType gtk_rotated_bin_child_type (GtkContainer *container); G_DEFINE_TYPE (GtkRotatedBin, gtk_rotated_bin, GTK_TYPE_CONTAINER); static void to_child (GtkRotatedBin *bin, double widget_x, double widget_y, double *x_out, double *y_out) { GtkAllocation child_area; double x, y, xr, yr; double c, s; double w, h; s = sin (bin->angle); c = cos (bin->angle); gtk_widget_get_allocation (bin->child, &child_area); w = c * child_area.width + s * child_area.height; h = s * child_area.width + c * child_area.height; x = widget_x; y = widget_y; x -= (w - child_area.width) / 2; y -= (h - child_area.height) / 2; x -= child_area.width / 2; y -= child_area.height / 2; xr = x * c + y * s; yr = y * c - x * s; x = xr; y = yr; x += child_area.width / 2; y += child_area.height / 2; *x_out = x; *y_out = y; } static void to_parent (GtkRotatedBin *bin, double offscreen_x, double offscreen_y, double *x_out, double *y_out) { GtkAllocation child_area; double x, y, xr, yr; double c, s; double w, h; s = sin (bin->angle); c = cos (bin->angle); gtk_widget_get_allocation (bin->child, &child_area); w = c * child_area.width + s * child_area.height; h = s * child_area.width + c * child_area.height; x = offscreen_x; y = offscreen_y; x -= child_area.width / 2; y -= child_area.height / 2; xr = x * c - y * s; yr = x * s + y * c; x = xr; y = yr; x += child_area.width / 2; y += child_area.height / 2; x -= (w - child_area.width) / 2; y -= (h - child_area.height) / 2; *x_out = x; *y_out = y; } static void gtk_rotated_bin_class_init (GtkRotatedBinClass *klass) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); widget_class->realize = gtk_rotated_bin_realize; widget_class->unrealize = gtk_rotated_bin_unrealize; widget_class->get_preferred_width = gtk_rotated_bin_get_preferred_width; widget_class->get_preferred_height = gtk_rotated_bin_get_preferred_height; widget_class->size_allocate = gtk_rotated_bin_size_allocate; widget_class->draw = gtk_rotated_bin_draw; g_signal_override_class_closure (g_signal_lookup ("damage-event", GTK_TYPE_WIDGET), GTK_TYPE_ROTATED_BIN, g_cclosure_new (G_CALLBACK (gtk_rotated_bin_damage), NULL, NULL)); container_class->add = gtk_rotated_bin_add; container_class->remove = gtk_rotated_bin_remove; container_class->forall = gtk_rotated_bin_forall; container_class->child_type = gtk_rotated_bin_child_type; } static void gtk_rotated_bin_init (GtkRotatedBin *bin) { gtk_widget_set_has_window (GTK_WIDGET (bin), TRUE); } GtkWidget * gtk_rotated_bin_new (void) { return g_object_new (GTK_TYPE_ROTATED_BIN, NULL); } static GdkWindow * pick_offscreen_child (GdkWindow *offscreen_window, double widget_x, double widget_y, GtkRotatedBin *bin) { GtkAllocation child_area; double x, y; if (bin->child && gtk_widget_get_visible (bin->child)) { to_child (bin, widget_x, widget_y, &x, &y); gtk_widget_get_allocation (bin->child, &child_area); if (x >= 0 && x < child_area.width && y >= 0 && y < child_area.height) return bin->offscreen_window; } return NULL; } static void offscreen_window_to_parent (GdkWindow *offscreen_window, double offscreen_x, double offscreen_y, double *parent_x, double *parent_y, GtkRotatedBin *bin) { to_parent (bin, offscreen_x, offscreen_y, parent_x, parent_y); } static void offscreen_window_from_parent (GdkWindow *window, double parent_x, double parent_y, double *offscreen_x, double *offscreen_y, GtkRotatedBin *bin) { to_child (bin, parent_x, parent_y, offscreen_x, offscreen_y); } static void gtk_rotated_bin_realize (GtkWidget *widget) { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); GtkAllocation allocation; GtkStyleContext *context; GdkWindow *window; GdkWindowAttr attributes; gint attributes_mask; guint border_width; GtkRequisition child_requisition; gtk_widget_set_realized (widget, TRUE); gtk_widget_get_allocation (widget, &allocation); border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); attributes.x = allocation.x + border_width; attributes.y = allocation.y + border_width; attributes.width = allocation.width - 2 * border_width; attributes.height = allocation.height - 2 * border_width; attributes.window_type = GDK_WINDOW_CHILD; attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_SCROLL_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK; attributes.visual = gtk_widget_get_visual (widget); attributes.wclass = GDK_INPUT_OUTPUT; attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask); gtk_widget_set_window (widget, window); gdk_window_set_user_data (window, widget); g_signal_connect (window, "pick-embedded-child", G_CALLBACK (pick_offscreen_child), bin); attributes.window_type = GDK_WINDOW_OFFSCREEN; child_requisition.width = child_requisition.height = 0; if (bin->child && gtk_widget_get_visible (bin->child)) { GtkAllocation child_allocation; gtk_widget_get_allocation (bin->child, &child_allocation); attributes.width = child_allocation.width; attributes.height = child_allocation.height; } bin->offscreen_window = gdk_window_new (gdk_screen_get_root_window (gtk_widget_get_screen (widget)), &attributes, attributes_mask); gdk_window_set_user_data (bin->offscreen_window, widget); if (bin->child) gtk_widget_set_parent_window (bin->child, bin->offscreen_window); gdk_offscreen_window_set_embedder (bin->offscreen_window, window); g_signal_connect (bin->offscreen_window, "to-embedder", G_CALLBACK (offscreen_window_to_parent), bin); g_signal_connect (bin->offscreen_window, "from-embedder", G_CALLBACK (offscreen_window_from_parent), bin); context = gtk_widget_get_style_context (widget); gtk_style_context_set_background (context, window); gtk_style_context_set_background (context, bin->offscreen_window); gdk_window_show (bin->offscreen_window); } static void gtk_rotated_bin_unrealize (GtkWidget *widget) { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); gdk_window_set_user_data (bin->offscreen_window, NULL); gdk_window_destroy (bin->offscreen_window); bin->offscreen_window = NULL; GTK_WIDGET_CLASS (gtk_rotated_bin_parent_class)->unrealize (widget); } static GType gtk_rotated_bin_child_type (GtkContainer *container) { GtkRotatedBin *bin = GTK_ROTATED_BIN (container); if (bin->child) return G_TYPE_NONE; return GTK_TYPE_WIDGET; } static void gtk_rotated_bin_add (GtkContainer *container, GtkWidget *widget) { GtkRotatedBin *bin = GTK_ROTATED_BIN (container); if (!bin->child) { gtk_widget_set_parent_window (widget, bin->offscreen_window); gtk_widget_set_parent (widget, GTK_WIDGET (bin)); bin->child = widget; } else g_warning ("GtkRotatedBin cannot have more than one child\n"); } static void gtk_rotated_bin_remove (GtkContainer *container, GtkWidget *widget) { GtkRotatedBin *bin = GTK_ROTATED_BIN (container); gboolean was_visible; was_visible = gtk_widget_get_visible (widget); if (bin->child == widget) { gtk_widget_unparent (widget); bin->child = NULL; if (was_visible && gtk_widget_get_visible (GTK_WIDGET (container))) gtk_widget_queue_resize (GTK_WIDGET (container)); } } static void gtk_rotated_bin_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data) { GtkRotatedBin *bin = GTK_ROTATED_BIN (container); g_return_if_fail (callback != NULL); if (bin->child) (*callback) (bin->child, callback_data); } void gtk_rotated_bin_set_angle (GtkRotatedBin *bin, gdouble angle) { g_return_if_fail (GTK_IS_ROTATED_BIN (bin)); bin->angle = angle; gtk_widget_queue_resize (GTK_WIDGET (bin)); gdk_window_geometry_changed (bin->offscreen_window); } static void gtk_rotated_bin_size_request (GtkWidget *widget, GtkRequisition *requisition) { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); GtkRequisition child_requisition; double s, c; double w, h; guint border_width; child_requisition.width = 0; child_requisition.height = 0; if (bin->child && gtk_widget_get_visible (bin->child)) gtk_widget_get_preferred_size ( (bin->child), &child_requisition, NULL); s = sin (bin->angle); c = cos (bin->angle); w = c * child_requisition.width + s * child_requisition.height; h = s * child_requisition.width + c * child_requisition.height; border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); requisition->width = border_width * 2 + w; requisition->height = border_width * 2 + h; } static void gtk_rotated_bin_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural) { GtkRequisition requisition; gtk_rotated_bin_size_request (widget, &requisition); *minimum = *natural = requisition.width; } static void gtk_rotated_bin_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural) { GtkRequisition requisition; gtk_rotated_bin_size_request (widget, &requisition); *minimum = *natural = requisition.height; } static void gtk_rotated_bin_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); guint border_width; gint w, h; gdouble s, c; gtk_widget_set_allocation (widget, allocation); border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); w = allocation->width - border_width * 2; h = allocation->height - border_width * 2; if (gtk_widget_get_realized (widget)) gdk_window_move_resize (gtk_widget_get_window (widget), allocation->x + border_width, allocation->y + border_width, w, h); if (bin->child && gtk_widget_get_visible (bin->child)) { GtkRequisition child_requisition; GtkAllocation child_allocation; s = sin (bin->angle); c = cos (bin->angle); gtk_widget_get_preferred_size (bin->child, &child_requisition, NULL); child_allocation.x = 0; child_allocation.y = 0; child_allocation.height = child_requisition.height; if (c == 0.0) child_allocation.width = h / s; else if (s == 0.0) child_allocation.width = w / c; else child_allocation.width = MIN ((w - s * child_allocation.height) / c, (h - c * child_allocation.height) / s); if (gtk_widget_get_realized (widget)) gdk_window_move_resize (bin->offscreen_window, child_allocation.x, child_allocation.y, child_allocation.width, child_allocation.height); child_allocation.x = child_allocation.y = 0; gtk_widget_size_allocate (bin->child, &child_allocation); } } static gboolean gtk_rotated_bin_damage (GtkWidget *widget, GdkEventExpose *event) { gdk_window_invalidate_rect (gtk_widget_get_window (widget), NULL, FALSE); return TRUE; } static gboolean gtk_rotated_bin_draw (GtkWidget *widget, cairo_t *cr) { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); GdkWindow *window; gdouble s, c; gdouble w, h; window = gtk_widget_get_window (widget); if (gtk_cairo_should_draw_window (cr, window)) { cairo_surface_t *surface; GtkAllocation child_area; if (bin->child && gtk_widget_get_visible (bin->child)) { surface = gdk_offscreen_window_get_surface (bin->offscreen_window); gtk_widget_get_allocation (bin->child, &child_area); /* transform */ s = sin (bin->angle); c = cos (bin->angle); w = c * child_area.width + s * child_area.height; h = s * child_area.width + c * child_area.height; cairo_translate (cr, (w - child_area.width) / 2, (h - child_area.height) / 2); cairo_translate (cr, child_area.width / 2, child_area.height / 2); cairo_rotate (cr, bin->angle); cairo_translate (cr, -child_area.width / 2, -child_area.height / 2); /* clip */ cairo_rectangle (cr, 0, 0, gdk_window_get_width (bin->offscreen_window), gdk_window_get_height (bin->offscreen_window)); cairo_clip (cr); /* paint */ cairo_set_source_surface (cr, surface, 0, 0); cairo_paint (cr); } } if (gtk_cairo_should_draw_window (cr, bin->offscreen_window)) { gtk_render_background (gtk_widget_get_style_context (widget), cr, 0, 0, gdk_window_get_width (bin->offscreen_window), gdk_window_get_height (bin->offscreen_window)); if (bin->child) gtk_container_propagate_draw (GTK_CONTAINER (widget), bin->child, cr); } return FALSE; } /*** ***/ static void scale_changed (GtkRange *range, GtkRotatedBin *bin) { gtk_rotated_bin_set_angle (bin, gtk_range_get_value (range)); } static GtkWidget *window = NULL; GtkWidget * do_offscreen_window (GtkWidget *do_widget) { if (!window) { GtkWidget *bin, *vbox, *scale, *button; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Rotated widget"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); scale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, 0, G_PI/2, 0.01); gtk_scale_set_draw_value (GTK_SCALE (scale), FALSE); button = gtk_button_new_with_label ("A Button"); bin = gtk_rotated_bin_new (); g_signal_connect (scale, "value-changed", G_CALLBACK (scale_changed), bin); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), bin, TRUE, TRUE, 0); gtk_container_add (GTK_CONTAINER (bin), button); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)flowbox.c3/* Flow Box * * GtkFlowBox allows flexible and responsive grids which reflow * as needed and support sorting and filtering. * * The children of a GtkFlowBox are regular widgets */ #include #include #include static GtkWidget *window = NULL; static gboolean draw_color (GtkWidget *drawingarea, cairo_t *cr, const char *color_name) { GdkRGBA rgba; if (gdk_rgba_parse (&rgba, color_name)) { gdk_cairo_set_source_rgba (cr, &rgba); cairo_paint (cr); } return FALSE; } static GtkWidget * color_swatch_new (const gchar *color) { GtkWidget *button, *area; button = gtk_button_new (); area = gtk_drawing_area_new (); g_signal_connect (area, "draw", G_CALLBACK (draw_color), (gpointer) color); gtk_widget_set_size_request (area, 24, 24); gtk_container_add (GTK_CONTAINER (button), area); gtk_widget_show_all (button); return button; } GtkWidget * do_flowbox (GtkWidget *do_widget) { GtkWidget *scrolled, *flowbox; const gchar *colors[] = { "AliceBlue", "AntiqueWhite", "AntiqueWhite1", "AntiqueWhite2", "AntiqueWhite3", "AntiqueWhite4", "aqua", "aquamarine", "aquamarine1", "aquamarine2", "aquamarine3", "aquamarine4", "azure", "azure1", "azure2", "azure3", "azure4", "beige", "bisque", "bisque1", "bisque2", "bisque3", "bisque4", "black", "BlanchedAlmond", "blue", "blue1", "blue2", "blue3", "blue4", "BlueViolet", "brown", "brown1", "brown2", "brown3", "brown4", "burlywood", "burlywood1", "burlywood2", "burlywood3", "burlywood4", "CadetBlue", "CadetBlue1", "CadetBlue2", "CadetBlue3", "CadetBlue4", "chartreuse", "chartreuse1", "chartreuse2", "chartreuse3", "chartreuse4", "chocolate", "chocolate1", "chocolate2", "chocolate3", "chocolate4", "coral", "coral1", "coral2", "coral3", "coral4", "CornflowerBlue", "cornsilk", "cornsilk1", "cornsilk2", "cornsilk3", "cornsilk4", "crimson", "cyan", "cyan1", "cyan2", "cyan3", "cyan4", "DarkBlue", "DarkCyan", "DarkGoldenrod", "DarkGoldenrod1", "DarkGoldenrod2", "DarkGoldenrod3", "DarkGoldenrod4", "DarkGray", "DarkGreen", "DarkGrey", "DarkKhaki", "DarkMagenta", "DarkOliveGreen", "DarkOliveGreen1", "DarkOliveGreen2", "DarkOliveGreen3", "DarkOliveGreen4", "DarkOrange", "DarkOrange1", "DarkOrange2", "DarkOrange3", "DarkOrange4", "DarkOrchid", "DarkOrchid1", "DarkOrchid2", "DarkOrchid3", "DarkOrchid4", "DarkRed", "DarkSalmon", "DarkSeaGreen", "DarkSeaGreen1", "DarkSeaGreen2", "DarkSeaGreen3", "DarkSeaGreen4", "DarkSlateBlue", "DarkSlateGray", "DarkSlateGray1", "DarkSlateGray2", "DarkSlateGray3", "DarkSlateGray4", "DarkSlateGrey", "DarkTurquoise", "DarkViolet", "DeepPink", "DeepPink1", "DeepPink2", "DeepPink3", "DeepPink4", "DeepSkyBlue", "DeepSkyBlue1", "DeepSkyBlue2", "DeepSkyBlue3", "DeepSkyBlue4", "DimGray", "DimGrey", "DodgerBlue", "DodgerBlue1", "DodgerBlue2", "DodgerBlue3", "DodgerBlue4", "firebrick", "firebrick1", "firebrick2", "firebrick3", "firebrick4", "FloralWhite", "ForestGreen", "fuchsia", "gainsboro", "GhostWhite", "gold", "gold1", "gold2", "gold3", "gold4", "goldenrod", "goldenrod1", "goldenrod2", "goldenrod3", "goldenrod4", "gray", "gray0", "gray1", "gray10", "gray100", "gray11", "gray12", "gray13", "gray14", "gray15", "gray16", "gray17", "gray18", "gray19", "gray2", "gray20", "gray21", "gray22", "gray23", "gray24", "gray25", "gray26", "gray27", "gray28", "gray29", "gray3", "gray30", "gray31", "gray32", "gray33", "gray34", "gray35", "gray36", "gray37", "gray38", "gray39", "gray4", "gray40", "gray41", "gray42", "gray43", "gray44", "gray45", "gray46", "gray47", "gray48", "gray49", "gray5", "gray50", "gray51", "gray52", "gray53", "gray54", "gray55", "gray56", "gray57", "gray58", "gray59", "gray6", "gray60", "gray61", "gray62", "gray63", "gray64", "gray65", "gray66", "gray67", "gray68", "gray69", "gray7", "gray70", "gray71", "gray72", "gray73", "gray74", "gray75", "gray76", "gray77", "gray78", "gray79", "gray8", "gray80", "gray81", "gray82", "gray83", "gray84", "gray85", "gray86", "gray87", "gray88", "gray89", "gray9", "gray90", "gray91", "gray92", "gray93", "gray94", "gray95", "gray96", "gray97", "gray98", "gray99", "green", "green1", "green2", "green3", "green4", "GreenYellow", "grey", "grey0", "grey1", "grey10", "grey100", "grey11", "grey12", "grey13", "grey14", "grey15", "grey16", "grey17", "grey18", "grey19", "grey2", "grey20", "grey21", "grey22", "grey23", "grey24", "grey25", "grey26", "grey27", "grey28", "grey29", "grey3", "grey30", "grey31", "grey32", "grey33", "grey34", "grey35", "grey36", "grey37", "grey38", "grey39", "grey4", "grey40", "grey41", "grey42", "grey43", "grey44", "grey45", "grey46", "grey47", "grey48", "grey49", "grey5", "grey50", "grey51", "grey52", "grey53", "grey54", "grey55", "grey56", "grey57", "grey58", "grey59", "grey6", "grey60", "grey61", "grey62", "grey63", "grey64", "grey65", "grey66", "grey67", "grey68", "grey69", "grey7", "grey70", "grey71", "grey72", "grey73", "grey74", "grey75", "grey76", "grey77", "grey78", "grey79", "grey8", "grey80", "grey81", "grey82", "grey83", "grey84", "grey85", "grey86", "grey87", "grey88", "grey89", "grey9", "grey90", "grey91", "grey92", "grey93", "grey94", "grey95", "grey96", "grey97", "grey98", "grey99", "honeydew", "honeydew1", "honeydew2", "honeydew3", "honeydew4", "HotPink", "HotPink1", "HotPink2", "HotPink3", "HotPink4", "IndianRed", "IndianRed1", "IndianRed2", "IndianRed3", "IndianRed4", "indigo", "ivory", "ivory1", "ivory2", "ivory3", "ivory4", "khaki", "khaki1", "khaki2", "khaki3", "khaki4", "lavender", "LavenderBlush", "LavenderBlush1", "LavenderBlush2", "LavenderBlush3", "LavenderBlush4", "LawnGreen", "LemonChiffon", "LemonChiffon1", "LemonChiffon2", "LemonChiffon3", "LemonChiffon4", "LightBlue", "LightBlue1", "LightBlue2", "LightBlue3", "LightBlue4", "LightCoral", "LightCyan", "LightCyan1", "LightCyan2", "LightCyan3", "LightCyan4", "LightGoldenrod", "LightGoldenrod1", "LightGoldenrod2", "LightGoldenrod3", "LightGoldenrod4", "LightGoldenrodYellow", "LightGray", "LightGreen", "LightGrey", "LightPink", "LightPink1", "LightPink2", "LightPink3", "LightPink4", "LightSalmon", "LightSalmon1", "LightSalmon2", "LightSalmon3", "LightSalmon4", "LightSeaGreen", "LightSkyBlue", "LightSkyBlue1", "LightSkyBlue2", "LightSkyBlue3", "LightSkyBlue4", "LightSlateBlue", "LightSlateGray", "LightSlateGrey", "LightSteelBlue", "LightSteelBlue1", "LightSteelBlue2", "LightSteelBlue3", "LightSteelBlue4", "LightYellow", "LightYellow1", "LightYellow2", "LightYellow3", "LightYellow4", "lime", "LimeGreen", "linen", "magenta", "magenta1", "magenta2", "magenta3", "magenta4", "maroon", "maroon1", "maroon2", "maroon3", "maroon4", "MediumAquamarine", "MediumBlue", "MediumOrchid", "MediumOrchid1", "MediumOrchid2", "MediumOrchid3", "MediumOrchid4", "MediumPurple", "MediumPurple1", "MediumPurple2", "MediumPurple3", "MediumPurple4", "MediumSeaGreen", "MediumSlateBlue", "MediumSpringGreen", "MediumTurquoise", "MediumVioletRed", "MidnightBlue", "MintCream", "MistyRose", "MistyRose1", "MistyRose2", "MistyRose3", "MistyRose4", "moccasin", "NavajoWhite", "NavajoWhite1", "NavajoWhite2", "NavajoWhite3", "NavajoWhite4", "navy", "NavyBlue", "OldLace", "olive", "OliveDrab", "OliveDrab1", "OliveDrab2", "OliveDrab3", "OliveDrab4", "orange", "orange1", "orange2", "orange3", "orange4", "OrangeRed", "OrangeRed1", "OrangeRed2", "OrangeRed3", "OrangeRed4", "orchid", "orchid1", "orchid2", "orchid3", "orchid4", "PaleGoldenrod", "PaleGreen", "PaleGreen1", "PaleGreen2", "PaleGreen3", "PaleGreen4", "PaleTurquoise", "PaleTurquoise1", "PaleTurquoise2", "PaleTurquoise3", "PaleTurquoise4", "PaleVioletRed", "PaleVioletRed1", "PaleVioletRed2", "PaleVioletRed3", "PaleVioletRed4", "PapayaWhip", "PeachPuff", "PeachPuff1", "PeachPuff2", "PeachPuff3", "PeachPuff4", "peru", "pink", "pink1", "pink2", "pink3", "pink4", "plum", "plum1", "plum2", "plum3", "plum4", "PowderBlue", "purple", "purple1", "purple2", "purple3", "purple4", "red", "red1", "red2", "red3", "red4", "RosyBrown", "RosyBrown1", "RosyBrown2", "RosyBrown3", "RosyBrown4", "RoyalBlue", "RoyalBlue1", "RoyalBlue2", "RoyalBlue3", "RoyalBlue4", "SaddleBrown", "salmon", "salmon1", "salmon2", "salmon3", "salmon4", "SandyBrown", "SeaGreen", "SeaGreen1", "SeaGreen2", "SeaGreen3", "SeaGreen4", "seashell", "seashell1", "seashell2", "seashell3", "seashell4", "sienna", "sienna1", "sienna2", "sienna3", "sienna4", "silver", "SkyBlue", "SkyBlue1", "SkyBlue2", "SkyBlue3", "SkyBlue4", "SlateBlue", "SlateBlue1", "SlateBlue2", "SlateBlue3", "SlateBlue4", "SlateGray", "SlateGray1", "SlateGray2", "SlateGray3", "SlateGray4", "SlateGrey", "snow", "snow1", "snow2", "snow3", "snow4", "SpringGreen", "SpringGreen1", "SpringGreen2", "SpringGreen3", "SpringGreen4", "SteelBlue", "SteelBlue1", "SteelBlue2", "SteelBlue3", "SteelBlue4", "tan", "tan1", "tan2", "tan3", "tan4", "teal", "thistle", "thistle1", "thistle2", "thistle3", "thistle4", "tomato", "tomato1", "tomato2", "tomato3", "tomato4", "turquoise", "turquoise1", "turquoise2", "turquoise3", "turquoise4", "violet", "VioletRed", "VioletRed1", "VioletRed2", "VioletRed3", "VioletRed4", "wheat", "wheat1", "wheat2", "wheat3", "wheat4", "white", "WhiteSmoke", "yellow", "yellow1", "yellow2", "yellow3", "yellow4", "YellowGreen", NULL }; gint i; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Flow Box"); gtk_window_set_default_size (GTK_WINDOW (window), 400, 600); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); flowbox = gtk_flow_box_new (); gtk_widget_set_valign (flowbox, GTK_ALIGN_START); gtk_flow_box_set_max_children_per_line (GTK_FLOW_BOX (flowbox), 30); gtk_flow_box_set_selection_mode (GTK_FLOW_BOX (flowbox), GTK_SELECTION_NONE); gtk_container_add (GTK_CONTAINER (scrolled), flowbox); gtk_container_add (GTK_CONTAINER (window), scrolled); for (i = 0; colors[i]; i++) { gtk_container_add (GTK_CONTAINER (flowbox), color_swatch_new (colors[i])); } gtk_widget_show_all (scrolled); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } (uuay)gnome-gimp.pngR PNG  IHDR00WgAMA1_ IDATxYk]u>{9w޶gllc#ǯ_Qܹu7up,+ k, !]?w @u ܴry=>ّ/$~IDhxm~Gȱ=fR.w'{ˡC"_"#acv*KDv ܂VK6Wztl0[; . 9<ckGn΍lR;y介~ &/xԙ ~w:$\":An(EFW~#AcR)ĭ4\OKs{&R@*=tӪW|B$BDp-xgp7zK~RH ѢrW\OBy񟟞Ǔ4++ݟ~xWQ,Z`olRZ2-v hJC g@ 0`O\!8 3v3X 0zE_s]^fvy\o<ЦMz^0o-[~ c8ȤDIdR!,j9ic_[6#)fݼaÆm޼!!Dqbb?=ȶKF|/b``{ޏ5kǐJǖ-[ƪP*VR1Z[Jz3WpdTMdldS*wx===m۶GǽfIo&q<?ժxWh~~vi^{m?8رcꫯBJVR R*( h֒Ʊ='20I.gN;HCyQyBvr''=Z vڅF3'`Fm<3={e&$A;IIJ({f0$GV (mb 0V:@rhrrB,_ѣGP,šs@>q߃a֭\SOhnRf}uՙ0l#٩T*-uM08O*ܝ=== fFehZ(J(9ϝ93'0n~i(RJT 8{}Π^  &VfX &fgseג3|߇Ð(Bp hPڇo}+ex~ԅSHJkZm IښU@BfÜ_Lkqaya!mU'mhـ=`6`f,? Vl$j ApY)rԇs1ro}c}ɞi4˲waE{{zz0 Q.GbCZITPy>=erJkLL]TIq3|fnqTux+ֺZT (ðJa I\CYV AAlIHc뚶p2z y5@4<5}nב˦pM?qx^R{dyZIΜG&SHrk@+ĄnNF sqnb}3VZZkRv;[P!`if[`f9;;{xHISiFJ* CiTJ0;W<.^Z@d-(B/Stz@n/5̘jg<9덎]` ۼqL |,H6ՆBT,T*7BO="Sgr0}SK0H3zjSU^uWu~NLW̧0iORIENDB`(uuay)stack.ui False GtkStack True False True stack center 0 0 1 1 True True crossfade True False 20 20 gtk3-demo page1 Page 1 Page 2 True True False 0 True center center page2 Page 2 True False center center True page3 face-laugh-symbolic 0 1 1 1 (uuay)css_accordion.c /* CSS Theming/CSS Accordion * * A simple accordion demo written using CSS transitions and multiple backgrounds * */ #include static GtkWidget *window = NULL; static void apply_css (GtkWidget *widget, GtkStyleProvider *provider) { gtk_style_context_add_provider (gtk_widget_get_style_context (widget), provider, G_MAXUINT); if (GTK_IS_CONTAINER (widget)) gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) apply_css, provider); } GtkWidget * do_css_accordion (GtkWidget *do_widget) { if (!window) { GtkWidget *container, *child; GtkStyleProvider *provider; GBytes *bytes; gsize data_size; const guint8 *data; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 600, 300); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); container = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_halign (container, GTK_ALIGN_CENTER); gtk_widget_set_valign (container, GTK_ALIGN_CENTER); gtk_container_add (GTK_CONTAINER (window), container); child = gtk_button_new_with_label ("This"); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new_with_label ("Is"); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new_with_label ("A"); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new_with_label ("CSS"); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new_with_label ("Accordion"); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new_with_label (":-)"); gtk_container_add (GTK_CONTAINER (container), child); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); bytes = g_resources_lookup_data ("/css_accordion/css_accordion.css", 0, NULL); data = g_bytes_get_data (bytes, &data_size); gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (provider), (gchar *)data, data_size, NULL); g_bytes_unref (bytes); apply_css (window, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)hypertext.c$/* Text Widget/Hypertext * * Usually, tags modify the appearance of text in the view, e.g. making it * bold or colored or underlined. But tags are not restricted to appearance. * They can also affect the behavior of mouse and key presses, as this demo * shows. */ #include #include /* Inserts a piece of text into the buffer, giving it the usual * appearance of a hyperlink in a web browser: blue and underlined. * Additionally, attaches some data on the tag, to make it recognizable * as a link. */ static void insert_link (GtkTextBuffer *buffer, GtkTextIter *iter, gchar *text, gint page) { GtkTextTag *tag; tag = gtk_text_buffer_create_tag (buffer, NULL, "foreground", "blue", "underline", PANGO_UNDERLINE_SINGLE, NULL); g_object_set_data (G_OBJECT (tag), "page", GINT_TO_POINTER (page)); gtk_text_buffer_insert_with_tags (buffer, iter, text, -1, tag, NULL); } /* Fills the buffer with text and interspersed links. In any real * hypertext app, this method would parse a file to identify the links. */ static void show_page (GtkTextBuffer *buffer, gint page) { GtkTextIter iter; gtk_text_buffer_set_text (buffer, "", 0); gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0); if (page == 1) { gtk_text_buffer_insert (buffer, &iter, "Some text to show that simple ", -1); insert_link (buffer, &iter, "hypertext", 3); gtk_text_buffer_insert (buffer, &iter, " can easily be realized with ", -1); insert_link (buffer, &iter, "tags", 2); gtk_text_buffer_insert (buffer, &iter, ".", -1); } else if (page == 2) { gtk_text_buffer_insert (buffer, &iter, "A tag is an attribute that can be applied to some range of text. " "For example, a tag might be called \"bold\" and make the text inside " "the tag bold. However, the tag concept is more general than that; " "tags don't have to affect appearance. They can instead affect the " "behavior of mouse and key presses, \"lock\" a range of text so the " "user can't edit it, or countless other things.\n", -1); insert_link (buffer, &iter, "Go back", 1); } else if (page == 3) { GtkTextTag *tag; tag = gtk_text_buffer_create_tag (buffer, NULL, "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_buffer_insert_with_tags (buffer, &iter, "hypertext:\n", -1, tag, NULL); gtk_text_buffer_insert (buffer, &iter, "machine-readable text that is not sequential but is organized " "so that related items of information are connected.\n", -1); insert_link (buffer, &iter, "Go back", 1); } } /* Looks at all tags covering the position of iter in the text view, * and if one of them is a link, follow it by showing the page identified * by the data attached to it. */ static void follow_if_link (GtkWidget *text_view, GtkTextIter *iter) { GSList *tags = NULL, *tagp = NULL; tags = gtk_text_iter_get_tags (iter); for (tagp = tags; tagp != NULL; tagp = tagp->next) { GtkTextTag *tag = tagp->data; gint page = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tag), "page")); if (page != 0) { show_page (gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view)), page); break; } } if (tags) g_slist_free (tags); } /* Links can be activated by pressing Enter. */ static gboolean key_press_event (GtkWidget *text_view, GdkEventKey *event) { GtkTextIter iter; GtkTextBuffer *buffer; switch (event->keyval) { case GDK_KEY_Return: case GDK_KEY_KP_Enter: buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view)); gtk_text_buffer_get_iter_at_mark (buffer, &iter, gtk_text_buffer_get_insert (buffer)); follow_if_link (text_view, &iter); break; default: break; } return FALSE; } /* Links can also be activated by clicking or tapping. */ static gboolean event_after (GtkWidget *text_view, GdkEvent *ev) { GtkTextIter start, end, iter; GtkTextBuffer *buffer; gdouble ex, ey; gint x, y; if (ev->type == GDK_BUTTON_RELEASE) { GdkEventButton *event; event = (GdkEventButton *)ev; if (event->button != GDK_BUTTON_PRIMARY) return FALSE; ex = event->x; ey = event->y; } else if (ev->type == GDK_TOUCH_END) { GdkEventTouch *event; event = (GdkEventTouch *)ev; ex = event->x; ey = event->y; } else return FALSE; buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view)); /* we shouldn't follow a link if the user has selected something */ gtk_text_buffer_get_selection_bounds (buffer, &start, &end); if (gtk_text_iter_get_offset (&start) != gtk_text_iter_get_offset (&end)) return FALSE; gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view), GTK_TEXT_WINDOW_WIDGET, ex, ey, &x, &y); gtk_text_view_get_iter_at_location (GTK_TEXT_VIEW (text_view), &iter, x, y); follow_if_link (text_view, &iter); return TRUE; } static gboolean hovering_over_link = FALSE; static GdkCursor *hand_cursor = NULL; static GdkCursor *regular_cursor = NULL; /* Looks at all tags covering the position (x, y) in the text view, * and if one of them is a link, change the cursor to the "hands" cursor * typically used by web browsers. */ static void set_cursor_if_appropriate (GtkTextView *text_view, gint x, gint y) { GSList *tags = NULL, *tagp = NULL; GtkTextIter iter; gboolean hovering = FALSE; gtk_text_view_get_iter_at_location (text_view, &iter, x, y); tags = gtk_text_iter_get_tags (&iter); for (tagp = tags; tagp != NULL; tagp = tagp->next) { GtkTextTag *tag = tagp->data; gint page = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tag), "page")); if (page != 0) { hovering = TRUE; break; } } if (hovering != hovering_over_link) { hovering_over_link = hovering; if (hovering_over_link) gdk_window_set_cursor (gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT), hand_cursor); else gdk_window_set_cursor (gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT), regular_cursor); } if (tags) g_slist_free (tags); } /* Update the cursor image if the pointer moved. */ static gboolean motion_notify_event (GtkWidget *text_view, GdkEventMotion *event) { gint x, y; gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view), GTK_TEXT_WINDOW_WIDGET, event->x, event->y, &x, &y); set_cursor_if_appropriate (GTK_TEXT_VIEW (text_view), x, y); return FALSE; } GtkWidget * do_hypertext (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *view; GtkWidget *sw; GtkTextBuffer *buffer; hand_cursor = gdk_cursor_new_for_display (gtk_widget_get_display (do_widget), GDK_HAND2); regular_cursor = gdk_cursor_new_for_display (gtk_widget_get_display (do_widget), GDK_XTERM); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_title (GTK_WINDOW (window), "Hypertext"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); view = gtk_text_view_new (); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (view), GTK_WRAP_WORD); g_signal_connect (view, "key-press-event", G_CALLBACK (key_press_event), NULL); g_signal_connect (view, "event-after", G_CALLBACK (event_after), NULL); g_signal_connect (view, "motion-notify-event", G_CALLBACK (motion_notify_event), NULL); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (window), sw); gtk_container_add (GTK_CONTAINER (sw), view); show_page (buffer, 1); gtk_widget_show_all (sw); } if (!gtk_widget_get_visible (window)) { gtk_widget_show (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)css_basics/. css_pixbufs/avg5}0y6gnome-foot.pngd PNG  IHDR/0#gAMA1_ IDATxYkly=wfvvfܗ)QŪl#HqdmT i4N A(n ] l<8v*#%RDY$MJ>?2T ,T\0s _e/ׇ o>Н:qj^ڷo߉mXpd WMjo1W[?kll,cСT*5:6M$eW2ob x3}3}xgPUjI3&c+wM& rտ%v{v$+Q):ښNƘUOdΑ/R7ODzHKR"xDb!zKAHiY0 RedLU(fyQݵr]] Cj6ѪU!J-a>奂Jz|q 琈E0ym{A=J|7xx#luS6}Wz6#gޘ%r[%-Mi|Zov,e |YQp"z}_wԪ_hUvyc ѦY|)B&_; qիtMb\^cϏ& G}F+8nu;hdhp6Zbew7%5 3 3j`*-nxw-8ph$Rwmcg.#\ٚmd몂g Kdj,J(*}k_z~'H^sk#-dz7vq5_VONKF8%5*'Qc]Xioiٟĥûo岹#vDP0Ƕ`YoozVYT?/l$,D!M%c-V0̟lV+T%drL\0y?mlВ'FGL%4D2IEM MF>Oy3׳ݽ}X|wo_o,l biuS/#[(=948Ǡ`zz{a[aYGPIg,# Hu^-Cm]X_;+{>VWU mX0, ϣ4C<ЪW`Y"Fni|e̤Pk $>\|r=N"6  CJYǒb!ǶZ@MC#\V˫V)c=vjn̻ [5 VIa[xAqD1׶ XYZd2gr[AWfD/Wk3GiZeyx'eBD1D8%kkeL%OO<^-Fޜ$ 1-;єdhF$EmS'eQ]Ӊm0M,g2x8v,~7|/jf0ֽ%ю^0l8$-I (J=j;.XaZbMo;MC| -Q8<<  static GtkBuilder *builder; G_MODULE_EXPORT void quit_activate (GtkAction *action) { GtkWidget *window; window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); gtk_widget_destroy (window); } G_MODULE_EXPORT void about_activate (GtkAction *action) { GtkWidget *about_dlg; about_dlg = GTK_WIDGET (gtk_builder_get_object (builder, "aboutdialog1")); gtk_dialog_run (GTK_DIALOG (about_dlg)); gtk_widget_hide (about_dlg); } G_MODULE_EXPORT void help_activate (GtkAction *action) { g_print ("Help not available\n"); } GtkWidget * do_builder (GtkWidget *do_widget) { static GtkWidget *window = NULL; GError *err = NULL; GtkWidget *toolbar; if (!window) { builder = gtk_builder_new (); gtk_builder_add_from_resource (builder, "/builder/demo.ui", &err); if (err) { g_error ("ERROR: %s\n", err->message); return NULL; } gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); toolbar = GTK_WIDGET (gtk_builder_get_object (builder, "toolbar1")); gtk_style_context_add_class (gtk_widget_get_style_context (toolbar), "primary-toolbar"); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)revealer.ui_& False 5 dialog 300 300 Revealer False vertical 2 False end _Close True True True True False True 1 False True end 0 True False center center True 2000 crossfade True face-cool-symbolic 6 2 2 True 2000 slide-up True face-cool-symbolic 6 2 1 True 2000 slide-right True face-cool-symbolic 6 3 2 True 2000 slide-down True face-cool-symbolic 6 2 3 True 2000 slide-left True face-cool-symbolic 6 1 2 True 2000 slide-up True face-cool-symbolic 6 2 0 True 2000 slide-right True face-cool-symbolic 6 4 2 True 2000 slide-down True face-cool-symbolic 6 2 4 True 2000 slide-left True face-cool-symbolic 6 0 2 False True 1 button1 (uuay)/A K_L|jw{- sN9brick2.png)PNG  IHDRsBIT|d pHYs>>"tEXtSoftwarewww.inkscape.org< IDATxySk Z)(Id[![,hE[dkRVWv06<gky?0|>yss^$z&eߏ~}$ifa;K<.3{;1`cࣄ]ƓYnKsιyBAf%M` ^s"{m|X l&Ɋq9'`f?P> t9WҘpC31fv(MܧsιF" _0oG,iV-ؠ;< ݟ;\ʄnf {Fx֒?5yy}s^Lt٥5y%*WHz sHB^X+DHI# ʔkIHNl:s>nf6H8baPj3[0LI"%Y$չA%Ms.Z\kW%*~~nfk$*7sιbjKfv4KFU%EQ+$]t9犩%VuU%#m{B>:wιTyB7O#سuU)~Ul`ıv[9\quw%T"P,yIHAz؍sιAԑSL3OdexH=%]+i$}VsMsJ-BAW+*z9{~+9\yUSPY[l`ı 妃p9>¶&{3; EiAAD8q9n.Y=G ɒ׶랒nm:sN $lk`\##]4Y'錦p9F -{{O~.m#?͝sT=+fI7u$E\?[Rq9N &b&Ŏ S@R[q9H =[=*ׄe%ifd mHIz@sΥWGkcHh%/ E0NJp9׿>g/x ^HC4*`SI7ԿsιԑЯ"]2Q"I;Rޒ\AG lw9džMf6cf2B+Hq[:~/wrXIk%no$[IY?sG fv5a=T3;)Ϗ"b0mp3r=+D3$TjF9\yCB77qxkf6H'n ~zW^p$&Gv+Q6,iip]9z Ӌwnz^ݑYe,swdz41`E UM}zE? $隊w9b& 3KA9tIQx+1WOK^ f(`M_qxsι70M%s],w=l|GJ^NM<;fB#̊zxrwhY:i-3;7O%U\9\$3wQ 5 SnUy8"..Zj/3Cٵ/s1|%̦!g&=ˀˀ#/tf6/wx bfۀS3%=]u\92qkly#?z^ڜHX`8lIf9kl5#{ 78jGC]Es.{:Xۓn 5Xv#t c%ĺ/:@vVfU$(ݬ\sιn'[%=`f Ͳ!L-XBIGF<| TΝsι!uW;rc J EFu& KHnEۜsιhOb;pYvzON$$/[sνrY+#,> ci9sú|waeOUf,Dsu4N ka/p Yn4%Q(<<U{sJIHgfv.A&>l l%I7V_"o핒(>Ae) ()QTAI+7Ġ$$yW׎"LuB~1Ж߀5z6=\8pcSI-"P}^V3It5g  b3A'o?uzô IQS`3[v3K7"y6} fv|6зl3;p0)>3Yfi%3̾ؑD6d\,yT%h*וȒ.~X-nOl 3;Wfu]1oaf[^cf>)5ii8A3;g 6IԜ' uKwuc_D1E쇄ڵ;mtefoTշf֚ L"lEkفlYN-n`'[ҩ_ $6E@f6GH8Nս΀j^ؓD-B_B4j#Tm:ajf{UvF)^D'efM'yefkG+{͜5N~Nl-@U9HNH#+K`2kY"YkK$lzJMIzQ>c̶-}PkǘF/}6z#N{~vVt%~m ^JGWg d`f׏`zndi氚fD(g>A-EM!qe5Y٪I7^@8heJgSh5sA;5nو efK+uK%=B ǭGXܹ.0NR]U}FRbݾC8) @Ag@v䤚?̮`DU$ lnI/6b@ qWZz6saOˤdl' IX,"ggd?+!1w%MMw]'鞦)VӁ$ ;Ӓ989;+l)m1#="EwaZ5$a \_q*nzvT_hi~/8+M Ez C((aTqmlM( ç/;f'P3LclffIUmڊ4 rMn]C~Q3t3{bOMh:nfq#UIS$Fxn9t qY*iOueIOFֱ$U<;윂JJT죄g+T({x7$aIzIɒϪ!@$"\ĞE[„ 1O 4g5/ ]YAfZ|7ASI~vlsO&aqlք)$,+;Y鍞RYB϶ߒV'ljv-a; h^3[0WS?t'pjd3{ ^UyV:g&7HK7O $guhj5P35m>iӑ^MI"yvI~3+ oQ}r1՞C !z'2?x8d!b{ò2m뿝"H?fX]vڼ9$iB\DԛImM3bGg|MhIMNj‰9[0(GgcMkFu"?KKI"_?k:.%bx7 }%?Dc ml=KlBe(NfKAt}rq(mc4 yՑ}ZN$gSGh pcA jnjtkxF,f;c@bfph^ec_tڽ^jmҞF_7E/Tgg7RMIs|sEf"&_|yT*_<xBo@tB϶snUr\$m\ݒ$eu{M`fK1u#$=<+޲ ً?'-3:Thpy|A "hM3J*(pzMwZ{ˌP_/3x-- W ؕ)=}3KN@ڪCT"6])4&fτހlIM?1 }|7ټ+wh\JzeNx,Vd΂ h*E܁:Z[q0lnȄH{iYޖrVwD\?8Ұ "B1JOf yp GJ\0!D8W\}"Ŧ\m7mЧvnfnam$lf;m]X dЧ%NHX-? e/~6P|l1eo\ 1 }dQ< l(8bܟI/?:%tIwG4C31 UI/&$kfMC[ nPnxBU)^{ޕ.F=P^*j=G)~}a{BeF'`tոXCRlʺ=qm=p´kY GV])fBg_[ ~KbJf6U`%_pWb-ɬ E\[{BO3bqoIHE \6H {$֙8KI5*E︊"tC{p&}!n}`T1' ?7emIjayĎWLE=CiMle?ZP9z(:B_(Fۀ$۴PL1gM|MNͫs+Oj;TMkK"5@xOA\L(m|%b#j%^ =^h*ppMS#_8Œ-~3[JN0(r2kfS\:gf"9S:£"kM>RYE{@)!u[>M'nuTi߁1 ׬a#LQ UozMz=hBYIk:Ĥj>vٖ#XVOO4ؙ0ja_bjh̢:^H||^K$~QF]D$]tbn!d[n7h,TUBD#m<( I[H](kb'^7COL܌A'#шYA2r^ !~F>(=WݑCqR2 ;wY'<&s`j=Mm[֑wUZE@ qW#A^MǑCI *y1񾪦TT|rkPՠhB﷽ӱ^Vm_yOS2H:88#_6KɛBH,e]%_9WiBt0xQc![ZOפhB7M74c~/:> ֑$3pk:H~Nky2J 2OC`\ TNEۡ7^5lK7kI^k*[ѯ /&Ée;yNο.u8:z+~瓁]%1]} LX>(w#kdx 3D秊׵M*%}F>=%M-%(ne}gO%GsE}T+ =i]+ JIDATʶz2OG8s5`y`Fi2p0pK+ v'ImvzKK5eS U]힧LƙYU+&SuӁ-U;ekpL'&?@jtuk\`EIg[*%/M藑-⏸b)/)}Yf)akwVٚQ Ie# q |PzdRV+Mo\SaWW I$n?&YE%tIӀ?|rPYEF@Ff]TTw#13%ssszPS)}0-y=54eJwKkst `X^7-5 ńu&)Qn*Deޓ})5>LiW消>rW ƲbqcA:mҒ]ff3ͪkd}̖$84["|gVT?4_%me'uJ5?>F`h$9IK,I) ثhCӉG٘lMs.ro[_|1ꊶd<"̝{d =gz`+t,97Uz죠l ߠ¶3Cs:$2I6sYzىKn7c|s΍n',|68RWt4sn( K_`#cix2w97%tI"lXv=g9\2Hz0R?xp'`cIӚ9\`C"4K6KM&Jz@s֎;IL?Xjp 'ssEDB4EҶF<<L+9 )nf6'5 )n`GI5sιԓ }-pZ: 9\>>Bot,<|F҅MsEB`f_~,馃q9*0w}pNHf*]# r9FOBdfK^F6 0'Iz6=s.Qл`EBr_ XXׁtࡎٯ7HY{9~RU7-`IENDB`(uuay)gtk.css/* You can edit the text in this window to change the * appearance of this Window. * Be careful, if you screw it up, nothing might be visible * anymore. :) */ /* This CSS resets all properties to their defaults values * and overrides all user settings and the theme in use */ @import url("resource://css_shadows/reset.css"); @import url("resource://css_shadows/cssview.css"); /* Get a nice background for the window */ .background { background-color: #4870bc; background-image: linear-gradient(to left, transparent, rgba(255,255,255,.07) 50%, transparent 50%), linear-gradient(to left, transparent, rgba(255,255,255,.13) 50%, transparent 50%), linear-gradient(to left, transparent, transparent 50%, rgba(255,255,255,.17) 50%), linear-gradient(to left, transparent, transparent 50%, rgba(255,255,255,.19) 50%); background-size: 29px, 59px, 73px, 109px; } .button { color: black; padding: 10px; border-radius: 5px; transition: all 250ms ease-in; border: 1px transparent solid; } .button:hover { text-shadow: 3px 3px 5px alpha(black, 0.75); icon-shadow: 3px 3px 5px alpha(black, 0.75); box-shadow: 3px 3px 5px alpha(black, 0.5) inset; border: solid 1px alpha(black, 0.75); } .button:active { padding: 11px 9px 9px 11px; text-shadow: 1px 1px 2.5px alpha(black, 0.6); icon-shadow: 1px 1px 2.5px alpha(black, 0.6); } (uuay)application.c1/* Application Class * * Demonstrates a simple application. * * This examples uses GtkApplication, GtkApplicationWindow, GtkBuilder * as well as GMenu and GResource. Due to the way GtkApplication is structured, * it is run as a separate process. */ #include "config.h" #include #ifdef STANDALONE static void show_action_dialog (GSimpleAction *action) { const gchar *name; GtkWidget *dialog; name = g_action_get_name (G_ACTION (action)); dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "You activated action: \"%s\"", name); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); } static void show_action_infobar (GSimpleAction *action, GVariant *parameter, gpointer window) { GtkWidget *infobar; GtkWidget *message; gchar *text; const gchar *name; const gchar *value; name = g_action_get_name (G_ACTION (action)); value = g_variant_get_string (parameter, NULL); message = g_object_get_data (G_OBJECT (window), "message"); infobar = g_object_get_data (G_OBJECT (window), "infobar"); text = g_strdup_printf ("You activated radio action: \"%s\".\n" "Current value: %s", name, value); gtk_label_set_text (GTK_LABEL (message), text); gtk_widget_show (infobar); g_free (text); } static void activate_action (GSimpleAction *action, GVariant *parameter, gpointer user_data) { show_action_dialog (action); } static void activate_toggle (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GVariant *state; show_action_dialog (action); state = g_action_get_state (G_ACTION (action)); g_action_change_state (G_ACTION (action), g_variant_new_boolean (!g_variant_get_boolean (state))); g_variant_unref (state); } static void activate_radio (GSimpleAction *action, GVariant *parameter, gpointer user_data) { show_action_infobar (action, parameter, user_data); g_action_change_state (G_ACTION (action), parameter); } static void activate_about (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GtkWidget *window = user_data; const gchar *authors[] = { "Peter Mattis", "Spencer Kimball", "Josh MacDonald", "and many more...", NULL }; const gchar *documentors[] = { "Owen Taylor", "Tony Gale", "Matthias Clasen ", "and many more...", NULL }; gtk_show_about_dialog (GTK_WINDOW (window), "program-name", "GTK+ Code Demos", "version", g_strdup_printf ("%s,\nRunning against GTK+ %d.%d.%d", PACKAGE_VERSION, gtk_get_major_version (), gtk_get_minor_version (), gtk_get_micro_version ()), "copyright", "(C) 1997-2013 The GTK+ Team", "license-type", GTK_LICENSE_LGPL_2_1, "website", "http://www.gtk.org", "comments", "Program to demonstrate GTK+ functions.", "authors", authors, "documenters", documentors, "logo-icon-name", "gtk3-demo", "title", "About GTK+ Code Demos", NULL); } static void activate_quit (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GtkApplication *app = user_data; GtkWidget *win; GList *list, *next; list = gtk_application_get_windows (app); while (list) { win = list->data; next = list->next; gtk_widget_destroy (GTK_WIDGET (win)); list = next; } } static void update_statusbar (GtkTextBuffer *buffer, GtkStatusbar *statusbar) { gchar *msg; gint row, col; gint count; GtkTextIter iter; /* clear any previous message, underflow is allowed */ gtk_statusbar_pop (statusbar, 0); count = gtk_text_buffer_get_char_count (buffer); gtk_text_buffer_get_iter_at_mark (buffer, &iter, gtk_text_buffer_get_insert (buffer)); row = gtk_text_iter_get_line (&iter); col = gtk_text_iter_get_line_offset (&iter); msg = g_strdup_printf ("Cursor at row %d column %d - %d chars in document", row, col, count); gtk_statusbar_push (statusbar, 0, msg); g_free (msg); } static void mark_set_callback (GtkTextBuffer *buffer, const GtkTextIter *new_location, GtkTextMark *mark, gpointer data) { update_statusbar (buffer, GTK_STATUSBAR (data)); } static void change_theme_state (GSimpleAction *action, GVariant *state, gpointer user_data) { GtkSettings *settings = gtk_settings_get_default (); g_object_set (G_OBJECT (settings), "gtk-application-prefer-dark-theme", g_variant_get_boolean (state), NULL); g_simple_action_set_state (action, state); } static void change_titlebar_state (GSimpleAction *action, GVariant *state, gpointer user_data) { GtkWindow *window = user_data; gtk_window_set_hide_titlebar_when_maximized (GTK_WINDOW (window), g_variant_get_boolean (state)); g_simple_action_set_state (action, state); } static void change_radio_state (GSimpleAction *action, GVariant *state, gpointer user_data) { g_simple_action_set_state (action, state); } static GActionEntry app_entries[] = { { "new", activate_action, NULL, NULL, NULL }, { "open", activate_action, NULL, NULL, NULL }, { "save", activate_action, NULL, NULL, NULL }, { "save-as", activate_action, NULL, NULL, NULL }, { "quit", activate_quit, NULL, NULL, NULL }, { "dark", activate_toggle, NULL, "false", change_theme_state } }; static GActionEntry win_entries[] = { { "titlebar", activate_toggle, NULL, "false", change_titlebar_state }, { "shape", activate_radio, "s", "'oval'", change_radio_state }, { "bold", activate_toggle, NULL, "false", NULL }, { "about", activate_about, NULL, NULL, NULL }, { "file1", activate_action, NULL, NULL, NULL }, { "logo", activate_action, NULL, NULL, NULL } }; static void clicked_cb (GtkWidget *widget, GtkWidget *info) { gtk_widget_hide (info); } static void startup (GApplication *app) { GtkBuilder *builder; GMenuModel *appmenu; GMenuModel *menubar; builder = gtk_builder_new (); gtk_builder_add_from_resource (builder, "/application/menus.ui", NULL); appmenu = (GMenuModel *)gtk_builder_get_object (builder, "appmenu"); menubar = (GMenuModel *)gtk_builder_get_object (builder, "menubar"); gtk_application_set_app_menu (GTK_APPLICATION (app), appmenu); gtk_application_set_menubar (GTK_APPLICATION (app), menubar); g_object_unref (builder); } static void activate (GApplication *app) { GtkBuilder *builder; GtkWidget *window; GtkWidget *grid; GtkWidget *contents; GtkWidget *status; GtkWidget *message; GtkWidget *button; GtkWidget *infobar; GtkWidget *menutool; GMenuModel *toolmenu; GtkTextBuffer *buffer; window = gtk_application_window_new (GTK_APPLICATION (app)); gtk_window_set_title (GTK_WINDOW (window), "Application Class"); gtk_window_set_icon_name (GTK_WINDOW (window), "document-open"); gtk_window_set_default_size (GTK_WINDOW (window), 200, 200); g_action_map_add_action_entries (G_ACTION_MAP (window), win_entries, G_N_ELEMENTS (win_entries), window); builder = gtk_builder_new (); gtk_builder_add_from_resource (builder, "/application/application.ui", NULL); grid = (GtkWidget *)gtk_builder_get_object (builder, "grid"); contents = (GtkWidget *)gtk_builder_get_object (builder, "contents"); status = (GtkWidget *)gtk_builder_get_object (builder, "status"); message = (GtkWidget *)gtk_builder_get_object (builder, "message"); button = (GtkWidget *)gtk_builder_get_object (builder, "button"); infobar = (GtkWidget *)gtk_builder_get_object (builder, "infobar"); menutool = (GtkWidget *)gtk_builder_get_object (builder, "menutool"); toolmenu = (GMenuModel *)gtk_builder_get_object (builder, "toolmenu"); g_object_set_data (G_OBJECT (window), "message", message); g_object_set_data (G_OBJECT (window), "infobar", infobar); gtk_container_add (GTK_CONTAINER (window), grid); gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (menutool), gtk_menu_new_from_model (toolmenu)); gtk_widget_grab_focus (contents); g_signal_connect (button, "clicked", G_CALLBACK (clicked_cb), infobar); /* Show text widget info in the statusbar */ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (contents)); g_signal_connect_object (buffer, "changed", G_CALLBACK (update_statusbar), status, 0); g_signal_connect_object (buffer, "mark-set", G_CALLBACK (mark_set_callback), status, 0); update_statusbar (buffer, GTK_STATUSBAR (status)); gtk_widget_show_all (window); g_object_unref (builder); } int main (int argc, char *argv[]) { GtkApplication *app; GSettings *settings; GAction *action; gtk_init (NULL, NULL); app = gtk_application_new ("org.gtk.Demo2", 0); settings = g_settings_new ("org.gtk.Demo"); g_action_map_add_action_entries (G_ACTION_MAP (app), app_entries, G_N_ELEMENTS (app_entries), app); action = g_settings_create_action (settings, "color"); g_action_map_add_action (G_ACTION_MAP (app), action); g_signal_connect (app, "startup", G_CALLBACK (startup), NULL); g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); g_application_run (G_APPLICATION (app), 0, NULL); return 0; } #else /* !STANDALONE */ static gboolean name_seen; static GtkWidget *placeholder; static void on_name_appeared (GDBusConnection *connection, const gchar *name, const gchar *name_owner, gpointer user_data) { name_seen = TRUE; } static void on_name_vanished (GDBusConnection *connection, const gchar *name, gpointer user_data) { if (!name_seen) return; if (placeholder) { gtk_widget_destroy (placeholder); g_object_unref (placeholder); placeholder = NULL; } } #ifdef G_OS_WIN32 #define APP_EXTENSION ".exe" #else #define APP_EXTENSION #endif GtkWidget * do_application (GtkWidget *toplevel) { static guint watch = 0; if (watch == 0) watch = g_bus_watch_name (G_BUS_TYPE_SESSION, "org.gtk.Demo2", 0, on_name_appeared, on_name_vanished, NULL, NULL); if (placeholder == NULL) { const gchar *command; GError *error = NULL; if (g_file_test ("./gtk3-demo-application" APP_EXTENSION, G_FILE_TEST_IS_EXECUTABLE)) command = "./gtk3-demo-application" APP_EXTENSION; else command = "gtk3-demo-application"; if (!g_spawn_command_line_async (command, &error)) { g_warning ("%s", error->message); g_error_free (error); } placeholder = gtk_label_new (""); g_object_ref_sink (placeholder); } else { g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL), "org.gtk.Demo2", "/org/gtk/Demo2", "org.gtk.Actions", "Activate", g_variant_new ("(sava{sv})", "quit", NULL, NULL), NULL, 0, G_MAXINT, NULL, NULL); } return placeholder; } #endif (uuay)listbox.uinL True False True False Email message True True False Embed message True (uuay)background.jpgVJFIFHHCreated with The GIMPC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222"8!1AQ"a2q#BR3rbC1 ?T[C GzFh ʎ^h| lFT{(v4 TQ|Q ¡KHylmUw$"G4dvEL C1H2;ށY $=3Y4pVM'UDkYR#B@X㘧X"A8$rB Kиd֩1`Np˛MTDL~)oϊ%%FQ"-ó<P \(@E/zg[}ST-ɌpD* $EV$~7U ` {U-yZTꍻk :ԃD!7@`5{~(1`vֲ0ݤ}N[ͰPb"7"1 rfV $Oo~Pe5'HqTfڠXEgU27?)7fW]ۉ?mos9 hb$CYQG-3]:sRH;սXf$}YڶB[Pr$G N,T4hx>iFER*@=sb;k|*(O>(P$S aN<2UpXK&v^*=Fse{]t߭e-胯WeqM@~t{ u-ҳqmAjX&O5@W ڝyp*ʾ;hrI =C!9g(ǚ 3X:46P c h46P1:Hd{ EDnH:XE; Pn- OZxB2Ց1#>H1Hӏ(3b]0H:TɽԶ(L#ɥZùa{im-ZKPm?.ucʁRKT-[npX3 k-9\x CSnDSڣNrQ(~(`K UuQv)aseTI2)e+a{$W>৐;U ߎi+P꣰t= :{p8ULZ*k$My N_q&^MFy:N嶽Ř0PtUBuH=Ywz̈%)PzpX!\\'jt9 W\*i$ ' WOhl/K{@`d~h`@2y)K,-UB} ) c梳gdbDH)B@M>GYh -剃<^e{ZgMm-HU'Pfh P#9g; 'GH؊e]V._%DkTobvh:` cMs\`Ph99 ~ᕰ@=A[%Ǹ:*)>cE lF܍H2'4l<:+^%m9ƷLtU@QIJ) r?={. ?[p9-7Mmn:b].ۻY!wU ˃ <]zFڤ*2'B2cnRދ9b7ⅲ}H=sxs@m*-W[;1 ~p *ΉhX悳75,4$x5FPg114 1ދLS.:> Pˤvu9"t4Od|ċi,H"=1K2R{οXu2OĞ>k)!8wTPd yb`5^S[rqgg4[CkԎ2vڨ+dL FKb*=v*YXD I~@A}R΢V٠mȂb5qU@}5VcځllKx@U@-r7'g$h?5 ˘S\zxxs3UhQDe&vf1(HCl6Si@8("o[캤KxUn[Sy`椷K=5%pvhnUd hB TsZ+'.40LcwGqjȝ ,nط[>ªbuAඡ@&;P"1P@*"I<,CL~GuInkF -S)wü zfڵZv ?W0Xb}؏hIKVГ6>dOl@#Ku h?{HDH #E@*K 11As Y v,VmP fl(]*?o\[}: P;-KKA ?;eFIրImRAPǽrݫCI~5pYeK}g@ v ӕB$w!| e r1 S1v3(* #=b'KSIrNKyTnތfU"u:~( [H/RI2I317)ڏbOo`L{(i3tk J+;!Ҵq*!yـLB+cڟ#&c*& РGQ@B'Qa0=I6t&d 䊨,nط[>ªbuAඡ@&;TR*I$)}21dy~T>6:Tkx0`2|; ~nͫ]5`p>jLn &*)݈DTo 0+0#cDH6̴9P̶aT@D 9 Tx[;bN eJb`vlU2 ~Ojnbq۲31F5ŷӮ ð^ jAszFThĝh E$ { -ڴ?`q?Q 6^'{b 9T,NZqojXֹ`m< v!m+;zmw$UXȘR[{ i.9Z:nap+q#KGdx^=EИT\׮qz{Nxaڼuze6Ŷq֦ rO›*qle5\(UQu|Q޵K\r} A(83,g[;GޑWӑ8 ==:M$GP)v(@sW SG$=C1ԁ$fi_UMmVDӺgp-dDk5' A(=TqY$ַm3  U fv"qS*`Bݏ?OyZP=c&g3h LE Ŏ,s1kY N(6*< 7X sO>ɓ'A- EIv o+ DLbk7S 3LAQLWitτ! >aIڃ*=T5[ ?K([f{P)9?jֹ`m< v!m+;zmw$U)%[`5ȗ bz_{4xN] Omz hyW W]gSl[i'jj*^ w$)|Gk0Pc\P͜}QUh0']η=\@T G42; A2ɌuHKaTxqM9P܃ڭcJ )A m>P f {(^>PH>)L<9ղXAYE_VITT̘biQQ=z|,2P*P\dR[y$N⢂(Y$qvE-?޶6n\8}^womc Ѵ{y1ոu=O4ޡԨ{J81{'k*CNF 􂋬ξcܚA$F5UFpX7Hf׶\6vKq>)A m>P f {(^>PH>)L<9ղXAYE_VITT̘biQQ=z|,2P*P\dR[y$N⢂(Y$qvE-?޶6n\8}^womc Ѵ{y1\EtonsEZ*?UGlbR.w :W%D&1Q{z MHwwn8^Z l)$5 Z|S?4!-+V( \ĉ1Y%wi-ALU]axX-+r}6UOj RVia*JݲOrP% Yై5@팪b;H@2\" e(PHzWp"ډ1t8;,++\c5O4 t6B:4Urv(qU<- r>;QM'<_IϨ lg( $ncof6ӥ*e B^~hP:f5QqSݸ.3l QBTsFtœ f9WPyEk :'&OmtzyLXzS>N;iReUq/En~ہ@үQY-qL3q2k/\ A⹺wf׻q&893,H␲Rg,4UWP\P@B2b`KF_oimP/к#gAUSXˀ<8fŲI&gj Gڎ0YV  UP{2a汶 2y 5T[]?LL3$r; j95PPX2Z3q'PҰiR/{{@Ы@H9l* @TfX !e)ɢ2ϘXi@*d1YP0,>f_u$# F` yrN>ؤg%R~)U 2ۍNPlG n2,]V!)R.NG~ G:ɊtLkY_$*[v$h a=iF. @'02IcX$ӥ@ ?j5`ANyWǸ`a-)N⋹!f{M#x۞Oڛ ,dyB[9?4WrA#T#[M*n@)Ҥ:Ivs)P'FbΦ˾D.8ԽhDT)OHKAƝL|Q=*i0 vMf[4" EbqT,,xb!x[aP;%?!-ROv'1G0Y/i5nFg#G _ @'zk2V6;_@a,kĚ/̷Qw7&Z FFPAb-j4@b;^f1Vjjl^^ ~sEGӴ0R:q:WL¬€2 X7fAjı8vbnԅ!53ж"<RT Umo6cڵ7oV`|df"džMJ9 Ub9=-r֡)`)0&55<5@]D=kpl? -rZDRPpuUM#`lsk m7ʆkV@5HΪ 1<$P"LGv(Iv,< 2+9lڊ>p@WC)"KhwUIk,1se[P; KK;d 5U7L[NA^.L)Gi2$p/ AUE(ñ:2.kvRfL6&IX80$ʑW׹E۷Qvy[iQӲ-[>3?5Q4:v&&A|ǦO5y"B0[ĝE⵷gkPa1+{ ds ip]GTy>h[Li(~Y'T q588*4H>Kmq@I3?PIi8QdyDS"*+N"`ڀ$YĒq$qYR촋kwnx NLDOsA*\')BvQJ}(hB/;$@ؖhl@$a@@UBAk-솝"c(arFB{&rV:QHRn(2N5飻!Mh@qAD1}o` 4$R]Ndn>*_='@J;gm753ikǓiDYLfO}TSnB! Nк!bL;UwpKiPhj`chTA rA>&Icj}GC@#7sN s^bm#gt1O4Taʏ$UCV䝘nР(9:8Q.oLs!Ar#u%dVwOg7ٮ{6LY().ZN4&>*a 梪O4 +@Y?]#Hb&!'Fnx NLDOsA*\')BvQJ}(hB/;$@ؖhl@$a@@UBAk-솝"c(arFB{&rV:QHRn(2N5飻!Mh@qAD1}o` 4$R]Ndn>*_='@J;gm753ikǓiDYLfO}TSnB! Nк!bL;UwpKiPPKr@ :pf}ܓM)wA;m-#tm#(w{xp o\ޟfw'@*S6[ޙY\E(UTJ2Di46 {UF V ʼnf*:IHM1gGu5l"FB0Ŷ8&GbPJj&fh vbp5!*1\CR}G$tfi d4cftwQMsV)9d*Nc [cM2l4v 4ffH`'f)\Rn0=y4='rI'C+cjq'z'f6'>")[;i[eN "-y1bFTT3DA&h}CB(aR5kV`~$$p?4PỸfPT!Ʃ`" >hYsm4IOdIX ?zP$ (ղ@?+*ǙQ2i~4V.C\=D*# @1X;k"2mРF̬@S}SNŷ1ʠP"a@;a.޳΢M *b?ZկF%}dɬTO H*, !j'SL>#ǓAmEQZiK*O>!mL Dl(S:קҪɮvMr?yuO&uC7aAzt-xdž2-4 M%3ykV}DZIf 9KjGjqp8xJ)LAuv"~yn(#{e*P*O 4~Xk Z`+hjSB?P`8 ,fALd(AfcrcTH4, $觲O$I(fcj LIcj(b4H!݀ Ѭ[L5I6hP#fVw)SbۈYeP(|@LD\|zYQJ&PD±fڭjףhHvvqo'Qm D9a#q+*;z4Ŧp 9'B椑!w{رPI[lG"!tI<T$ߚY>h| lFT{(v4 TQ|Q ¡KHylmUw$"G4dvEL C1H2;ށY $=3Y4pVM'UDkYR#B@X㘧X"A8$rB Kиd֩1`Np˛MTDL~)oϊ%%FQ"-ó<P \(@E/zg[}ST-ɌpD* $EV$~7U ` {U-yZTꍻk :ԃD!7@`5{~(1`vֲ0ݤ}N[ͰPb"7"1 rfV $Oo~Pe5'HqTfڠXEgU27?)7fW]ۉ?mos9 hb$CYQG-3]:sRH;սXf$}YڶB[Pr$G N,T4hx>iFER*@=sb;k|*(O>(P$S aN<2UpXK&v^*=Fse{]t߭e-胯WeqM@~t{ u-ҳqmAjX&O5@W ڝyp*ʾ;hrI =C!9g(ǚ 3X:46P c h46P1:Hd{ EDnH:XE; Pn- OZxB2Ց1#>H1Hӏ(3b]0H:TɽԶ(L#ɥZùa{im-ZKPm?.ucʁRKT-[npX3 k-9\x CSnDSڣNrQ(~(`K UuQv)aseTI2)e+a{$W>৐;U ߎi+P꣰t= :{p8ULZ*k$My N_q&^MFy:N嶽Ř0PtUBuH=Ywz̈%)PzpX!\\'jt9 W\*i$ ' WOhl/K{@`d~h`@2y)K,-UB} ) c梳gdbDH)B@M>GYh -剃<^e{ZgMm-HU'Pfh P#9g; 'GH؊e]V._%DkTobvh:` cMs\`Ph99 ~ᕰ@=A[%Ǹ:*)>cE lF܍H2'4l<:+^%m9ƷLtU@QIJ) r?={. ?[p9-7Mmn:b].ۻY!wU ˃ <]zFڤ*2'B2cnRދ9b7ⅲ}H=sxs@m*-W[;1 ~p *ΉhX悳75,4$x5FPg114 1ދLS.:> Pˤvu9"t4Od|ċi,H"=1K2R{οXu2OĞ>k)!8wTPd yb`5^S[rqgg4[CkԎ2vڨ+dL FKb*=v*YXD I~@A}R΢V٠mȂb5qU@}5VcځllKx@U@-r7'g$h?5 ˘S\zxxs3UhQDe&vf1(HCl6Si@8("o[캤KxUn[Sy`椷K=5%pvhnUd hB TsZ+'.40LcwGqjȝ ,nط[>ªbuAඡ@&;P"1P@*"I<,CL~GuInkF -S)wü zfڵZv ?W0Xb}؏hIKVГ6>dOl@#Ku h?{HDH #E@*K 11As Y v,VmP fl(]*?o\[}: P;-KKA ?;eFIրImRAPǽrݫCI~5pYeK}g@ v ӕB$w!| e r1 S1v3(* #=b'KSIrNKyTnތfU"u:~( [H/RI2I317)ڏbOo`L{(i3tk J+;!Ҵq*!yـLB+cڟ#&c*& РGQ@B'Qa0=I6t&d 䊨,nط[>ªbuAඡ@&;TR*I$)}21dy~T>6:Tkx0`2|; ~nͫ]5`p>jLn &*)݈DTo 0+0#cDH6̴9P̶aT@D 9 Tx[;bN eJb`vlU2 ~Ojnbq۲31F5ŷӮ ð^ jAszFThĝh E$ { -ڴ?`q?Q 6^'{b 9T,NZqojXֹ`m< v!m+;zmw$UXȘR[{ i.9Z:nap+q#KGdx^=EИT\׮qz{Nxaڼuze6Ŷq֦ rO›*qle5\(UQu|Q޵K\r} A(83,g[;GޑWӑ8 ==:M$GP)v(@sW SG$=C1ԁ$fi_UMmVDӺgp-dDk5' A(=TqY$ַm3  U fv"qS*`Bݏ?OyZP=c&g3h LE Ŏ,s1kY N(6*< 7X sO>ɓ'A- EIv o+ DLbk7S 3LAQLWitτ! >aIڃ*=T5[ ?K([f{P)9?jֹ`m< v!m+;zmw$U)%[`5ȗ bz_{4xN] Omz hyW W]gSl[i'jj*^ w$)|Gk0Pc\P͜}QUh0']η=\@T G42; A2ɌuHKaTxqM9P܃ڭcJ )A m>P f {(^>PH>)L<9ղXAYE_VITT̘biQQ=z|,2P*P\dR[y$N⢂(Y$qvE-?޶6n\8}^womc Ѵ{y1ոu=O4ޡԨ{J81{'k*CNF 􂋬ξcܚA$F5UFpX7Hf׶\6vKq>)A m>P f {(^>PH>)L<9ղXAYE_VITT̘biQQ=z|,2P*P\dR[y$N⢂(Y$qvE-?޶6n\8}^womc Ѵ{y1\EtonsEZ*?UGlbR.w :W%D&1Q{z MHwwn8^Z l)$5 Z|S?4!-+V( \ĉ1Y%wi-ALU]axX-+r}6UOj RVia*JݲOrP% Yై5@팪b;H@2\" e(PHzWp"ډ1t8;,++\c5O4 t6B:4Urv(qU<- r>;QM'<_IϨ lg( $ncof6ӥ*e B^~hP:f5QqSݸ.3l QBTsFtœ f9WPyEk :'&OmtzyLXzS>N;iReUq/En~ہ@үQY-qL3q2k/\ A⹺wf׻q&893,H␲Rg,4UWP\P@B2b`KF_oimP/к#gAUSXˀ<8fŲI&gj Gڎ0YV  UP{2a汶 2y 5T[]?LL3$r; j95PPX2Z3q'PҰiR/{{@Ы@H9l* @TfX !e)ɢ2ϘXi@*d1YP0,>f_u$# F` yrN>ؤg%R~)U 2ۍNPlG n2,]V!)R.NG~ G:ɊtLkY_$*[v$h a=iF. @'02IcX$ӥ@ ?j5`ANyWǸ`a-)N⋹!f{M#x۞Oڛ ,dyB[9?4WrA#T(uuay)gnome-fs-regular.png'GdkP'04o###Kppp ! ! ! ! ! QQQGGGFFEFFFFFF]]\0llllllEEE@zzzFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFo?5@FGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGF?((uuay)rotated_text.c2/* Rotated Text * * This demo shows how to use PangoCairo to draw rotated and transformed * text. The right pane shows a rotated GtkLabel widget. * * In both cases, a custom PangoCairo shape renderer is installed to draw * a red heard using cairo drawing operations instead of the Unicode heart * character. */ #include #include static GtkWidget *window = NULL; #define HEART "♥" const char text[] = "I ♥ GTK+"; static void fancy_shape_renderer (cairo_t *cr, PangoAttrShape *attr, gboolean do_path, gpointer data) { double x, y; cairo_get_current_point (cr, &x, &y); cairo_translate (cr, x, y); cairo_scale (cr, (double) attr->ink_rect.width / PANGO_SCALE, (double) attr->ink_rect.height / PANGO_SCALE); switch (GPOINTER_TO_UINT (attr->data)) { case 0x2665: /* U+2665 BLACK HEART SUIT */ { cairo_move_to (cr, .5, .0); cairo_line_to (cr, .9, -.4); cairo_curve_to (cr, 1.1, -.8, .5, -.9, .5, -.5); cairo_curve_to (cr, .5, -.9, -.1, -.8, .1, -.4); cairo_close_path (cr); } break; } if (!do_path) { cairo_set_source_rgb (cr, 1., 0., 0.); cairo_fill (cr); } } PangoAttrList * create_fancy_attr_list_for_layout (PangoLayout *layout) { PangoAttrList *attrs; PangoFontMetrics *metrics; int ascent; PangoRectangle ink_rect, logical_rect; const char *p; /* Get font metrics and prepare fancy shape size */ metrics = pango_context_get_metrics (pango_layout_get_context (layout), pango_layout_get_font_description (layout), NULL); ascent = pango_font_metrics_get_ascent (metrics); logical_rect.x = 0; logical_rect.width = ascent; logical_rect.y = -ascent; logical_rect.height = ascent; ink_rect = logical_rect; pango_font_metrics_unref (metrics); /* Set fancy shape attributes for all hearts */ attrs = pango_attr_list_new (); for (p = text; (p = strstr (p, HEART)); p += strlen (HEART)) { PangoAttribute *attr; attr = pango_attr_shape_new_with_data (&ink_rect, &logical_rect, GUINT_TO_POINTER (g_utf8_get_char (p)), NULL, NULL); attr->start_index = p - text; attr->end_index = attr->start_index + strlen (HEART); pango_attr_list_insert (attrs, attr); } return attrs; } static gboolean rotated_text_draw (GtkWidget *widget, cairo_t *cr, gpointer data) { #define RADIUS 150 #define N_WORDS 5 #define FONT "Serif 18" PangoContext *context; PangoLayout *layout; PangoFontDescription *desc; cairo_pattern_t *pattern; PangoAttrList *attrs; double device_radius; int width, height; int i; /* Create a cairo context and set up a transformation matrix so that the user * space coordinates for the centered square where we draw are [-RADIUS, RADIUS], * [-RADIUS, RADIUS]. * We first center, then change the scale. */ width = gtk_widget_get_allocated_width (widget); height = gtk_widget_get_allocated_height (widget); device_radius = MIN (width, height) / 2.; cairo_translate (cr, device_radius + (width - 2 * device_radius) / 2, device_radius + (height - 2 * device_radius) / 2); cairo_scale (cr, device_radius / RADIUS, device_radius / RADIUS); /* Create and a subtle gradient source and use it. */ pattern = cairo_pattern_create_linear (-RADIUS, -RADIUS, RADIUS, RADIUS); cairo_pattern_add_color_stop_rgb (pattern, 0., .5, .0, .0); cairo_pattern_add_color_stop_rgb (pattern, 1., .0, .0, .5); cairo_set_source (cr, pattern); /* Create a PangoContext and set up our shape renderer */ context = gtk_widget_create_pango_context (widget); pango_cairo_context_set_shape_renderer (context, fancy_shape_renderer, NULL, NULL); /* Create a PangoLayout, set the text, font, and attributes */ layout = pango_layout_new (context); pango_layout_set_text (layout, text, -1); desc = pango_font_description_from_string (FONT); pango_layout_set_font_description (layout, desc); attrs = create_fancy_attr_list_for_layout (layout); pango_layout_set_attributes (layout, attrs); pango_attr_list_unref (attrs); /* Draw the layout N_WORDS times in a circle */ for (i = 0; i < N_WORDS; i++) { int width, height; /* Inform Pango to re-layout the text with the new transformation matrix */ pango_cairo_update_layout (cr, layout); pango_layout_get_pixel_size (layout, &width, &height); cairo_move_to (cr, - width / 2, - RADIUS * .9); pango_cairo_show_layout (cr, layout); /* Rotate for the next turn */ cairo_rotate (cr, G_PI*2 / N_WORDS); } /* free the objects we created */ pango_font_description_free (desc); g_object_unref (layout); g_object_unref (context); cairo_pattern_destroy (pattern); return FALSE; } GtkWidget * do_rotated_text (GtkWidget *do_widget) { if (!window) { GtkWidget *box; GtkWidget *drawing_area; GtkWidget *label; PangoLayout *layout; PangoAttrList *attrs; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Rotated Text"); gtk_window_set_default_size (GTK_WINDOW (window), 4 * RADIUS, 2 * RADIUS); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous (GTK_BOX (box), TRUE); gtk_container_add (GTK_CONTAINER (window), box); /* Add a drawing area */ drawing_area = gtk_drawing_area_new (); gtk_container_add (GTK_CONTAINER (box), drawing_area); gtk_style_context_add_class (gtk_widget_get_style_context (drawing_area), GTK_STYLE_CLASS_VIEW); g_signal_connect (drawing_area, "draw", G_CALLBACK (rotated_text_draw), NULL); /* And a label */ label = gtk_label_new (text); gtk_container_add (GTK_CONTAINER (box), label); gtk_label_set_angle (GTK_LABEL (label), 45); /* Set up fancy stuff on the label */ layout = gtk_label_get_layout (GTK_LABEL (label)); pango_cairo_context_set_shape_renderer (pango_layout_get_context (layout), fancy_shape_renderer, NULL, NULL); attrs = create_fancy_attr_list_for_layout (layout); gtk_label_set_attributes (GTK_LABEL (label), attrs); pango_attr_list_unref (attrs); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)headerbar.c /* Header Bar * * GtkHeaderBar is a container that is suitable for implementing * window titlebars. One of its features is that it can position * a title (and optional subtitle) centered with regard to the * full width, regardless of variable-width content at the left * or right. * * It is commonly used with gtk_window_set_titlebar() */ #include GtkWidget * do_headerbar (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *header; GtkWidget *button; GtkWidget *box; GtkWidget *image; GIcon *icon; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_default_size (GTK_WINDOW (window), 600, 400); header = gtk_header_bar_new (); gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (header), TRUE); gtk_header_bar_set_title (GTK_HEADER_BAR (header), "Welcome to Facebook - Log in, sign up or learn more"); gtk_header_bar_set_has_subtitle (GTK_HEADER_BAR (header), FALSE); button = gtk_button_new (); icon = g_themed_icon_new ("mail-send-receive-symbolic"); image = gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_BUTTON); g_object_unref (icon); gtk_container_add (GTK_CONTAINER (button), image); gtk_header_bar_pack_end (GTK_HEADER_BAR (header), button); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_style_context_add_class (gtk_widget_get_style_context (box), "linked"); button = gtk_button_new (); gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name ("pan-start-symbolic", GTK_ICON_SIZE_BUTTON)); gtk_container_add (GTK_CONTAINER (box), button); button = gtk_button_new (); gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name ("pan-end-symbolic", GTK_ICON_SIZE_BUTTON)); gtk_container_add (GTK_CONTAINER (box), button); gtk_header_bar_pack_start (GTK_HEADER_BAR (header), box); gtk_window_set_titlebar (GTK_WINDOW (window), header); gtk_container_add (GTK_CONTAINER (window), gtk_text_view_new ()); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)demo.ui0 John Doe 25 This is the John Doe row Mary Unknown 50 This is the Mary Unknown row Copy Copy selected object into the clipboard gtk-copy Cut Cut selected object into the clipboard gtk-cut EditMenu _Edit FileMenu _File New Create a new file gtk-new Open Open a file gtk-open Paste Paste object from the Clipboard gtk-paste Quit Quit the program gtk-quit Save True Save a file gtk-save SaveAs Save with a different name gtk-save-as HelpMenu _Help About gtk-about Help gtk-help GtkBuilder demo gtk3-demo 250 440 GtkBuilder demo True True The menubar False True The toolbar False 1 automatic in True automatic True liststore1 3 Name list A list of person with name, surname and age columns Name 0 Surname 1 Age 2 2 True False 3 (uuay)overlay.ca/* Overlay * * Stack widgets in static positions over a main widget */ #include GtkWidget * do_overlay (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *view; GtkWidget *sw; GtkWidget *overlay; GtkWidget *entry; GtkWidget *label; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_title (GTK_WINDOW (window), "Overlay"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); view = gtk_text_view_new (); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (sw), view); overlay = gtk_overlay_new (); gtk_container_add (GTK_CONTAINER (overlay), sw); gtk_container_add (GTK_CONTAINER (window), overlay); entry = gtk_entry_new (); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), entry); gtk_widget_set_halign (entry, GTK_ALIGN_END); gtk_widget_set_valign (entry, GTK_ALIGN_END); label = gtk_label_new ("Hello world"); gtk_widget_set_halign (label, GTK_ALIGN_END); gtk_widget_set_valign (label, GTK_ALIGN_END); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), label); gtk_widget_set_margin_start (label, 20); gtk_widget_set_margin_end (label, 20); gtk_widget_set_margin_top (label, 5); gtk_widget_set_margin_bottom (label, 5); entry = gtk_entry_new (); gtk_widget_set_halign (entry, GTK_ALIGN_START); gtk_widget_set_valign (entry, GTK_ALIGN_END); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), entry); label = gtk_label_new ("Hello world"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_END); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), label); gtk_widget_set_margin_start (label, 20); gtk_widget_set_margin_end (label, 20); gtk_widget_set_margin_top (label, 5); gtk_widget_set_margin_bottom (label, 5); entry = gtk_entry_new (); gtk_widget_set_halign (entry, GTK_ALIGN_END); gtk_widget_set_valign (entry, GTK_ALIGN_START); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), entry); label = gtk_label_new ("Hello world"); gtk_widget_set_halign (label, GTK_ALIGN_END); gtk_widget_set_valign (label, GTK_ALIGN_START); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), label); gtk_widget_set_margin_start (label, 20); gtk_widget_set_margin_end (label, 20); gtk_widget_set_margin_top (label, 5); gtk_widget_set_margin_bottom (label, 5); entry = gtk_entry_new (); gtk_widget_set_halign (entry, GTK_ALIGN_START); gtk_widget_set_valign (entry, GTK_ALIGN_START); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), entry); label = gtk_label_new ("Hello world"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_START); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), label); gtk_widget_set_margin_start (label, 20); gtk_widget_set_margin_end (label, 20); gtk_widget_set_margin_top (label, 5); gtk_widget_set_margin_bottom (label, 5); entry = gtk_entry_new (); gtk_widget_set_halign (entry, GTK_ALIGN_END); gtk_widget_set_valign (entry, GTK_ALIGN_CENTER); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), entry); label = gtk_label_new ("Hello world"); gtk_widget_set_halign (label, GTK_ALIGN_END); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), label); gtk_widget_set_margin_start (label, 20); gtk_widget_set_margin_end (label, 20); gtk_widget_set_margin_top (label, 5); gtk_widget_set_margin_bottom (label, 5); entry = gtk_entry_new (); gtk_widget_set_halign (entry, GTK_ALIGN_START); gtk_widget_set_valign (entry, GTK_ALIGN_CENTER); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), entry); label = gtk_label_new ("Hello world"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), label); gtk_widget_set_margin_start (label, 20); gtk_widget_set_margin_end (label, 20); gtk_widget_set_margin_top (label, 5); gtk_widget_set_margin_bottom (label, 5); entry = gtk_entry_new (); gtk_widget_set_halign (entry, GTK_ALIGN_CENTER); gtk_widget_set_valign (entry, GTK_ALIGN_START); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), entry); label = gtk_label_new ("Hello world"); gtk_widget_set_halign (label, GTK_ALIGN_CENTER); gtk_widget_set_valign (label, GTK_ALIGN_START); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), label); gtk_widget_set_margin_start (label, 20); gtk_widget_set_margin_end (label, 20); gtk_widget_set_margin_top (label, 5); gtk_widget_set_margin_bottom (label, 5); entry = gtk_entry_new (); gtk_widget_set_halign (entry, GTK_ALIGN_CENTER); gtk_widget_set_valign (entry, GTK_ALIGN_END); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), entry); label = gtk_label_new ("Hello world"); gtk_widget_set_halign (label, GTK_ALIGN_CENTER); gtk_widget_set_valign (label, GTK_ALIGN_END); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), label); gtk_widget_set_margin_start (label, 10); gtk_widget_set_margin_end (label, 10); gtk_widget_set_margin_top (label, 5); gtk_widget_set_margin_bottom (label, 5); entry = gtk_entry_new (); gtk_widget_set_halign (entry, GTK_ALIGN_CENTER); gtk_widget_set_valign (entry, GTK_ALIGN_CENTER); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), entry); label = gtk_label_new ("Hello world"); gtk_widget_set_halign (label, GTK_ALIGN_CENTER); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), label); gtk_widget_show_all (overlay); } if (!gtk_widget_get_visible (window)) { gtk_widget_show (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)cssview.css/* Make the text editor has a nice style */ .view { color: #2e3436; font: Monospace; background-color: alpha(white, 0.30); } .view:selected { color: white; background-color: #4a90d9; } .scrollbar.trough, .scrollbars-junction { background-color: alpha(white, 0.80); } .scrollbar.slider { border-width: 3px; border-style: solid; border-radius: 10px; border-color: transparent; background-clip: padding-box; background-color: #999; } .scrollbar.slider:prelight { background-color: #555; } .pane-separator { background-color: alpha(white, 0.80); background-image: linear-gradient(transparent, transparent 1px, #999 1px, #999 4px, transparent 4px); background-size: 40px auto; background-repeat: no-repeat; background-position: center; } .pane-separator:prelight { background-image: linear-gradient(transparent, transparent 1px, #555 1px, #555 4px, transparent 4px); } (uuay)theming_style_classes.c/* CSS Theming/Style Classes * * GTK+ uses CSS for theming. Style classes can be associated * with widgets to inform the theme about intended rendering. * * This demo shows some common examples where theming features * of GTK+ are used for certain effects: primary toolbars, * inline toolbars and linked buttons. */ #include static GtkWidget *window = NULL; GtkWidget * do_theming_style_classes (GtkWidget *do_widget) { GtkWidget *grid; GtkBuilder *builder; GError *err = NULL; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Style Classes"); gtk_container_set_border_width (GTK_CONTAINER (window), 12); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); builder = gtk_builder_new (); gtk_builder_add_from_resource (builder, "/theming_style_classes/theming.ui", NULL); if (err) { g_error ("ERROR: %s\n", err->message); return NULL; } grid = (GtkWidget *)gtk_builder_get_object (builder, "grid"); gtk_widget_show_all (grid); gtk_container_add (GTK_CONTAINER (window), grid); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) { gtk_widget_show (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)textview.cb/* Text Widget/Multiple Views * * The GtkTextView widget displays a GtkTextBuffer. One GtkTextBuffer * can be displayed by multiple GtkTextViews. This demo has two views * displaying a single buffer, and shows off the widget's text * formatting features. * */ #include #include /* for exit() */ static void easter_egg_callback (GtkWidget *button, gpointer data); static void create_tags (GtkTextBuffer *buffer) { /* Create a bunch of tags. Note that it's also possible to * create tags with gtk_text_tag_new() then add them to the * tag table for the buffer, gtk_text_buffer_create_tag() is * just a convenience function. Also note that you don't have * to give tags a name; pass NULL for the name to create an * anonymous tag. * * In any real app, another useful optimization would be to create * a GtkTextTagTable in advance, and reuse the same tag table for * all the buffers with the same tag set, instead of creating * new copies of the same tags for every buffer. * * Tags are assigned default priorities in order of addition to the * tag table. That is, tags created later that affect the same text * property affected by an earlier tag will override the earlier * tag. You can modify tag priorities with * gtk_text_tag_set_priority(). */ gtk_text_buffer_create_tag (buffer, "heading", "weight", PANGO_WEIGHT_BOLD, "size", 15 * PANGO_SCALE, NULL); gtk_text_buffer_create_tag (buffer, "italic", "style", PANGO_STYLE_ITALIC, NULL); gtk_text_buffer_create_tag (buffer, "bold", "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_buffer_create_tag (buffer, "big", /* points times the PANGO_SCALE factor */ "size", 20 * PANGO_SCALE, NULL); gtk_text_buffer_create_tag (buffer, "xx-small", "scale", PANGO_SCALE_XX_SMALL, NULL); gtk_text_buffer_create_tag (buffer, "x-large", "scale", PANGO_SCALE_X_LARGE, NULL); gtk_text_buffer_create_tag (buffer, "monospace", "family", "monospace", NULL); gtk_text_buffer_create_tag (buffer, "blue_foreground", "foreground", "blue", NULL); gtk_text_buffer_create_tag (buffer, "red_background", "background", "red", NULL); gtk_text_buffer_create_tag (buffer, "big_gap_before_line", "pixels_above_lines", 30, NULL); gtk_text_buffer_create_tag (buffer, "big_gap_after_line", "pixels_below_lines", 30, NULL); gtk_text_buffer_create_tag (buffer, "double_spaced_line", "pixels_inside_wrap", 10, NULL); gtk_text_buffer_create_tag (buffer, "not_editable", "editable", FALSE, NULL); gtk_text_buffer_create_tag (buffer, "word_wrap", "wrap_mode", GTK_WRAP_WORD, NULL); gtk_text_buffer_create_tag (buffer, "char_wrap", "wrap_mode", GTK_WRAP_CHAR, NULL); gtk_text_buffer_create_tag (buffer, "no_wrap", "wrap_mode", GTK_WRAP_NONE, NULL); gtk_text_buffer_create_tag (buffer, "center", "justification", GTK_JUSTIFY_CENTER, NULL); gtk_text_buffer_create_tag (buffer, "right_justify", "justification", GTK_JUSTIFY_RIGHT, NULL); gtk_text_buffer_create_tag (buffer, "wide_margins", "left_margin", 50, "right_margin", 50, NULL); gtk_text_buffer_create_tag (buffer, "strikethrough", "strikethrough", TRUE, NULL); gtk_text_buffer_create_tag (buffer, "underline", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (buffer, "double_underline", "underline", PANGO_UNDERLINE_DOUBLE, NULL); gtk_text_buffer_create_tag (buffer, "superscript", "rise", 10 * PANGO_SCALE, /* 10 pixels */ "size", 8 * PANGO_SCALE, /* 8 points */ NULL); gtk_text_buffer_create_tag (buffer, "subscript", "rise", -10 * PANGO_SCALE, /* 10 pixels */ "size", 8 * PANGO_SCALE, /* 8 points */ NULL); gtk_text_buffer_create_tag (buffer, "rtl_quote", "wrap_mode", GTK_WRAP_WORD, "direction", GTK_TEXT_DIR_RTL, "indent", 30, "left_margin", 20, "right_margin", 20, NULL); } static void insert_text (GtkTextBuffer *buffer) { GtkTextIter iter; GtkTextIter start, end; GdkPixbuf *pixbuf; GtkIconTheme *icon_theme; icon_theme = gtk_icon_theme_get_default (); pixbuf = gtk_icon_theme_load_icon (icon_theme, "gtk3-demo", 32, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL); g_assert (pixbuf); /* get start of buffer; each insertion will revalidate the * iterator to point to just after the inserted text. */ gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0); gtk_text_buffer_insert (buffer, &iter, "The text widget can display text with all kinds of nifty attributes. " "It also supports multiple views of the same buffer; this demo is " "showing the same buffer in two places.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Font styles. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "For example, you can have ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "italic", -1, "italic", NULL); gtk_text_buffer_insert (buffer, &iter, ", ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "bold", -1, "bold", NULL); gtk_text_buffer_insert (buffer, &iter, ", or ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "monospace (typewriter)", -1, "monospace", NULL); gtk_text_buffer_insert (buffer, &iter, ", or ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "big", -1, "big", NULL); gtk_text_buffer_insert (buffer, &iter, " text. ", -1); gtk_text_buffer_insert (buffer, &iter, "It's best not to hardcode specific text sizes; you can use relative " "sizes as with CSS, such as ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "xx-small", -1, "xx-small", NULL); gtk_text_buffer_insert (buffer, &iter, " or ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "x-large", -1, "x-large", NULL); gtk_text_buffer_insert (buffer, &iter, " to ensure that your program properly adapts if the user changes the " "default font size.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Colors. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "Colors such as ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "a blue foreground", -1, "blue_foreground", NULL); gtk_text_buffer_insert (buffer, &iter, " or ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "a red background", -1, "red_background", NULL); gtk_text_buffer_insert (buffer, &iter, " or even ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "a blue foreground on red background", -1, "blue_foreground", "red_background", NULL); gtk_text_buffer_insert (buffer, &iter, " (select that to read it) can be used.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Underline, strikethrough, and rise. ", -1, "heading", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Strikethrough", -1, "strikethrough", NULL); gtk_text_buffer_insert (buffer, &iter, ", ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "underline", -1, "underline", NULL); gtk_text_buffer_insert (buffer, &iter, ", ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "double underline", -1, "double_underline", NULL); gtk_text_buffer_insert (buffer, &iter, ", ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "superscript", -1, "superscript", NULL); gtk_text_buffer_insert (buffer, &iter, ", and ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "subscript", -1, "subscript", NULL); gtk_text_buffer_insert (buffer, &iter, " are all supported.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Images. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "The buffer can have images in it: ", -1); gtk_text_buffer_insert_pixbuf (buffer, &iter, pixbuf); gtk_text_buffer_insert_pixbuf (buffer, &iter, pixbuf); gtk_text_buffer_insert_pixbuf (buffer, &iter, pixbuf); gtk_text_buffer_insert (buffer, &iter, " for example.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Spacing. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "You can adjust the amount of space before each line.\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "This line has a whole lot of space before it.\n", -1, "big_gap_before_line", "wide_margins", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "You can also adjust the amount of space after each line; " "this line has a whole lot of space after it.\n", -1, "big_gap_after_line", "wide_margins", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "You can also adjust the amount of space between wrapped lines; " "this line has extra space between each wrapped line in the same " "paragraph. To show off wrapping, some filler text: the quick " "brown fox jumped over the lazy dog. Blah blah blah blah blah " "blah blah blah blah.\n", -1, "double_spaced_line", "wide_margins", NULL); gtk_text_buffer_insert (buffer, &iter, "Also note that those lines have extra-wide margins.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Editability. ", -1, "heading", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "This line is 'locked down' and can't be edited by the user - just " "try it! You can't delete this line.\n\n", -1, "not_editable", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Wrapping. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "This line (and most of the others in this buffer) is word-wrapped, " "using the proper Unicode algorithm. Word wrap should work in all " "scripts and languages that GTK+ supports. Let's make this a long " "paragraph to demonstrate: blah blah blah blah blah blah blah blah " "blah blah blah blah blah blah blah blah blah blah blah\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "This line has character-based wrapping, and can wrap between any two " "character glyphs. Let's make this a long paragraph to demonstrate: " "blah blah blah blah blah blah blah blah blah blah blah blah blah blah " "blah blah blah blah blah\n\n", -1, "char_wrap", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "This line has all wrapping turned off, so it makes the horizontal " "scrollbar appear.\n\n\n", -1, "no_wrap", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Justification. ", -1, "heading", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "\nThis line has center justification.\n", -1, "center", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "This line has right justification.\n", -1, "right_justify", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "\nThis line has big wide margins. Text text text text text text text " "text text text text text text text text text text text text text text " "text text text text text text text text text text text text text text " "text.\n", -1, "wide_margins", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Internationalization. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "You can put all sorts of Unicode text in the buffer.\n\nGerman " "(Deutsch S\303\274d) Gr\303\274\303\237 Gott\nGreek " "(\316\225\316\273\316\273\316\267\316\275\316\271\316\272\316\254) " "\316\223\316\265\316\271\316\254 \317\203\316\261\317\202\nHebrew " "\327\251\327\234\327\225\327\235\nJapanese " "(\346\227\245\346\234\254\350\252\236)\n\nThe widget properly handles " "bidirectional text, word wrapping, DOS/UNIX/Unicode paragraph separators, " "grapheme boundaries, and so on using the Pango internationalization " "framework.\n", -1); gtk_text_buffer_insert (buffer, &iter, "Here's a word-wrapped quote in a right-to-left language:\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "\331\210\331\202\330\257 \330\250\330\257\330\243 " "\330\253\331\204\330\247\330\253 \331\205\331\206 " "\330\243\331\203\330\253\330\261 \330\247\331\204\331\205\330\244\330\263\330\263\330\247\330\252 " "\330\252\331\202\330\257\331\205\330\247 \331\201\331\212 " "\330\264\330\250\331\203\330\251 \330\247\331\203\330\263\331\212\331\210\331\206 " "\330\250\330\261\330\247\331\205\330\254\331\207\330\247 " "\331\203\331\205\331\206\330\270\331\205\330\247\330\252 " "\331\204\330\247 \330\252\330\263\330\271\331\211 \331\204\331\204\330\261\330\250\330\255\330\214 " "\330\253\331\205 \330\252\330\255\331\210\331\204\330\252 " "\331\201\331\212 \330\247\331\204\330\263\331\206\331\210\330\247\330\252 " "\330\247\331\204\330\256\331\205\330\263 \330\247\331\204\331\205\330\247\330\266\331\212\330\251 " "\330\245\331\204\331\211 \331\205\330\244\330\263\330\263\330\247\330\252 " "\331\205\330\247\331\204\331\212\330\251 \331\205\331\206\330\270\331\205\330\251\330\214 " "\331\210\330\250\330\247\330\252\330\252 \330\254\330\262\330\241\330\247 " "\331\205\331\206 \330\247\331\204\331\206\330\270\330\247\331\205 " "\330\247\331\204\331\205\330\247\331\204\331\212 \331\201\331\212 " "\330\250\331\204\330\257\330\247\331\206\331\207\330\247\330\214 " "\331\210\331\204\331\203\331\206\331\207\330\247 \330\252\330\252\330\256\330\265\330\265 " "\331\201\331\212 \330\256\330\257\331\205\330\251 \331\202\330\267\330\247\330\271 " "\330\247\331\204\331\205\330\264\330\261\331\210\330\271\330\247\330\252 " "\330\247\331\204\330\265\330\272\331\212\330\261\330\251. \331\210\330\243\330\255\330\257 " "\330\243\331\203\330\253\330\261 \331\207\330\260\331\207 " "\330\247\331\204\331\205\330\244\330\263\330\263\330\247\330\252 " "\331\206\330\254\330\247\330\255\330\247 \331\207\331\210 " "\302\273\330\250\330\247\331\206\331\203\331\210\330\263\331\210\331\204\302\253 " "\331\201\331\212 \330\250\331\210\331\204\331\212\331\201\331\212\330\247.\n\n", -1, "rtl_quote", NULL); gtk_text_buffer_insert (buffer, &iter, "You can put widgets in the buffer: Here's a button: ", -1); gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, " and a menu: ", -1); gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, " and a scale: ", -1); gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, " and an animation: ", -1); gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, " finally a text entry: ", -1); gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, ".\n", -1); gtk_text_buffer_insert (buffer, &iter, "\n\nThis demo doesn't demonstrate all the GtkTextBuffer features; " "it leaves out, for example: invisible/hidden text, tab stops, " "application-drawn areas on the sides of the widget for displaying " "breakpoints and such...", -1); /* Apply word_wrap tag to whole buffer */ gtk_text_buffer_get_bounds (buffer, &start, &end); gtk_text_buffer_apply_tag_by_name (buffer, "word_wrap", &start, &end); g_object_unref (pixbuf); } static gboolean find_anchor (GtkTextIter *iter) { while (gtk_text_iter_forward_char (iter)) { if (gtk_text_iter_get_child_anchor (iter)) return TRUE; } return FALSE; } static void attach_widgets (GtkTextView *text_view) { GtkTextIter iter; GtkTextBuffer *buffer; int i; buffer = gtk_text_view_get_buffer (text_view); gtk_text_buffer_get_start_iter (buffer, &iter); i = 0; while (find_anchor (&iter)) { GtkTextChildAnchor *anchor; GtkWidget *widget; anchor = gtk_text_iter_get_child_anchor (&iter); if (i == 0) { widget = gtk_button_new_with_label ("Click Me"); g_signal_connect (widget, "clicked", G_CALLBACK (easter_egg_callback), NULL); } else if (i == 1) { widget = gtk_combo_box_text_new (); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 1"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 2"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 3"); } else if (i == 2) { widget = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, NULL); gtk_range_set_range (GTK_RANGE (widget), 0, 100); gtk_widget_set_size_request (widget, 70, -1); } else if (i == 3) { widget = gtk_image_new_from_resource ("/textview/floppybuddy.gif"); } else if (i == 4) { widget = gtk_entry_new (); } else { widget = NULL; /* avoids a compiler warning */ g_assert_not_reached (); } gtk_text_view_add_child_at_anchor (text_view, widget, anchor); gtk_widget_show_all (widget); ++i; } } GtkWidget * do_textview (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *vpaned; GtkWidget *view1; GtkWidget *view2; GtkWidget *sw; GtkTextBuffer *buffer; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_title (GTK_WINDOW (window), "TextView"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); vpaned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_container_set_border_width (GTK_CONTAINER(vpaned), 5); gtk_container_add (GTK_CONTAINER (window), vpaned); /* For convenience, we just use the autocreated buffer from * the first text view; you could also create the buffer * by itself with gtk_text_buffer_new(), then later create * a view widget. */ view1 = gtk_text_view_new (); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view1)); view2 = gtk_text_view_new_with_buffer (buffer); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_paned_add1 (GTK_PANED (vpaned), sw); gtk_container_add (GTK_CONTAINER (sw), view1); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_paned_add2 (GTK_PANED (vpaned), sw); gtk_container_add (GTK_CONTAINER (sw), view2); create_tags (buffer); insert_text (buffer); attach_widgets (GTK_TEXT_VIEW (view1)); attach_widgets (GTK_TEXT_VIEW (view2)); gtk_widget_show_all (vpaned); } if (!gtk_widget_get_visible (window)) { gtk_widget_show (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } static void recursive_attach_view (int depth, GtkTextView *view, GtkTextChildAnchor *anchor) { GtkWidget *child_view, *frame; if (depth > 4) return; child_view = gtk_text_view_new_with_buffer (gtk_text_view_get_buffer (view)); /* Frame is to add a black border around each child view */ frame = gtk_frame_new (NULL); gtk_container_add (GTK_CONTAINER (frame), child_view); gtk_text_view_add_child_at_anchor (view, frame, anchor); recursive_attach_view (depth + 1, GTK_TEXT_VIEW (child_view), anchor); } static void easter_egg_callback (GtkWidget *button, gpointer data) { static GtkWidget *window = NULL; gpointer window_ptr; GtkTextBuffer *buffer; GtkWidget *view; GtkTextIter iter; GtkTextChildAnchor *anchor; GtkWidget *sw; if (window) { gtk_window_present (GTK_WINDOW (window)); return; } buffer = gtk_text_buffer_new (NULL); gtk_text_buffer_get_start_iter (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, "This buffer is shared by a set of nested text views.\n Nested view:\n", -1); anchor = gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, "\nDon't do this in real applications, please.\n", -1); view = gtk_text_view_new_with_buffer (buffer); recursive_attach_view (0, GTK_TEXT_VIEW (view), anchor); g_object_unref (buffer); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (window), sw); gtk_container_add (GTK_CONTAINER (sw), view); window_ptr = &window; g_object_add_weak_pointer (G_OBJECT (window), window_ptr); gtk_window_set_default_size (GTK_WINDOW (window), 300, 400); gtk_widget_show_all (window); } (uuay)css_multiplebgs/+Rm\;assistant.c/* Assistant * * Demonstrates a sample multi-step assistant. Assistants are used to divide * an operation into several simpler sequential steps, and to guide the user * through these steps. */ #include static GtkWidget *assistant = NULL; static GtkWidget *progress_bar = NULL; static gboolean apply_changes_gradually (gpointer data) { gdouble fraction; /* Work, work, work... */ fraction = gtk_progress_bar_get_fraction (GTK_PROGRESS_BAR (progress_bar)); fraction += 0.05; if (fraction < 1.0) { gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), fraction); return G_SOURCE_CONTINUE; } else { /* Close automatically once changes are fully applied. */ gtk_widget_destroy (assistant); assistant = NULL; return G_SOURCE_REMOVE; } } static void on_assistant_apply (GtkWidget *widget, gpointer data) { /* Start a timer to simulate changes taking a few seconds to apply. */ g_timeout_add (100, apply_changes_gradually, NULL); } static void on_assistant_close_cancel (GtkWidget *widget, gpointer data) { GtkWidget **assistant = (GtkWidget **) data; gtk_widget_destroy (*assistant); *assistant = NULL; } static void on_assistant_prepare (GtkWidget *widget, GtkWidget *page, gpointer data) { gint current_page, n_pages; gchar *title; current_page = gtk_assistant_get_current_page (GTK_ASSISTANT (widget)); n_pages = gtk_assistant_get_n_pages (GTK_ASSISTANT (widget)); title = g_strdup_printf ("Sample assistant (%d of %d)", current_page + 1, n_pages); gtk_window_set_title (GTK_WINDOW (widget), title); g_free (title); /* The fourth page (counting from zero) is the progress page. The * user clicked Apply to get here so we tell the assistant to commit, * which means the changes up to this point are permanent and cannot * be cancelled or revisited. */ if (current_page == 3) gtk_assistant_commit (GTK_ASSISTANT (widget)); } static void on_entry_changed (GtkWidget *widget, gpointer data) { GtkAssistant *assistant = GTK_ASSISTANT (data); GtkWidget *current_page; gint page_number; const gchar *text; page_number = gtk_assistant_get_current_page (assistant); current_page = gtk_assistant_get_nth_page (assistant, page_number); text = gtk_entry_get_text (GTK_ENTRY (widget)); if (text && *text) gtk_assistant_set_page_complete (assistant, current_page, TRUE); else gtk_assistant_set_page_complete (assistant, current_page, FALSE); } static void create_page1 (GtkWidget *assistant) { GtkWidget *box, *label, *entry; box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); gtk_container_set_border_width (GTK_CONTAINER (box), 12); label = gtk_label_new ("You must fill out this entry to continue:"); gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0); entry = gtk_entry_new (); gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE); gtk_box_pack_start (GTK_BOX (box), entry, TRUE, TRUE, 0); g_signal_connect (G_OBJECT (entry), "changed", G_CALLBACK (on_entry_changed), assistant); gtk_widget_show_all (box); gtk_assistant_append_page (GTK_ASSISTANT (assistant), box); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), box, "Page 1"); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), box, GTK_ASSISTANT_PAGE_INTRO); } static void create_page2 (GtkWidget *assistant) { GtkWidget *box, *checkbutton; box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); gtk_container_set_border_width (GTK_CONTAINER (box), 12); checkbutton = gtk_check_button_new_with_label ("This is optional data, you may continue " "even if you do not check this"); gtk_box_pack_start (GTK_BOX (box), checkbutton, FALSE, FALSE, 0); gtk_widget_show_all (box); gtk_assistant_append_page (GTK_ASSISTANT (assistant), box); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), box, TRUE); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), box, "Page 2"); } static void create_page3 (GtkWidget *assistant) { GtkWidget *label; label = gtk_label_new ("This is a confirmation page, press 'Apply' to apply changes"); gtk_widget_show (label); gtk_assistant_append_page (GTK_ASSISTANT (assistant), label); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), label, GTK_ASSISTANT_PAGE_CONFIRM); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), label, TRUE); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), label, "Confirmation"); } static void create_page4 (GtkWidget *assistant) { progress_bar = gtk_progress_bar_new (); gtk_widget_set_halign (progress_bar, GTK_ALIGN_CENTER); gtk_widget_set_valign (progress_bar, GTK_ALIGN_CENTER); gtk_widget_show (progress_bar); gtk_assistant_append_page (GTK_ASSISTANT (assistant), progress_bar); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), progress_bar, GTK_ASSISTANT_PAGE_PROGRESS); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), progress_bar, "Applying changes"); /* This prevents the assistant window from being * closed while we're "busy" applying changes. */ gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), progress_bar, FALSE); } GtkWidget* do_assistant (GtkWidget *do_widget) { if (!assistant) { assistant = gtk_assistant_new (); gtk_window_set_default_size (GTK_WINDOW (assistant), -1, 300); gtk_window_set_screen (GTK_WINDOW (assistant), gtk_widget_get_screen (do_widget)); create_page1 (assistant); create_page2 (assistant); create_page3 (assistant); create_page4 (assistant); g_signal_connect (G_OBJECT (assistant), "cancel", G_CALLBACK (on_assistant_close_cancel), &assistant); g_signal_connect (G_OBJECT (assistant), "close", G_CALLBACK (on_assistant_close_cancel), &assistant); g_signal_connect (G_OBJECT (assistant), "apply", G_CALLBACK (on_assistant_apply), NULL); g_signal_connect (G_OBJECT (assistant), "prepare", G_CALLBACK (on_assistant_prepare), NULL); } if (!gtk_widget_get_visible (assistant)) gtk_widget_show (assistant); else { gtk_widget_destroy (assistant); assistant = NULL; } return assistant; } (uuay)apple-red.png PNG  IHDR00WgAMA a IDATx[]Wyk9s8 N)JڄڨB>pE WK R@@@BqS+8v3sk}>31^|֞9e{^tvy_Tz߇} r޽cksM?p<p+E>*ܾ֏ W]vfgvw>yv!'+_dLom]aD֭G7L#ͯ굿>tbލW-,.{>E,&+֬h /ڳ{^>߄z;?/ ;po}U.tKGŇf6)o]EZ91|}~ W--7C4 ;%씍ozۍ! g|aNgnMo,VKU!@0G|׶nڱk5pJog&;W5B8tpao;[6:׽O\ 2R wͮr|Ο=ZEB|[aղ,ꭿw~x VmB)Fhcݷ}\In}GSefc"vԪg/-3j"`wogpr>Aqow;7O ̄ & AXA۰ض8pS9pMNwnmჃja~n,v?s{v}7ُOP v4!tTUMOh[( 0 :4uȢ(;'yn9?Scbጙ!|'/͛7+Wu_իNH)D^'jFĪBĐ,h.%49 0ofH_ CSv&/ʁnzhɖtJ?ܽ^q6]^~ӣ&5)G1!@2 ĺۖzf r\饊6?7=_ޓwַ/;w'W7y'^jc wzCDqbO1H!޴a f曖cP26,dhRЀص0hO~ί{r/VOMVl^}5#ey_\3*1D7*Jx*4+Dƨ$",X^SxAJpǏvpǏ8Gݍ׮YmeM޲zr\ǎ1?L NɈq X4L Iz!u$Dw!P!X(3J⺫~w>*;o; fLթѦO{ A?MtzU:z47"qsHNDS@8ɜn5A75e<3atH` _ v:,~J;I`U"* af#Pp wD0US"Vka`9zT5^W/8Ognl?P2⠥Qs8;A T"J9%3^]vݫ )%@_jBxɘ9w'fT(0 -/lpaAAi#aEN0NKm7]E;tz`@~$Zɘ`xD^1CQƱoN@pu,@z%jS6:ઔEk)e  "`h "TFPv,GbrJ>5ZS TP'4QuGlb*-+18ʨ>L Uǣ",*V1,E, *U;Ή@&D "Ǐљ&}a5\ )"JF0U3 sh БB+isa+  J)-M:&Xɸ "y4âd-TrD@#Ȱ(q@S<ܶwŧULЛYE*J.D B#%Cdb`#j0#qZUT)h}7kCPK VfZaoI@PB iA ֩#  F Q>JdŽP1IP"XTlXE"ia"Z@<hsaЎgyhCL_) LMttzb|[{v0Fԕ*A"E" 'U(G3.ElPSZsD %;١B1rch&3Ԅ%$D9FbwƓ963{;ydb vXs<2N80qY?fza\!9zTr;O97c2~ie8]щblE˜ |\IENDB`(uuay)apple-red.png PNG  IHDR00WgAMA a IDATx[]Wyk9s8 N)JڄڨB>pE WK R@@@BqS+8v3sk}>31^|֞9e{^tvy_Tz߇} r޽cksM?p<p+E>*ܾ֏ W]vfgvw>yv!'+_dLom]aD֭G7L#ͯ굿>tbލW-,.{>E,&+֬h /ڳ{^>߄z;?/ ;po}U.tKGŇf6)o]EZ91|}~ W--7C4 ;%씍ozۍ! g|aNgnMo,VKU!@0G|׶nڱk5pJog&;W5B8tpao;[6:׽O\ 2R wͮr|Ο=ZEB|[aղ,ꭿw~x VmB)Fhcݷ}\In}GSefc"vԪg/-3j"`wogpr>Aqow;7O ̄ & AXA۰ض8pS9pMNwnmჃja~n,v?s{v}7ُOP v4!tTUMOh[( 0 :4uȢ(;'yn9?Scbጙ!|'/͛7+Wu_իNH)D^'jFĪBĐ,h.%49 0ofH_ CSv&/ʁnzhɖtJ?ܽ^q6]^~ӣ&5)G1!@2 ĺۖzf r\饊6?7=_ޓwַ/;w'W7y'^jc wzCDqbO1H!޴a f曖cP26,dhRЀص0hO~ί{r/VOMVl^}5#ey_\3*1D7*Jx*4+Dƨ$",X^SxAJpǏvpǏ8Gݍ׮YmeM޲zr\ǎ1?L NɈq X4L Iz!u$Dw!P!X(3J⺫~w>*;o; fLթѦO{ A?MtzU:z47"qsHNDS@8ɜn5A75e<3atH` _ v:,~J;I`U"* af#Pp wD0US"Vka`9zT5^W/8Ognl?P2⠥Qs8;A T"J9%3^]vݫ )%@_jBxɘ9w'fT(0 -/lpaAAi#aEN0NKm7]E;tz`@~$Zɘ`xD^1CQƱoN@pu,@z%jS6:ઔEk)e  "`h "TFPv,GbrJ>5ZS TP'4QuGlb*-+18ʨ>L Uǣ",*V1,E, *U;Ή@&D "Ǐљ&}a5\ )"JF0U3 sh БB+isa+  J)-M:&Xɸ "y4âd-TrD@#Ȱ(q@S<ܶwŧULЛYE*J.D B#%Cdb`#j0#qZUT)h}7kCPK VfZaoI@PB iA ֩#  F Q>JdŽP1IP"XTlXE"ia"Z@<hsaЎgyhCL_) LMttzb|[{v0Fԕ*A"E" 'U(G3.ElPSZsD %;١B1rch&3Ԅ%$D9FbwƓ963{;ydb vXs<2N80qY?fza\!9zTr;O97c2~ie8]щblE˜ |\IENDB`(uuay)css_pixbufs.c/* CSS Theming/Animated Backgrounds * * This demo is done in honour of the Pixbufs demo further down. * It is done exclusively with CSS as the background of the window. */ #include static GtkWidget *window = NULL; static void show_parsing_error (GtkCssProvider *provider, GtkCssSection *section, const GError *error, GtkTextBuffer *buffer) { GtkTextIter start, end; const char *tag_name; gtk_text_buffer_get_iter_at_line_index (buffer, &start, gtk_css_section_get_start_line (section), gtk_css_section_get_start_position (section)); gtk_text_buffer_get_iter_at_line_index (buffer, &end, gtk_css_section_get_end_line (section), gtk_css_section_get_end_position (section)); if (g_error_matches (error, GTK_CSS_PROVIDER_ERROR, GTK_CSS_PROVIDER_ERROR_DEPRECATED)) tag_name = "warning"; else tag_name = "error"; gtk_text_buffer_apply_tag_by_name (buffer, tag_name, &start, &end); } static void css_text_changed (GtkTextBuffer *buffer, GtkCssProvider *provider) { GtkTextIter start, end; char *text; gtk_text_buffer_get_start_iter (buffer, &start); gtk_text_buffer_get_end_iter (buffer, &end); gtk_text_buffer_remove_all_tags (buffer, &start, &end); text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); gtk_css_provider_load_from_data (provider, text, -1, NULL); g_free (text); gtk_style_context_reset_widgets (gdk_screen_get_default ()); } static void apply_css (GtkWidget *widget, GtkStyleProvider *provider) { gtk_style_context_add_provider (gtk_widget_get_style_context (widget), provider, G_MAXUINT); if (GTK_IS_CONTAINER (widget)) gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) apply_css, provider); } GtkWidget * do_css_pixbufs (GtkWidget *do_widget) { if (!window) { GtkWidget *paned, *container, *child; GtkStyleProvider *provider; GtkTextBuffer *text; GBytes *bytes; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); paned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_container_add (GTK_CONTAINER (window), paned); /* Need a filler so we get a handle */ child = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (paned), child); text = gtk_text_buffer_new (NULL); gtk_text_buffer_create_tag (text, "warning", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (text, "error", "underline", PANGO_UNDERLINE_ERROR, NULL); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); container = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (paned), container); child = gtk_text_view_new_with_buffer (text); gtk_container_add (GTK_CONTAINER (container), child); g_signal_connect (text, "changed", G_CALLBACK (css_text_changed), provider); bytes = g_resources_lookup_data ("/css_pixbufs/gtk.css", 0, NULL); gtk_text_buffer_set_text (text, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes)); g_bytes_unref (bytes); g_signal_connect (provider, "parsing-error", G_CALLBACK (show_parsing_error), gtk_text_view_get_buffer (GTK_TEXT_VIEW (child))); apply_css (window, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)infobar.c/* Info bar * * Info bar widgets are used to report important messages to the user. */ #include #include static GtkWidget *window = NULL; static void on_bar_response (GtkInfoBar *info_bar, gint response_id, gpointer user_data) { GtkWidget *dialog; if (response_id == GTK_RESPONSE_CLOSE) { gtk_widget_hide (GTK_WIDGET (info_bar)); return; } dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "You clicked a button on an info bar"); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "Your response has id %d", response_id); g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); gtk_widget_show_all (dialog); } GtkWidget * do_infobar (GtkWidget *do_widget) { GtkWidget *frame; GtkWidget *bar; GtkWidget *vbox; GtkWidget *vbox2; GtkWidget *label; GtkWidget *actions; GtkWidget *button; if (!window) { actions = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Info Bars"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 8); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_INFO); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_INFO"); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); button = gtk_toggle_button_new_with_label ("Message"); g_object_bind_property (button, "active", bar, "visible", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (actions), button); bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_WARNING); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_WARNING"); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); button = gtk_toggle_button_new_with_label ("Warning"); g_object_bind_property (button, "active", bar, "visible", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (actions), button); bar = gtk_info_bar_new_with_buttons (_("_OK"), GTK_RESPONSE_OK, NULL); gtk_info_bar_set_show_close_button (GTK_INFO_BAR (bar), TRUE); g_signal_connect (bar, "response", G_CALLBACK (on_bar_response), window); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_QUESTION); label = gtk_label_new ("This is\nan info bar with message type\nGTK_MESSAGE_QUESTION"); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); button = gtk_toggle_button_new_with_label ("Question"); g_object_bind_property (button, "active", bar, "visible", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (actions), button); bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_ERROR); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_ERROR"); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); button = gtk_toggle_button_new_with_label ("Error"); g_object_bind_property (button, "active", bar, "visible", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (actions), button); bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_OTHER); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_OTHER"); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); button = gtk_toggle_button_new_with_label ("Other"); g_object_bind_property (button, "active", bar, "visible", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (actions), button); frame = gtk_frame_new ("Info bars"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 8); vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8); gtk_container_add (GTK_CONTAINER (frame), vbox2); /* Standard message dialog */ label = gtk_label_new ("An example of different info bars"); gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, FALSE, 0); gtk_widget_show_all (actions); gtk_box_pack_start (GTK_BOX (vbox2), actions, FALSE, FALSE, 0); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)textscroll.c/* Text Widget/Automatic Scrolling * * This example demonstrates how to use the gravity of * GtkTextMarks to keep a text view scrolled to the bottom * while appending text. */ #include /* Scroll to the end of the buffer. */ static gboolean scroll_to_end (GtkTextView *textview) { GtkTextBuffer *buffer; GtkTextIter iter; GtkTextMark *mark; char *spaces; char *text; static int count; buffer = gtk_text_view_get_buffer (textview); /* Get "end" mark. It's located at the end of buffer because * of right gravity */ mark = gtk_text_buffer_get_mark (buffer, "end"); gtk_text_buffer_get_iter_at_mark (buffer, &iter, mark); /* and insert some text at its position, the iter will be * revalidated after insertion to point to the end of inserted text */ spaces = g_strnfill (count++, ' '); gtk_text_buffer_insert (buffer, &iter, "\n", -1); gtk_text_buffer_insert (buffer, &iter, spaces, -1); text = g_strdup_printf ("Scroll to end scroll to end scroll " "to end scroll to end %d", count); gtk_text_buffer_insert (buffer, &iter, text, -1); g_free (spaces); g_free (text); /* Now scroll the end mark onscreen. */ gtk_text_view_scroll_mark_onscreen (textview, mark); /* Emulate typewriter behavior, shift to the left if we * are far enough to the right. */ if (count > 150) count = 0; return G_SOURCE_CONTINUE; } /* Scroll to the bottom of the buffer. */ static gboolean scroll_to_bottom (GtkTextView *textview) { GtkTextBuffer *buffer; GtkTextIter iter; GtkTextMark *mark; char *spaces; char *text; static int count; buffer = gtk_text_view_get_buffer (textview); /* Get end iterator */ gtk_text_buffer_get_end_iter (buffer, &iter); /* and insert some text at it, the iter will be revalidated * after insertion to point to the end of inserted text */ spaces = g_strnfill (count++, ' '); gtk_text_buffer_insert (buffer, &iter, "\n", -1); gtk_text_buffer_insert (buffer, &iter, spaces, -1); text = g_strdup_printf ("Scroll to bottom scroll to bottom scroll " "to bottom scroll to bottom %d", count); gtk_text_buffer_insert (buffer, &iter, text, -1); g_free (spaces); g_free (text); /* Move the iterator to the beginning of line, so we don't scroll * in horizontal direction */ gtk_text_iter_set_line_offset (&iter, 0); /* and place the mark at iter. the mark will stay there after we * insert some text at the end because it has left gravity. */ mark = gtk_text_buffer_get_mark (buffer, "scroll"); gtk_text_buffer_move_mark (buffer, mark, &iter); /* Scroll the mark onscreen. */ gtk_text_view_scroll_mark_onscreen (textview, mark); /* Shift text back if we got enough to the right. */ if (count > 40) count = 0; return G_SOURCE_CONTINUE; } static guint setup_scroll (GtkTextView *textview, gboolean to_end) { GtkTextBuffer *buffer; GtkTextIter iter; buffer = gtk_text_view_get_buffer (textview); gtk_text_buffer_get_end_iter (buffer, &iter); if (to_end) { /* If we want to scroll to the end, including horizontal scrolling, * then we just create a mark with right gravity at the end of the * buffer. It will stay at the end unless explicitly moved with * gtk_text_buffer_move_mark. */ gtk_text_buffer_create_mark (buffer, "end", &iter, FALSE); /* Add scrolling timeout. */ return g_timeout_add (50, (GSourceFunc) scroll_to_end, textview); } else { /* If we want to scroll to the bottom, but not scroll horizontally, * then an end mark won't do the job. Just create a mark so we can * use it with gtk_text_view_scroll_mark_onscreen, we'll position it * explicitly when needed. Use left gravity so the mark stays where * we put it after inserting new text. */ gtk_text_buffer_create_mark (buffer, "scroll", &iter, TRUE); /* Add scrolling timeout. */ return g_timeout_add (100, (GSourceFunc) scroll_to_bottom, textview); } } static void remove_timeout (GtkWidget *window, gpointer timeout) { g_source_remove (GPOINTER_TO_UINT (timeout)); } static void create_text_view (GtkWidget *hbox, gboolean to_end) { GtkWidget *swindow; GtkWidget *textview; guint timeout; swindow = gtk_scrolled_window_new (NULL, NULL); gtk_box_pack_start (GTK_BOX (hbox), swindow, TRUE, TRUE, 0); textview = gtk_text_view_new (); gtk_container_add (GTK_CONTAINER (swindow), textview); timeout = setup_scroll (GTK_TEXT_VIEW (textview), to_end); /* Remove the timeout in destroy handler, so we don't try to * scroll destroyed widget. */ g_signal_connect (textview, "destroy", G_CALLBACK (remove_timeout), GUINT_TO_POINTER (timeout)); } GtkWidget * do_textscroll (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *hbox; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_default_size (GTK_WINDOW (window), 600, 400); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); gtk_box_set_homogeneous (GTK_BOX (hbox), TRUE); gtk_container_add (GTK_CONTAINER (window), hbox); create_text_view (hbox, TRUE); create_text_view (hbox, FALSE); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)gnu-keys.png PNG  IHDR00WgAMA aIDATxkt]e゙[rr-M&i4IoŦC;DgPQTTguleP^Ҧ-msk~9Im}y|)̗:~yy}.qK\2C^Fd"弋Kt᪵UrL+ͷRu-YVV^zU+W (=ݽo `L-(`Fy9&NaYV왳vmۏ:/L/zefB01o2jy_8Pϱup H)B0qm_[ ȿV;@V(\{^fr(6 IG{x3cKս( *H$|)T4h?]ȂeneY9kjx4Jbd+W^y%լhB L  [|aIl2F~~+&OG @Uө|A< _ 8nSOn$I1UfV^~<`wn~ t4'8͞-ZXYyށT{߽ۿ_qǎR\RȬJ Il[8y%e^UQ5Mc_EVvϕxK"yn /﮻iK,554k>+cY=\mOw0 xmO~/P Be``}r!ʊ)- 3blя[i%hF*$LcuTcP⒊;>u{)j0%yyB` p㉸퇿]WWWwBǁQ`rJn'7†jB4E4Lo߫4kp$/w]MP5b$q|tb嗱kҲr=elt_="GeG7tM0M'߽;~rt]G"IA4¡0hhlzFF 3:$ccc$IFc8z9zG BB&Mرc<.馛)/+W||f9pEQP <.ӿxb&8ҊoRinm&77Jj-_Ƽy9s4gΝ"JY8R"}qʦa&j`A4Mlذk\k  ԾZolDUUt]_}}RL7^L@G>2EUPu.+ZJBz{zof$6JEE% ;.' ˪g΂HC "Yz@0H__/CA=ơCعs'K,acض͑#u}ctL%Oxɼ@QQQov(G&]]]]Pe1HSPX+0LښhhlॗvHũcH.iiiq,*QUΞսGbYAx|;w$;7p(*斪yϝxd0 x _bf/H_y_|'<9Bcǎ8y3˙;gPs &pl}G3RK v5V>3tZ͆O~7^/f(=>.\wI àa&M/}TM#;+#?EQQ*̟;˗zΎNod*Iii2~n}.**gdh+HOjo.a 7\rY"&6>55<.<ץ-?žp7QZVi o=B:==Xu,KpUܱAR{`?wE 'OP6ן"#QtM! 12CʛKco}wc) R0u #%'4 U?>D"Yy_?? ,kf:ōm[+k&pmTTT,]=[(x3SE_8R88I*"@+_FW\=|v4 ,\W M -郵ugsrm7d mݽ횪BP@(hB;u…5?=x'uyjS_kOYpݡ:+>6M>۾d;O5;{}#6//oY''UTTT3L'lK}ACRJ%A kBg[ԌT4hzo>JhBkVjUSÙL DUU;?vTaYvȡc=gN7=='yiT]m-mV 3KhqCowL&0 NCDz.L\Τ/y۽e˗rsM5.b$ Dcx}k+V.Ng{cC#4y/x'QV]ʫYZZꍌ Y{Q~WRnaswkwD"&w?K\{;$誂IENDB`(uuay)gnome-applets.png PNG  IHDR00WgAMA abKGD pHYs``zxEtIME ( IDATxYuګg㐢9ҖdkMіI@ӒF 'P q^b=F I6<Yk I @L٢hQ#҈Ԉξw5}(e<) ={#qs$L.KgK v\&H a-'r#pUVW cs1,'og])6˽~ @c[ : (&POsp3_:z|dxp4Ȓ4':NZeMo}ߘ]XY3B|y@.ρ|sy޽_$,H( <ϱ]vX[>G/nN(9&P*/=ra0**,!!IRB_쯹 +baGRR/dS*?{ķ+}5,)nj]R7 4%Mb$%NRUS/.Cȥw}TT*S)K覉a訪,ɿ$4!c8!c8ŕ;%l3j>?w\R*)U*eR4Q5EQd.$邕}(8ˆLKzk}}^o| Ǟ{_꺎ii J ib)2 ,S)Ұt+N9voinʲhF ,Q*WɃYӻ໱/ ,QT$uMes;B6x@Ldp edY)2cPUwH2xId Y\'N*$2YzRra/ۥ'}x"K3,#R,,f4%C|&+!4#R$EcyI(Wpz`Rӿ*2 {AަXS#it2EDa@xv| €(KӘ$Iӄ4MIqyxq7/ӱ]TMR.?݌mj8ꮰQݕw\s|}K" C(&j54z^z;Flj☡a\Ͽ/xAډHdOA@{xظݱpm ױ|;>( g}}3gޣ^gV\,rIݮ= +]iE!Bs=_feNt=/~SJ uD*] U(Cǧ/ֱ]xg"e]iJr|qXZ\4?ȓ?JLN& >]CܵGf׮a'2,bychl!{>A!I8V==X6M�{8*f9 xWJ%Iqˬ?ÿ4X= I,ϒ)aF1AA1iS2M8V#lľW_}N`nvCCyȲ Ο'==? ʪ!q#2%äJozw}yusl^[[[a RNZ1l{ &'%BR 45$&Ŭq% $ } ZZ\4c>{`˲fFFF5A (lvnzSo}͖mwszr;BAk*"$ i"+2*aP_K˫/ߚ8juj'F!%{T;%IUUZa*W):r0體 RVjhɩ19nZoO>.^n(HpZFFmfQ{l CM쯡j*#JwKt72y?\v♶ ' m멅# V,ˆg C3TEsuM!YQU)#m+_܈?%! @C^>kR(uc3e՞]lA_x)n/o+uhZQ`Q,<liOU cg7yA|527]B9p @xq bo?ڧE~p{ ցtc Ř5.a[A}/ ef b\GYD@6$-<E/E,E=<VD8q//.!<+dM`PV<}Cvwb}HB&*za+9B{z4zQ$Pr8C7ze^)|oթ {y շX~o$QajmӢ "EBbxvPZs|EkS؎%_X{.^52* @NwBhJiO{]XdZ8'Z O YG2Ad;@zooAkIENDB`(uuay)offscreen_window2.c|E/* Offscreen Windows/Effects * * Offscreen windows can be used to render elements multiple times to achieve * various effects. */ #include #include #define GTK_TYPE_MIRROR_BIN (gtk_mirror_bin_get_type ()) #define GTK_MIRROR_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_MIRROR_BIN, GtkMirrorBin)) #define GTK_MIRROR_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_MIRROR_BIN, GtkMirrorBinClass)) #define GTK_IS_MIRROR_BIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_MIRROR_BIN)) #define GTK_IS_MIRROR_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_MIRROR_BIN)) #define GTK_MIRROR_BIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_MIRROR_BIN, GtkMirrorBinClass)) typedef struct _GtkMirrorBin GtkMirrorBin; typedef struct _GtkMirrorBinClass GtkMirrorBinClass; struct _GtkMirrorBin { GtkContainer container; GtkWidget *child; GdkWindow *offscreen_window; }; struct _GtkMirrorBinClass { GtkContainerClass parent_class; }; GType gtk_mirror_bin_get_type (void) G_GNUC_CONST; GtkWidget* gtk_mirror_bin_new (void); /*** implementation ***/ static void gtk_mirror_bin_realize (GtkWidget *widget); static void gtk_mirror_bin_unrealize (GtkWidget *widget); static void gtk_mirror_bin_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural); static void gtk_mirror_bin_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural); static void gtk_mirror_bin_size_allocate (GtkWidget *widget, GtkAllocation *allocation); static gboolean gtk_mirror_bin_damage (GtkWidget *widget, GdkEventExpose *event); static gboolean gtk_mirror_bin_draw (GtkWidget *widget, cairo_t *cr); static void gtk_mirror_bin_add (GtkContainer *container, GtkWidget *child); static void gtk_mirror_bin_remove (GtkContainer *container, GtkWidget *widget); static void gtk_mirror_bin_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data); static GType gtk_mirror_bin_child_type (GtkContainer *container); G_DEFINE_TYPE (GtkMirrorBin, gtk_mirror_bin, GTK_TYPE_CONTAINER); static void to_child (GtkMirrorBin *bin, double widget_x, double widget_y, double *x_out, double *y_out) { *x_out = widget_x; *y_out = widget_y; } static void to_parent (GtkMirrorBin *bin, double offscreen_x, double offscreen_y, double *x_out, double *y_out) { *x_out = offscreen_x; *y_out = offscreen_y; } static void gtk_mirror_bin_class_init (GtkMirrorBinClass *klass) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); widget_class->realize = gtk_mirror_bin_realize; widget_class->unrealize = gtk_mirror_bin_unrealize; widget_class->get_preferred_width = gtk_mirror_bin_get_preferred_width; widget_class->get_preferred_height = gtk_mirror_bin_get_preferred_height; widget_class->size_allocate = gtk_mirror_bin_size_allocate; widget_class->draw = gtk_mirror_bin_draw; g_signal_override_class_closure (g_signal_lookup ("damage-event", GTK_TYPE_WIDGET), GTK_TYPE_MIRROR_BIN, g_cclosure_new (G_CALLBACK (gtk_mirror_bin_damage), NULL, NULL)); container_class->add = gtk_mirror_bin_add; container_class->remove = gtk_mirror_bin_remove; container_class->forall = gtk_mirror_bin_forall; container_class->child_type = gtk_mirror_bin_child_type; } static void gtk_mirror_bin_init (GtkMirrorBin *bin) { gtk_widget_set_has_window (GTK_WIDGET (bin), TRUE); } GtkWidget * gtk_mirror_bin_new (void) { return g_object_new (GTK_TYPE_MIRROR_BIN, NULL); } static GdkWindow * pick_offscreen_child (GdkWindow *offscreen_window, double widget_x, double widget_y, GtkMirrorBin *bin) { GtkAllocation child_area; double x, y; if (bin->child && gtk_widget_get_visible (bin->child)) { to_child (bin, widget_x, widget_y, &x, &y); gtk_widget_get_allocation (bin->child, &child_area); if (x >= 0 && x < child_area.width && y >= 0 && y < child_area.height) return bin->offscreen_window; } return NULL; } static void offscreen_window_to_parent (GdkWindow *offscreen_window, double offscreen_x, double offscreen_y, double *parent_x, double *parent_y, GtkMirrorBin *bin) { to_parent (bin, offscreen_x, offscreen_y, parent_x, parent_y); } static void offscreen_window_from_parent (GdkWindow *window, double parent_x, double parent_y, double *offscreen_x, double *offscreen_y, GtkMirrorBin *bin) { to_child (bin, parent_x, parent_y, offscreen_x, offscreen_y); } static void gtk_mirror_bin_realize (GtkWidget *widget) { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); GtkAllocation allocation; GtkStyleContext *context; GdkWindow *window; GdkWindowAttr attributes; gint attributes_mask; guint border_width; GtkRequisition child_requisition; gtk_widget_set_realized (widget, TRUE); gtk_widget_get_allocation (widget, &allocation); border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); attributes.x = allocation.x + border_width; attributes.y = allocation.y + border_width; attributes.width = allocation.width - 2 * border_width; attributes.height = allocation.height - 2 * border_width; attributes.window_type = GDK_WINDOW_CHILD; attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_SCROLL_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK; attributes.visual = gtk_widget_get_visual (widget); attributes.wclass = GDK_INPUT_OUTPUT; attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask); gtk_widget_set_window (widget, window); gdk_window_set_user_data (window, widget); g_signal_connect (window, "pick-embedded-child", G_CALLBACK (pick_offscreen_child), bin); attributes.window_type = GDK_WINDOW_OFFSCREEN; child_requisition.width = child_requisition.height = 0; if (bin->child && gtk_widget_get_visible (bin->child)) { GtkAllocation child_allocation; gtk_widget_get_allocation (bin->child, &child_allocation); attributes.width = child_allocation.width; attributes.height = child_allocation.height; } bin->offscreen_window = gdk_window_new (gdk_screen_get_root_window (gtk_widget_get_screen (widget)), &attributes, attributes_mask); gdk_window_set_user_data (bin->offscreen_window, widget); if (bin->child) gtk_widget_set_parent_window (bin->child, bin->offscreen_window); gdk_offscreen_window_set_embedder (bin->offscreen_window, window); g_signal_connect (bin->offscreen_window, "to-embedder", G_CALLBACK (offscreen_window_to_parent), bin); g_signal_connect (bin->offscreen_window, "from-embedder", G_CALLBACK (offscreen_window_from_parent), bin); context = gtk_widget_get_style_context (widget); gtk_style_context_set_background (context, window); gtk_style_context_set_background (context, bin->offscreen_window); gdk_window_show (bin->offscreen_window); } static void gtk_mirror_bin_unrealize (GtkWidget *widget) { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); gdk_window_set_user_data (bin->offscreen_window, NULL); gdk_window_destroy (bin->offscreen_window); bin->offscreen_window = NULL; GTK_WIDGET_CLASS (gtk_mirror_bin_parent_class)->unrealize (widget); } static GType gtk_mirror_bin_child_type (GtkContainer *container) { GtkMirrorBin *bin = GTK_MIRROR_BIN (container); if (bin->child) return G_TYPE_NONE; return GTK_TYPE_WIDGET; } static void gtk_mirror_bin_add (GtkContainer *container, GtkWidget *widget) { GtkMirrorBin *bin = GTK_MIRROR_BIN (container); if (!bin->child) { gtk_widget_set_parent_window (widget, bin->offscreen_window); gtk_widget_set_parent (widget, GTK_WIDGET (bin)); bin->child = widget; } else g_warning ("GtkMirrorBin cannot have more than one child\n"); } static void gtk_mirror_bin_remove (GtkContainer *container, GtkWidget *widget) { GtkMirrorBin *bin = GTK_MIRROR_BIN (container); gboolean was_visible; was_visible = gtk_widget_get_visible (widget); if (bin->child == widget) { gtk_widget_unparent (widget); bin->child = NULL; if (was_visible && gtk_widget_get_visible (GTK_WIDGET (container))) gtk_widget_queue_resize (GTK_WIDGET (container)); } } static void gtk_mirror_bin_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data) { GtkMirrorBin *bin = GTK_MIRROR_BIN (container); g_return_if_fail (callback != NULL); if (bin->child) (*callback) (bin->child, callback_data); } static void gtk_mirror_bin_size_request (GtkWidget *widget, GtkRequisition *requisition) { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); GtkRequisition child_requisition; guint border_width; child_requisition.width = 0; child_requisition.height = 0; if (bin->child && gtk_widget_get_visible (bin->child)) gtk_widget_get_preferred_size ( (bin->child), &child_requisition, NULL); border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); requisition->width = border_width * 2 + child_requisition.width + 10; requisition->height = border_width * 2 + child_requisition.height * 2 + 10; } static void gtk_mirror_bin_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural) { GtkRequisition requisition; gtk_mirror_bin_size_request (widget, &requisition); *minimum = *natural = requisition.width; } static void gtk_mirror_bin_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural) { GtkRequisition requisition; gtk_mirror_bin_size_request (widget, &requisition); *minimum = *natural = requisition.width; } static void gtk_mirror_bin_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); gint w, h; guint border_width; gtk_widget_set_allocation (widget, allocation); border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); w = allocation->width - border_width * 2; h = allocation->height - border_width * 2; if (gtk_widget_get_realized (widget)) gdk_window_move_resize (gtk_widget_get_window (widget), allocation->x + border_width, allocation->y + border_width, w, h); if (bin->child && gtk_widget_get_visible (bin->child)) { GtkRequisition child_requisition; GtkAllocation child_allocation; gtk_widget_get_preferred_size (bin->child, &child_requisition, NULL); child_allocation.x = 0; child_allocation.y = 0; child_allocation.height = child_requisition.height; child_allocation.width = child_requisition.width; if (gtk_widget_get_realized (widget)) gdk_window_move_resize (bin->offscreen_window, allocation->x + border_width, allocation->y + border_width, child_allocation.width, child_allocation.height); gtk_widget_size_allocate (bin->child, &child_allocation); } } static gboolean gtk_mirror_bin_damage (GtkWidget *widget, GdkEventExpose *event) { gdk_window_invalidate_rect (gtk_widget_get_window (widget), NULL, FALSE); return TRUE; } static gboolean gtk_mirror_bin_draw (GtkWidget *widget, cairo_t *cr) { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); GdkWindow *window; window = gtk_widget_get_window (widget); if (gtk_cairo_should_draw_window (cr, window)) { cairo_surface_t *surface; cairo_matrix_t matrix; cairo_pattern_t *mask; int height; if (bin->child && gtk_widget_get_visible (bin->child)) { surface = gdk_offscreen_window_get_surface (bin->offscreen_window); height = gdk_window_get_height (bin->offscreen_window); /* paint the offscreen child */ cairo_set_source_surface (cr, surface, 0, 0); cairo_paint (cr); cairo_matrix_init (&matrix, 1.0, 0.0, 0.3, 1.0, 0.0, 0.0); cairo_matrix_scale (&matrix, 1.0, -1.0); cairo_matrix_translate (&matrix, -10, - 3 * height - 10); cairo_transform (cr, &matrix); cairo_set_source_surface (cr, surface, 0, height); /* create linear gradient as mask-pattern to fade out the source */ mask = cairo_pattern_create_linear (0.0, height, 0.0, 2*height); cairo_pattern_add_color_stop_rgba (mask, 0.0, 0.0, 0.0, 0.0, 0.0); cairo_pattern_add_color_stop_rgba (mask, 0.25, 0.0, 0.0, 0.0, 0.01); cairo_pattern_add_color_stop_rgba (mask, 0.5, 0.0, 0.0, 0.0, 0.25); cairo_pattern_add_color_stop_rgba (mask, 0.75, 0.0, 0.0, 0.0, 0.5); cairo_pattern_add_color_stop_rgba (mask, 1.0, 0.0, 0.0, 0.0, 1.0); /* paint the reflection */ cairo_mask (cr, mask); cairo_pattern_destroy (mask); } } else if (gtk_cairo_should_draw_window (cr, bin->offscreen_window)) { gtk_render_background (gtk_widget_get_style_context (widget), cr, 0, 0, gdk_window_get_width (bin->offscreen_window), gdk_window_get_height (bin->offscreen_window)); if (bin->child) gtk_container_propagate_draw (GTK_CONTAINER (widget), bin->child, cr); } return FALSE; } /*** ***/ static GtkWidget *window = NULL; GtkWidget * do_offscreen_window2 (GtkWidget *do_widget) { if (!window) { GtkWidget *bin, *vbox; GtkWidget *hbox, *entry, *applybutton, *backbutton; GtkSizeGroup *group; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Effects"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); bin = gtk_mirror_bin_new (); group = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); backbutton = gtk_button_new (); gtk_container_add (GTK_CONTAINER (backbutton), gtk_image_new_from_icon_name ("go-previous", 4)); gtk_size_group_add_widget (group, backbutton); entry = gtk_entry_new (); gtk_size_group_add_widget (group, entry); applybutton = gtk_button_new_with_label (_("Apply")); gtk_size_group_add_widget (group, applybutton); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_box_pack_start (GTK_BOX (vbox), bin, TRUE, TRUE, 0); gtk_container_add (GTK_CONTAINER (bin), hbox); gtk_box_pack_start (GTK_BOX (hbox), backbutton, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), applybutton, FALSE, FALSE, 0); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)application.uih horizontal fill True document-open application-exit app.quit 0 0 True fill True True True fill True center _OK True 0 1 in fill fill True True 0 2 fill True True 0 3 File1 win.file1 (uuay)iconview/(Wcss_basics.c/* CSS Theming/CSS Basics * * Gtk themes are written using CSS. Every widget is build of multiple items * that you can style very similarly to a regular website. * */ #include static GtkWidget *window = NULL; static void show_parsing_error (GtkCssProvider *provider, GtkCssSection *section, const GError *error, GtkTextBuffer *buffer) { GtkTextIter start, end; const char *tag_name; gtk_text_buffer_get_iter_at_line_index (buffer, &start, gtk_css_section_get_start_line (section), gtk_css_section_get_start_position (section)); gtk_text_buffer_get_iter_at_line_index (buffer, &end, gtk_css_section_get_end_line (section), gtk_css_section_get_end_position (section)); if (g_error_matches (error, GTK_CSS_PROVIDER_ERROR, GTK_CSS_PROVIDER_ERROR_DEPRECATED)) tag_name = "warning"; else tag_name = "error"; gtk_text_buffer_apply_tag_by_name (buffer, tag_name, &start, &end); } static void css_text_changed (GtkTextBuffer *buffer, GtkCssProvider *provider) { GtkTextIter start, end; char *text; gtk_text_buffer_get_start_iter (buffer, &start); gtk_text_buffer_get_end_iter (buffer, &end); gtk_text_buffer_remove_all_tags (buffer, &start, &end); text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); gtk_css_provider_load_from_data (provider, text, -1, NULL); g_free (text); gtk_style_context_reset_widgets (gdk_screen_get_default ()); } static void apply_css (GtkWidget *widget, GtkStyleProvider *provider) { gtk_style_context_add_provider (gtk_widget_get_style_context (widget), provider, G_MAXUINT); if (GTK_IS_CONTAINER (widget)) gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) apply_css, provider); } GtkWidget * do_css_basics (GtkWidget *do_widget) { if (!window) { GtkWidget *container, *child; GtkStyleProvider *provider; GtkTextBuffer *text; GBytes *bytes; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); text = gtk_text_buffer_new (NULL); gtk_text_buffer_create_tag (text, "warning", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (text, "error", "underline", PANGO_UNDERLINE_ERROR, NULL); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); container = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (window), container); child = gtk_text_view_new_with_buffer (text); gtk_container_add (GTK_CONTAINER (container), child); g_signal_connect (text, "changed", G_CALLBACK (css_text_changed), provider); bytes = g_resources_lookup_data ("/css_basics/css_basics.css", 0, NULL); gtk_text_buffer_set_text (text, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes)); g_bytes_unref (bytes); g_signal_connect (provider, "parsing-error", G_CALLBACK (show_parsing_error), gtk_text_view_get_buffer (GTK_TEXT_VIEW (child))); apply_css (window, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)panes.cX/* Paned Widgets * * The GtkHPaned and GtkVPaned Widgets divide their content * area into two panes with a divider in between that the * user can adjust. A separate child is placed into each * pane. * * There are a number of options that can be set for each pane. * This test contains both a horizontal (HPaned) and a vertical * (VPaned) widget, and allows you to adjust the options for * each side of each widget. */ #include void toggle_resize (GtkWidget *widget, GtkWidget *child) { GtkWidget *parent; GtkPaned *paned; gboolean is_child1; gboolean resize, shrink; parent = gtk_widget_get_parent (child); paned = GTK_PANED (parent); is_child1 = (child == gtk_paned_get_child1 (paned)); gtk_container_child_get (GTK_CONTAINER (paned), child, "resize", &resize, "shrink", &shrink, NULL); g_object_ref (child); gtk_container_remove (GTK_CONTAINER (parent), child); if (is_child1) gtk_paned_pack1 (paned, child, !resize, shrink); else gtk_paned_pack2 (paned, child, !resize, shrink); g_object_unref (child); } void toggle_shrink (GtkWidget *widget, GtkWidget *child) { GtkWidget *parent; GtkPaned *paned; gboolean is_child1; gboolean resize, shrink; parent = gtk_widget_get_parent (child); paned = GTK_PANED (parent); is_child1 = (child == gtk_paned_get_child1 (paned)); gtk_container_child_get (GTK_CONTAINER (paned), child, "resize", &resize, "shrink", &shrink, NULL); g_object_ref (child); gtk_container_remove (GTK_CONTAINER (parent), child); if (is_child1) gtk_paned_pack1 (paned, child, resize, !shrink); else gtk_paned_pack2 (paned, child, resize, !shrink); g_object_unref (child); } GtkWidget * create_pane_options (GtkPaned *paned, const gchar *frame_label, const gchar *label1, const gchar *label2) { GtkWidget *child1, *child2; GtkWidget *frame; GtkWidget *table; GtkWidget *label; GtkWidget *check_button; child1 = gtk_paned_get_child1 (paned); child2 = gtk_paned_get_child2 (paned); frame = gtk_frame_new (frame_label); gtk_container_set_border_width (GTK_CONTAINER (frame), 4); table = gtk_grid_new (); gtk_container_add (GTK_CONTAINER (frame), table); label = gtk_label_new (label1); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); check_button = gtk_check_button_new_with_mnemonic ("_Resize"); gtk_grid_attach (GTK_GRID (table), check_button, 0, 1, 1, 1); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_resize), child1); check_button = gtk_check_button_new_with_mnemonic ("_Shrink"); gtk_grid_attach (GTK_GRID (table), check_button, 0, 2, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_shrink), child1); label = gtk_label_new (label2); gtk_grid_attach (GTK_GRID (table), label, 1, 0, 1, 1); check_button = gtk_check_button_new_with_mnemonic ("_Resize"); gtk_grid_attach (GTK_GRID (table), check_button, 1, 1, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_resize), child2); check_button = gtk_check_button_new_with_mnemonic ("_Shrink"); gtk_grid_attach (GTK_GRID (table), check_button, 1, 2, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_shrink), child2); return frame; } GtkWidget * do_panes (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *frame; GtkWidget *hpaned; GtkWidget *vpaned; GtkWidget *button; GtkWidget *vbox; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_title (GTK_WINDOW (window), "Panes"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); vpaned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_box_pack_start (GTK_BOX (vbox), vpaned, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER(vpaned), 5); hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); gtk_paned_add1 (GTK_PANED (vpaned), hpaned); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN); gtk_widget_set_size_request (frame, 60, 60); gtk_paned_add1 (GTK_PANED (hpaned), frame); button = gtk_button_new_with_mnemonic ("_Hi there"); gtk_container_add (GTK_CONTAINER(frame), button); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN); gtk_widget_set_size_request (frame, 80, 60); gtk_paned_add2 (GTK_PANED (hpaned), frame); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN); gtk_widget_set_size_request (frame, 60, 80); gtk_paned_add2 (GTK_PANED (vpaned), frame); /* Now create toggle buttons to control sizing */ gtk_box_pack_start (GTK_BOX (vbox), create_pane_options (GTK_PANED (hpaned), "Horizontal", "Left", "Right"), FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), create_pane_options (GTK_PANED (vpaned), "Vertical", "Top", "Bottom"), FALSE, FALSE, 0); gtk_widget_show_all (vbox); } if (!gtk_widget_get_visible (window)) { gtk_widget_show (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)css_multiplebgs.css/* You can edit the text in this window to change the * appearance of this Window. * Be careful, if you screw it up, nothing might be visible * anymore. :) */ /* This CSS resets all properties to their defaults values * and overrides all user settings and the theme in use */ @import url("resource://css_multiplebgs/reset.css"); @import url("resource://css_multiplebgs/cssview.css"); #canvas { transition-property: background-color, background-image; transition-duration: 0.5s; background-color: #4870bc; } /* The gradients below are adapted versions of Lea Verou's CSS3 patterns, * licensed under the MIT license: * Copyright (c) 2011 Lea Verou, http://lea.verou.me/ * * See https://github.com/LeaVerou/CSS3-Patterns-Gallery */ /********** * Bricks * **********/ /* @define-color brick_hi #d42; @define-color brick_lo #b42; @define-color brick_hi_backdrop #888; @define-color brick_lo_backdrop #999; #canvas { background-color: #999; background-image: linear-gradient(205deg, @brick_lo, @brick_lo 23px, transparent 23px), linear-gradient(25deg, @brick_hi, @brick_hi 23px, transparent 23px), linear-gradient(205deg, @brick_lo, @brick_lo 23px, transparent 23px), linear-gradient(25deg, @brick_hi, @brick_hi 23px, transparent 23px); background-size: 58px 58px; background-position: 0px 6px, 4px 31px, 29px 35px, 34px 2px; } #canvas:backdrop { background-color: #444; background-image: linear-gradient(205deg, @brick_lo_backdrop, @brick_lo_backdrop 23px, transparent 23px), linear-gradient(25deg, @brick_hi_backdrop, @brick_hi_backdrop 23px, transparent 23px), linear-gradient(205deg, @brick_lo_backdrop, @brick_lo_backdrop 23px, transparent 23px), linear-gradient(25deg, @brick_hi_backdrop, @brick_hi_backdrop 23px, transparent 23px); background-size: 58px 58px; background-position: 0px 6px, 4px 31px, 29px 35px, 34px 2px; } */ /* #bricks-button { background-color: #eef; background-image: -gtk-scaled(url('resource:///css_multiplebgs/brick.png'),url('resource:///css_multiplebgs/brick2.png')); background-repeat: no-repeat; background-position: center; } */ /********** * Tartan * **********/ /* @define-color tartan_bg #662e2c; @define-color tartan_bg_backdrop #333; #canvas { background-color: @tartan_bg; background-image: repeating-linear-gradient(transparent, transparent 50px, rgba(0,0,0,.4) 50px, rgba(0,0,0,.4) 53px, transparent 53px, transparent 63px, rgba(0,0,0,.4) 63px, rgba(0,0,0,.4) 66px, transparent 66px, transparent 116px, rgba(0,0,0,.5) 116px, rgba(0,0,0,.5) 166px, rgba(255,255,255,.2) 166px, rgba(255,255,255,.2) 169px, rgba(0,0,0,.5) 169px, rgba(0,0,0,.5) 179px, rgba(255,255,255,.2) 179px, rgba(255,255,255,.2) 182px, rgba(0,0,0,.5) 182px, rgba(0,0,0,.5) 232px, transparent 232px), repeating-linear-gradient(90deg, transparent, transparent 50px, rgba(0,0,0,.4) 50px, rgba(0,0,0,.4) 53px, transparent 53px, transparent 63px, rgba(0,0,0,.4) 63px, rgba(0,0,0,.4) 66px, transparent 66px, transparent 116px, rgba(0,0,0,.5) 116px, rgba(0,0,0,.5) 166px, rgba(255,255,255,.2) 166px, rgba(255,255,255,.2) 169px, rgba(0,0,0,.5) 169px, rgba(0,0,0,.5) 179px, rgba(255,255,255,.2) 179px, rgba(255,255,255,.2) 182px, rgba(0,0,0,.5) 182px, rgba(0,0,0,.5) 232px, transparent 232px), repeating-linear-gradient(-55deg, transparent, transparent 1px, rgba(0,0,0,.2) 1px, rgba(0,0,0,.2) 4px, transparent 4px, transparent 19px, rgba(0,0,0,.2) 19px, rgba(0,0,0,.2) 24px, transparent 24px, transparent 51px, rgba(0,0,0,.2) 51px, rgba(0,0,0,.2) 54px, transparent 54px, transparent 74px); } #canvas:backdrop { background-color: @tartan_bg_backdrop; } */ /*********** * Stripes * ***********/ /* @define-color base_bg #4870bc; @define-color backdrop_bg #555; #canvas { background-color: @base_bg; background-image: linear-gradient(to left, transparent, rgba(255,255,255,.07) 50%, transparent 50%), linear-gradient(to left, transparent, rgba(255,255,255,.13) 50%, transparent 50%), linear-gradient(to left, transparent, transparent 50%, rgba(255,255,255,.17) 50%), linear-gradient(to left, transparent, transparent 50%, rgba(255,255,255,.19) 50%); background-size: 29px, 59px, 73px, 109px; } #canvas:backdrop { background-color: @backdrop_bg; } */ /*************** * Lined Paper * ***************/ /* #canvas { background-color: #fff; background-image: linear-gradient(90deg, transparent 79px, alpha(#f98195, 0.40) 79px, #f98195 80px, alpha(#f98195, 0.40) 81px, transparent 81px), linear-gradient(alpha(#77c5cf, 0.60), alpha(#77c5cf, 0.60) 1px, transparent 1px); background-size: 100% 36px; } #canvas:backdrop { background-color: #f1f2f4; background-image: linear-gradient(90deg, transparent 79px, alpha(#999, 0.40) 79px, #999 80px, alpha(#999, 0.40) 81px, transparent 81px), linear-gradient(alpha(#bbb, 0.60), alpha(#bbb, 0.60) 1px, transparent 1px); } */ (uuay)expander.c /* Expander * * GtkExpander allows to provide additional content that is initially hidden. * This is also known as "disclosure triangle". * */ #include #include static GtkWidget *window = NULL; GtkWidget * do_expander (GtkWidget *do_widget) { GtkWidget *content_area; GtkWidget *vbox; GtkWidget *label; GtkWidget *expander; if (!window) { window = gtk_dialog_new_with_buttons ("GtkExpander", GTK_WINDOW (do_widget), 0, _("_Close"), GTK_RESPONSE_NONE, NULL); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); content_area = gtk_dialog_get_content_area (GTK_DIALOG (window)); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); label = gtk_label_new ("Expander demo. Click on the triangle for details."); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); /* Create the expander */ expander = gtk_expander_new ("Details"); gtk_box_pack_start (GTK_BOX (vbox), expander, FALSE, FALSE, 0); label = gtk_label_new ("Details can be shown or hidden."); gtk_container_add (GTK_CONTAINER (expander), label); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)dialog.c/* Dialog and Message Boxes * * Dialog widgets are used to pop up a transient window for user feedback. */ #include #include static GtkWidget *window = NULL; static GtkWidget *entry1 = NULL; static GtkWidget *entry2 = NULL; static void message_dialog_clicked (GtkButton *button, gpointer user_data) { GtkWidget *dialog; static gint i = 1; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK_CANCEL, "This message box has been popped up the following\n" "number of times:"); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%d", i); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); i++; } static void interactive_dialog_clicked (GtkButton *button, gpointer user_data) { GtkWidget *content_area; GtkWidget *dialog; GtkWidget *hbox; GtkWidget *image; GtkWidget *table; GtkWidget *local_entry1; GtkWidget *local_entry2; GtkWidget *label; gint response; dialog = gtk_dialog_new_with_buttons ("Interactive Dialog", GTK_WINDOW (window), GTK_DIALOG_MODAL| GTK_DIALOG_DESTROY_WITH_PARENT, _("_OK"), GTK_RESPONSE_OK, "_Cancel", GTK_RESPONSE_CANCEL, NULL); content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_box_pack_start (GTK_BOX (content_area), hbox, FALSE, FALSE, 0); image = gtk_image_new_from_icon_name ("dialog-question", GTK_ICON_SIZE_DIALOG); gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0); table = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 4); gtk_box_pack_start (GTK_BOX (hbox), table, TRUE, TRUE, 0); label = gtk_label_new_with_mnemonic ("_Entry 1"); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); local_entry1 = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (local_entry1), gtk_entry_get_text (GTK_ENTRY (entry1))); gtk_grid_attach (GTK_GRID (table), local_entry1, 1, 0, 1, 1); gtk_label_set_mnemonic_widget (GTK_LABEL (label), local_entry1); label = gtk_label_new_with_mnemonic ("E_ntry 2"); gtk_grid_attach (GTK_GRID (table), label, 0, 1, 1, 1); local_entry2 = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (local_entry2), gtk_entry_get_text (GTK_ENTRY (entry2))); gtk_grid_attach (GTK_GRID (table), local_entry2, 1, 1, 1, 1); gtk_label_set_mnemonic_widget (GTK_LABEL (label), local_entry2); gtk_widget_show_all (hbox); response = gtk_dialog_run (GTK_DIALOG (dialog)); if (response == GTK_RESPONSE_OK) { gtk_entry_set_text (GTK_ENTRY (entry1), gtk_entry_get_text (GTK_ENTRY (local_entry1))); gtk_entry_set_text (GTK_ENTRY (entry2), gtk_entry_get_text (GTK_ENTRY (local_entry2))); } gtk_widget_destroy (dialog); } GtkWidget * do_dialog (GtkWidget *do_widget) { GtkWidget *frame; GtkWidget *vbox; GtkWidget *vbox2; GtkWidget *hbox; GtkWidget *button; GtkWidget *table; GtkWidget *label; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Dialogs"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 8); frame = gtk_frame_new ("Dialogs"); gtk_container_add (GTK_CONTAINER (window), frame); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (frame), vbox); /* Standard message dialog */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); button = gtk_button_new_with_mnemonic ("_Message Dialog"); g_signal_connect (button, "clicked", G_CALLBACK (message_dialog_clicked), NULL); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), FALSE, FALSE, 0); /* Interactive dialog*/ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); button = gtk_button_new_with_mnemonic ("_Interactive Dialog"); g_signal_connect (button, "clicked", G_CALLBACK (interactive_dialog_clicked), NULL); gtk_box_pack_start (GTK_BOX (hbox), vbox2, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0); table = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 4); gtk_box_pack_start (GTK_BOX (hbox), table, FALSE, FALSE, 0); label = gtk_label_new_with_mnemonic ("_Entry 1"); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); entry1 = gtk_entry_new (); gtk_grid_attach (GTK_GRID (table), entry1, 1, 0, 1, 1); gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry1); label = gtk_label_new_with_mnemonic ("E_ntry 2"); gtk_grid_attach (GTK_GRID (table), label, 0, 1, 1, 1); entry2 = gtk_entry_new (); gtk_grid_attach (GTK_GRID (table), entry2, 1, 1, 1, 1); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)tree_store.cbC/* Tree View/Tree Store * * The GtkTreeStore is used to store data in tree form, to be * used later on by a GtkTreeView to display it. This demo builds * a simple GtkTreeStore and displays it. If you're new to the * GtkTreeView widgets and associates, look into the GtkListStore * example first. * */ #include static GtkWidget *window = NULL; /* TreeItem structure */ typedef struct _TreeItem TreeItem; struct _TreeItem { const gchar *label; gboolean alex; gboolean havoc; gboolean tim; gboolean owen; gboolean dave; gboolean world_holiday; /* shared by the European hackers */ TreeItem *children; }; /* columns */ enum { HOLIDAY_NAME_COLUMN = 0, ALEX_COLUMN, HAVOC_COLUMN, TIM_COLUMN, OWEN_COLUMN, DAVE_COLUMN, VISIBLE_COLUMN, WORLD_COLUMN, NUM_COLUMNS }; /* tree data */ static TreeItem january[] = { {"New Years Day", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, {"Presidential Inauguration", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, {"Martin Luther King Jr. day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem february[] = { { "Presidents' Day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { "Groundhog Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Valentine's Day", FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, NULL }, { NULL } }; static TreeItem march[] = { { "National Tree Planting Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "St Patrick's Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { NULL } }; static TreeItem april[] = { { "April Fools' Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Army Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Earth Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Administrative Professionals' Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem may[] = { { "Nurses' Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "National Day of Prayer", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Mothers' Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Armed Forces Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Memorial Day", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, { NULL } }; static TreeItem june[] = { { "June Fathers' Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Juneteenth (Liberation of Slaves)", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Flag Day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem july[] = { { "Parents' Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Independence Day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem august[] = { { "Air Force Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Coast Guard Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Friendship Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem september[] = { { "Grandparents' Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Citizenship Day or Constitution Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Labor Day", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, { NULL } }; static TreeItem october[] = { { "National Children's Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Bosses' Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Sweetest Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Mother-in-Law's Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Navy Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Columbus Day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { "Halloween", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { NULL } }; static TreeItem november[] = { { "Marine Corps Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Veterans' Day", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, { "Thanksgiving", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem december[] = { { "Pearl Harbor Remembrance Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Christmas", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, { "Kwanzaa", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem toplevel[] = { {"January", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, january}, {"February", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, february}, {"March", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, march}, {"April", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, april}, {"May", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, may}, {"June", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, june}, {"July", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, july}, {"August", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, august}, {"September", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, september}, {"October", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, october}, {"November", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, november}, {"December", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, december}, {NULL} }; static GtkTreeModel * create_model (void) { GtkTreeStore *model; GtkTreeIter iter; TreeItem *month = toplevel; /* create tree store */ model = gtk_tree_store_new (NUM_COLUMNS, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); /* add data to the tree store */ while (month->label) { TreeItem *holiday = month->children; gtk_tree_store_append (model, &iter, NULL); gtk_tree_store_set (model, &iter, HOLIDAY_NAME_COLUMN, month->label, ALEX_COLUMN, FALSE, HAVOC_COLUMN, FALSE, TIM_COLUMN, FALSE, OWEN_COLUMN, FALSE, DAVE_COLUMN, FALSE, VISIBLE_COLUMN, FALSE, WORLD_COLUMN, FALSE, -1); /* add children */ while (holiday->label) { GtkTreeIter child_iter; gtk_tree_store_append (model, &child_iter, &iter); gtk_tree_store_set (model, &child_iter, HOLIDAY_NAME_COLUMN, holiday->label, ALEX_COLUMN, holiday->alex, HAVOC_COLUMN, holiday->havoc, TIM_COLUMN, holiday->tim, OWEN_COLUMN, holiday->owen, DAVE_COLUMN, holiday->dave, VISIBLE_COLUMN, TRUE, WORLD_COLUMN, holiday->world_holiday, -1); holiday++; } month++; } return GTK_TREE_MODEL (model); } static void item_toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); GtkTreeIter iter; gboolean toggle_item; gint *column; column = g_object_get_data (G_OBJECT (cell), "column"); /* get toggled iter */ gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, column, &toggle_item, -1); /* do something with the value */ toggle_item ^= 1; /* set new value */ gtk_tree_store_set (GTK_TREE_STORE (model), &iter, column, toggle_item, -1); /* clean up */ gtk_tree_path_free (path); } static void add_columns (GtkTreeView *treeview) { gint col_offset; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeModel *model = gtk_tree_view_get_model (treeview); /* column for holiday names */ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.0, NULL); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Holiday", renderer, "text", HOLIDAY_NAME_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* alex column */ renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "xalign", 0.0, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)ALEX_COLUMN); g_signal_connect (renderer, "toggled", G_CALLBACK (item_toggled), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Alex", renderer, "active", ALEX_COLUMN, "visible", VISIBLE_COLUMN, "activatable", WORLD_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* havoc column */ renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "xalign", 0.0, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)HAVOC_COLUMN); g_signal_connect (renderer, "toggled", G_CALLBACK (item_toggled), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Havoc", renderer, "active", HAVOC_COLUMN, "visible", VISIBLE_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* tim column */ renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "xalign", 0.0, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)TIM_COLUMN); g_signal_connect (renderer, "toggled", G_CALLBACK (item_toggled), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Tim", renderer, "active", TIM_COLUMN, "visible", VISIBLE_COLUMN, "activatable", WORLD_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* owen column */ renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "xalign", 0.0, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)OWEN_COLUMN); g_signal_connect (renderer, "toggled", G_CALLBACK (item_toggled), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Owen", renderer, "active", OWEN_COLUMN, "visible", VISIBLE_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* dave column */ renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "xalign", 0.0, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)DAVE_COLUMN); g_signal_connect (renderer, "toggled", G_CALLBACK (item_toggled), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Dave", renderer, "active", DAVE_COLUMN, "visible", VISIBLE_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); } GtkWidget * do_tree_store (GtkWidget *do_widget) { if (!window) { GtkWidget *vbox; GtkWidget *sw; GtkWidget *treeview; GtkTreeModel *model; /* create window, etc */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Card planning sheet"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_box_pack_start (GTK_BOX (vbox), gtk_label_new ("Jonathan's Holiday Card Planning Sheet"), FALSE, FALSE, 0); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); /* create model */ model = create_model (); /* create tree view */ treeview = gtk_tree_view_new_with_model (model); g_object_unref (model); gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), GTK_SELECTION_MULTIPLE); add_columns (GTK_TREE_VIEW (treeview)); gtk_container_add (GTK_CONTAINER (sw), treeview); /* expand all rows after the treeview widget has been realized */ g_signal_connect (treeview, "realize", G_CALLBACK (gtk_tree_view_expand_all), NULL); gtk_window_set_default_size (GTK_WINDOW (window), 650, 400); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)links.c /* Links * * GtkLabel can show hyperlinks. The default action is to call * gtk_show_uri() on their URI, but it is possible to override * this with a custom handler. */ #include static void response_cb (GtkWidget *dialog, gint response_id, gpointer data) { gtk_widget_destroy (dialog); } static gboolean activate_link (GtkWidget *label, const gchar *uri, gpointer data) { if (g_strcmp0 (uri, "keynav") == 0) { GtkWidget *dialog; GtkWidget *parent; parent = gtk_widget_get_toplevel (label); dialog = gtk_message_dialog_new_with_markup (GTK_WINDOW (parent), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "The term keynav is a shorthand for " "keyboard navigation and refers to the process of using " "a program (exclusively) via keyboard input."); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); gtk_window_present (GTK_WINDOW (dialog)); g_signal_connect (dialog, "response", G_CALLBACK (response_cb), NULL); return TRUE; } return FALSE; } static GtkWidget *window = NULL; GtkWidget * do_links (GtkWidget *do_widget) { GtkWidget *label; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Links"); gtk_container_set_border_width (GTK_CONTAINER (window), 12); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); label = gtk_label_new ("Some text may be marked up\n" "as hyperlinks, which can be clicked\n" "or activated via keynav\n" "and they work fine with other markup, like when\n" "searching on " "Go" "og" "le" "."); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); g_signal_connect (label, "activate-link", G_CALLBACK (activate_link), NULL); gtk_container_add (GTK_CONTAINER (window), label); gtk_widget_show (label); } if (!gtk_widget_get_visible (window)) { gtk_widget_show (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } (uuay)gnome-gsame.pngPNG  IHDR00WgAMA1_^IDATxYdWy[{U3ӳ3a0+f1F !HI7x,g~Swoߟk03֫6Y,bMWr?[?;j1񪴜S|zoY|쳷S;s%>sj\3Җ\+A {?+%y2 P/=S .>٘cƘ2j;_ 'VF;k wN;njYo9-dG-ӿw?ӟ=B()9 4&0L.~$%KL(K~| _ѹ|h#B4xۍKx`Fi猆F?Ikm!qcQ%7 BY`x)uJRc|'g8w:{S@6s:.&R0 =y;zRJß[޲t_}&[i؋.YoKU!Ejg;*sf[)y@E ^G٠L^B6v@$9J@YJ@cp@hs;}jP `8V\Ib+~fժR9֘0r#?chEb5USб2wdЙBDEF(ՠ-4ƶu ra"nR͜>Y1U @2q{78asC^,yr\ģ'\kW!WbJCvFdIJjDS2B #l\S8IMJV@]e߳83lu2mu6ZYÿvW녙th6jLLX{wNgy=;wd#lm'Y,}T[ 6NsD:bj^tG)ǟ{Mo󙝇{.[Fxt+(M AElZET'12nF/"QlҜ02J+%Am D)C~l"oKm! dn[yǹOyԣ%!)RjV)5jK)kRJ8L]" i昭nil M3"݄"OZVc6F.[#7UPxSDq[kSkmbst!D@<ߪv:;f4ZG(9Α) /Í#$'eZbkAx>.v^ @^޶ֶMkmZ+1Ba1BITn+$:vgjT3p$(c'h3Mr&&4 HPiz6%t N;jZkT!Xp55afvVhCE4Mb"Ռ7N:!hk3\ Jr$PF;* 6|k1L5!D0?9uY>@1nRIiĒ:6/ʉ Ɉ2ֶhQ8r\g*h^1b!D`E`3U @=v޴V0M "I $ 2.f[ `uu{W[Bkg^ ,hkB$Z;֎$W|?Ԭ7pGjz}أO<,mFWu̥O]{l#3-R=И^ZI+~`6t kur>dZ֒8Ɋ3T̬\3*_;w.6?:p`f9zDgnĮKk)ԆfBXJ Zztx{n޿w5g1IT+dy&,#I0 |$[7 n[H^ѷΏN8%>Zq^sw~) !zvb(pd:H(4IyFRE IZQ=.TZpZ%^+x:򖛿!If)I>3\Gh)cTZ)cGQz@զ2rGKkkHuNIApn˅^R7a@ݡ.QuԽ];vuZ!T}jQNRT+UfXC 0&' B?LKRnsu^\yJ yv~1qFCbðpq1 !B@K)m!)W.|;}?QS 4,JV~ okwN33^zb8)q]Yx2a%b !TVTRqr)egi9#o$4Ea,Q<ׄQ\|+eƽ®z@$GIL/c&J~TN\^VmR1h!e/4OQ ]$q]_x^Dh1'{&o f@&`%4j.)!DF 4n)4ιJڻ0n^@eB'qa_|9?R5-oL Jkgѣ␰4`aaA}l6fxӾVn_LLy^8 +)," }MR]gU/mCCҀ/ \KylA[_/M-uǽv%Jy#҄Dv @tpPKQq?66*y |tKRRUVen~bՊ5.emmqAI}y`=Nm+_ϾNiJg3ޤW e)q+|%Ķ;^s1aIENDB`(uuay)textview/'pixbufs.c/* Pixbufs * * A GdkPixbuf represents an image, normally in RGB or RGBA format. * Pixbufs are normally used to load files from disk and perform * image scaling. * * This demo is not all that educational, but looks cool. It was written * by Extreme Pixbuf Hacker Federico Mena Quintero. It also shows * off how to use GtkDrawingArea to do a simple animation. * * Look at the Image demo for additional pixbuf usage examples. * */ #include #include #include #define BACKGROUND_NAME "/pixbufs/background.jpg" static const char *image_names[] = { "/pixbufs/apple-red.png", "/pixbufs/gnome-applets.png", "/pixbufs/gnome-calendar.png", "/pixbufs/gnome-foot.png", "/pixbufs/gnome-gmush.png", "/pixbufs/gnome-gimp.png", "/pixbufs/gnome-gsame.png", "/pixbufs/gnu-keys.png" }; #define N_IMAGES G_N_ELEMENTS (image_names) /* demo window */ static GtkWidget *window = NULL; /* Current frame */ static GdkPixbuf *frame; /* Background image */ static GdkPixbuf *background; static gint back_width, back_height; /* Images */ static GdkPixbuf *images[N_IMAGES]; /* Widgets */ static GtkWidget *da; /* Loads the images for the demo and returns whether the operation succeeded */ static gboolean load_pixbufs (GError **error) { gint i; if (background) return TRUE; /* already loaded earlier */ background = gdk_pixbuf_new_from_resource (BACKGROUND_NAME, error); if (!background) return FALSE; /* Note that "error" was filled with a GError */ back_width = gdk_pixbuf_get_width (background); back_height = gdk_pixbuf_get_height (background); for (i = 0; i < N_IMAGES; i++) { images[i] = gdk_pixbuf_new_from_resource (image_names[i], error); if (!images[i]) return FALSE; /* Note that "error" was filled with a GError */ } return TRUE; } /* Expose callback for the drawing area */ static gint draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data) { gdk_cairo_set_source_pixbuf (cr, frame, 0, 0); cairo_paint (cr); return TRUE; } #define CYCLE_TIME 3000000 /* 3 seconds */ static gint64 start_time; /* Handler to regenerate the frame */ static gboolean on_tick (GtkWidget *widget, GdkFrameClock *frame_clock, gpointer data) { gint64 current_time; double f; int i; double xmid, ymid; double radius; gdk_pixbuf_copy_area (background, 0, 0, back_width, back_height, frame, 0, 0); if (start_time == 0) start_time = gdk_frame_clock_get_frame_time (frame_clock); current_time = gdk_frame_clock_get_frame_time (frame_clock); f = ((current_time - start_time) % CYCLE_TIME) / (double)CYCLE_TIME; xmid = back_width / 2.0; ymid = back_height / 2.0; radius = MIN (xmid, ymid) / 2.0; for (i = 0; i < N_IMAGES; i++) { double ang; int xpos, ypos; int iw, ih; double r; GdkRectangle r1, r2, dest; double k; ang = 2.0 * G_PI * (double) i / N_IMAGES - f * 2.0 * G_PI; iw = gdk_pixbuf_get_width (images[i]); ih = gdk_pixbuf_get_height (images[i]); r = radius + (radius / 3.0) * sin (f * 2.0 * G_PI); xpos = floor (xmid + r * cos (ang) - iw / 2.0 + 0.5); ypos = floor (ymid + r * sin (ang) - ih / 2.0 + 0.5); k = (i & 1) ? sin (f * 2.0 * G_PI) : cos (f * 2.0 * G_PI); k = 2.0 * k * k; k = MAX (0.25, k); r1.x = xpos; r1.y = ypos; r1.width = iw * k; r1.height = ih * k; r2.x = 0; r2.y = 0; r2.width = back_width; r2.height = back_height; if (gdk_rectangle_intersect (&r1, &r2, &dest)) gdk_pixbuf_composite (images[i], frame, dest.x, dest.y, dest.width, dest.height, xpos, ypos, k, k, GDK_INTERP_NEAREST, ((i & 1) ? MAX (127, fabs (255 * sin (f * 2.0 * G_PI))) : MAX (127, fabs (255 * cos (f * 2.0 * G_PI))))); } gtk_widget_queue_draw (da); return G_SOURCE_CONTINUE; } GtkWidget * do_pixbufs (GtkWidget *do_widget) { if (!window) { GError *error; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Pixbufs"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); error = NULL; if (!load_pixbufs (&error)) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failed to load an image: %s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); } else { gtk_widget_set_size_request (window, back_width, back_height); frame = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, back_width, back_height); da = gtk_drawing_area_new (); g_signal_connect (da, "draw", G_CALLBACK (draw_cb), NULL); gtk_container_add (GTK_CONTAINER (window), da); gtk_widget_add_tick_callback (da, on_tick, NULL, NULL); } } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; g_object_unref (frame); } return window; } (uuay)reset.css/* @import this colorsheet to get the default values for every property. * This is useful when writing special CSS tests that should not be * inluenced by themes - not even the default ones. * Keep in mind that the output will be very ugly and not look like * anything GTK. * Also, when adding new style properties, please add them here. */ * { color: inherit; font-size: inherit; background-color: initial; font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; text-shadow: inherit; icon-shadow: inherit; box-shadow: initial; margin-top: initial; margin-left: initial; margin-bottom: initial; margin-right: initial; padding-top: initial; padding-left: initial; padding-bottom: initial; padding-right: initial; border-top-style: initial; border-top-width: initial; border-left-style: initial; border-left-width: initial; border-bottom-style: initial; border-bottom-width: initial; border-right-style: initial; border-right-width: initial; border-top-left-radius: initial; border-top-right-radius: initial; border-bottom-right-radius: initial; border-bottom-left-radius: initial; outline-style: initial; outline-width: initial; outline-offset: initial; background-clip: initial; background-origin: initial; background-size: initial; background-position: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: initial; outline-color: initial; background-repeat: initial; background-image: initial; border-image-source: initial; border-image-repeat: initial; border-image-slice: initial; border-image-width: initial; transition-property: initial; transition-duration: initial; transition-timing-function: initial; transition-delay: initial; engine: initial; gtk-key-bindings: initial; -GtkWidget-focus-line-width: 0; -GtkWidget-focus-padding: 0; -GtkNotebook-initial-gap: 0; } (uuay)cssview.css/* Make the text editor has a nice style */ .view { color: #2e3436; font: Monospace; background-color: alpha(white, 0.30); } .view:selected { color: white; background-color: #4a90d9; } .scrollbar.trough, .scrollbars-junction { background-color: alpha(white, 0.80); } .scrollbar.slider { border-width: 3px; border-style: solid; border-radius: 10px; border-color: transparent; background-clip: padding-box; background-color: #999; } .scrollbar.slider:prelight { background-color: #555; } .pane-separator { background-color: alpha(white, 0.80); background-image: linear-gradient(transparent, transparent 1px, #999 1px, #999 4px, transparent 4px); background-size: 40px auto; background-repeat: no-repeat; background-position: center; } .pane-separator:prelight { background-image: linear-gradient(transparent, transparent 1px, #555 1px, #555 4px, transparent 4px); } (uuay)pixbufs/bV /MGrflist_store.c*/* Tree View/List Store * * The GtkListStore is used to store data in list form, to be used * later on by a GtkTreeView to display it. This demo builds a * simple GtkListStore and displays it. * */ #include static GtkWidget *window = NULL; static GtkTreeModel *model = NULL; static guint timeout = 0; typedef struct { const gboolean fixed; const guint number; const gchar *severity; const gchar *description; } Bug; enum { COLUMN_FIXED, COLUMN_NUMBER, COLUMN_SEVERITY, COLUMN_DESCRIPTION, COLUMN_PULSE, COLUMN_ICON, COLUMN_ACTIVE, COLUMN_SENSITIVE, NUM_COLUMNS }; static Bug data[] = { { FALSE, 60482, "Normal", "scrollable notebooks and hidden tabs" }, { FALSE, 60620, "Critical", "gdk_window_clear_area (gdkwindow-win32.c) is not thread-safe" }, { FALSE, 50214, "Major", "Xft support does not clean up correctly" }, { TRUE, 52877, "Major", "GtkFileSelection needs a refresh method. " }, { FALSE, 56070, "Normal", "Can't click button after setting in sensitive" }, { TRUE, 56355, "Normal", "GtkLabel - Not all changes propagate correctly" }, { FALSE, 50055, "Normal", "Rework width/height computations for TreeView" }, { FALSE, 58278, "Normal", "gtk_dialog_set_response_sensitive () doesn't work" }, { FALSE, 55767, "Normal", "Getters for all setters" }, { FALSE, 56925, "Normal", "Gtkcalender size" }, { FALSE, 56221, "Normal", "Selectable label needs right-click copy menu" }, { TRUE, 50939, "Normal", "Add shift clicking to GtkTextView" }, { FALSE, 6112, "Enhancement","netscape-like collapsable toolbars" }, { FALSE, 1, "Normal", "First bug :=)" }, }; static gboolean spinner_timeout (gpointer data) { GtkTreeIter iter; guint pulse; if (model == NULL) return G_SOURCE_REMOVE; gtk_tree_model_get_iter_first (model, &iter); gtk_tree_model_get (model, &iter, COLUMN_PULSE, &pulse, -1); if (pulse == G_MAXUINT) pulse = 0; else pulse++; gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_PULSE, pulse, COLUMN_ACTIVE, TRUE, -1); return G_SOURCE_CONTINUE; } static GtkTreeModel * create_model (void) { gint i = 0; GtkListStore *store; GtkTreeIter iter; /* create list store */ store = gtk_list_store_new (NUM_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); /* add data to the list store */ for (i = 0; i < G_N_ELEMENTS (data); i++) { gchar *icon_name; gboolean sensitive; if (i == 1 || i == 3) icon_name = "battery-caution-charging-symbolic"; else icon_name = NULL; if (i == 3) sensitive = FALSE; else sensitive = TRUE; gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, COLUMN_FIXED, data[i].fixed, COLUMN_NUMBER, data[i].number, COLUMN_SEVERITY, data[i].severity, COLUMN_DESCRIPTION, data[i].description, COLUMN_PULSE, 0, COLUMN_ICON, icon_name, COLUMN_ACTIVE, FALSE, COLUMN_SENSITIVE, sensitive, -1); } return GTK_TREE_MODEL (store); } static void fixed_toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreeIter iter; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); gboolean fixed; /* get toggled iter */ gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, COLUMN_FIXED, &fixed, -1); /* do something with the value */ fixed ^= 1; /* set new value */ gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_FIXED, fixed, -1); /* clean up */ gtk_tree_path_free (path); } static void add_columns (GtkTreeView *treeview) { GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeModel *model = gtk_tree_view_get_model (treeview); /* column for fixed toggles */ renderer = gtk_cell_renderer_toggle_new (); g_signal_connect (renderer, "toggled", G_CALLBACK (fixed_toggled), model); column = gtk_tree_view_column_new_with_attributes ("Fixed?", renderer, "active", COLUMN_FIXED, NULL); /* set this column to a fixed sizing (of 50 pixels) */ gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_append_column (treeview, column); /* column for bug numbers */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("Bug number", renderer, "text", COLUMN_NUMBER, NULL); gtk_tree_view_column_set_sort_column_id (column, COLUMN_NUMBER); gtk_tree_view_append_column (treeview, column); /* column for severities */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("Severity", renderer, "text", COLUMN_SEVERITY, NULL); gtk_tree_view_column_set_sort_column_id (column, COLUMN_SEVERITY); gtk_tree_view_append_column (treeview, column); /* column for description */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("Description", renderer, "text", COLUMN_DESCRIPTION, NULL); gtk_tree_view_column_set_sort_column_id (column, COLUMN_DESCRIPTION); gtk_tree_view_append_column (treeview, column); /* column for spinner */ renderer = gtk_cell_renderer_spinner_new (); column = gtk_tree_view_column_new_with_attributes ("Spinning", renderer, "pulse", COLUMN_PULSE, "active", COLUMN_ACTIVE, NULL); gtk_tree_view_column_set_sort_column_id (column, COLUMN_PULSE); gtk_tree_view_append_column (treeview, column); /* column for symbolic icon */ renderer = gtk_cell_renderer_pixbuf_new (); column = gtk_tree_view_column_new_with_attributes ("Symbolic icon", renderer, "icon-name", COLUMN_ICON, "sensitive", COLUMN_SENSITIVE, NULL); gtk_tree_view_column_set_sort_column_id (column, COLUMN_ICON); gtk_tree_view_append_column (treeview, column); } static gboolean window_closed (GtkWidget *widget, GdkEvent *event, gpointer user_data) { model = NULL; window = NULL; if (timeout != 0) { g_source_remove (timeout); timeout = 0; } return FALSE; } GtkWidget * do_list_store (GtkWidget *do_widget) { if (!window) { GtkWidget *vbox; GtkWidget *label; GtkWidget *sw; GtkWidget *treeview; /* create window, etc */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "GtkListStore demo"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 8); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_add (GTK_CONTAINER (window), vbox); label = gtk_label_new ("This is the bug list (note: not based on real data, it would be nice to have a nice ODBC interface to bugzilla or so, though)."); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); /* create tree model */ model = create_model (); /* create tree view */ treeview = gtk_tree_view_new_with_model (model); gtk_tree_view_set_search_column (GTK_TREE_VIEW (treeview), COLUMN_DESCRIPTION); g_object_unref (model); gtk_container_add (GTK_CONTAINER (sw), treeview); /* add columns to the tree view */ add_columns (GTK_TREE_VIEW (treeview)); /* finish & show */ gtk_window_set_default_size (GTK_WINDOW (window), 280, 250); g_signal_connect (window, "delete-event", G_CALLBACK (window_closed), NULL); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); if (timeout == 0) { /* FIXME this should use the animation-duration instead */ timeout = g_timeout_add (80, spinner_timeout, NULL); } } else { gtk_widget_destroy (window); window = NULL; if (timeout != 0) { g_source_remove (timeout); timeout = 0; } } return window; } (uuay)gnu-keys.png PNG  IHDR00WgAMA aIDATxkt]e゙[rr-M&i4IoŦC;DgPQTTguleP^Ҧ-msk~9Im}y|)̗:~yy}.qK\2C^Fd"弋Kt᪵UrL+ͷRu-YVV^zU+W (=ݽo `L-(`Fy9&NaYV왳vmۏ:/L/zefB01o2jy_8Pϱup H)B0qm_[ ȿV;@V(\{^fr(6 IG{x3cKս( *H$|)T4h?]ȂeneY9kjx4Jbd+W^y%լhB L  [|aIl2F~~+&OG @Uө|A< _ 8nSOn$I1UfV^~<`wn~ t4'8͞-ZXYyށT{߽ۿ_qǎR\RȬJ Il[8y%e^UQ5Mc_EVvϕxK"yn /﮻iK,554k>+cY=\mOw0 xmO~/P Be``}r!ʊ)- 3blя[i%hF*$LcuTcP⒊;>u{)j0%yyB` p㉸퇿]WWWwBǁQ`rJn'7†jB4E4Lo߫4kp$/w]MP5b$q|tb嗱kҲr=elt_="GeG7tM0M'߽;~rt]G"IA4¡0hhlzFF 3:$ccc$IFc8z9zG BB&Mرc<.馛)/+W||f9pEQP <.ӿxb&8ҊoRinm&77Jj-_Ƽy9s4gΝ"JY8R"}qʦa&j`A4Mlذk\k  ԾZolDUUt]_}}RL7^L@G>2EUPu.+ZJBz{zof$6JEE% ;.' ˪g΂HC "Yz@0H__/CA=ơCعs'K,acض͑#u}ctL%Oxɼ@QQQov(G&]]]]Pe1HSPX+0LښhhlॗvHũcH.iiiq,*QUΞսGbYAx|;w$;7p(*斪yϝxd0 x _bf/H_y_|'<9Bcǎ8y3˙;gPs &pl}G3RK v5V>3tZ͆O~7^/f(=>.\wI àa&M/}TM#;+#?EQQ*̟;˗zΎNod*Iii2~n}.**gdh+HOjo.a 7\rY"&6>55<.<ץ-?žp7QZVi o=B:==Xu,KpUܱAR{`?wE 'OP6ן"#QtM! 12CʛKco}wc) R0u #%'4 U?>D"Yy_?? ,kf:ōm[+k&pmTTT,]=[(x3SE_8R88I*"@+_FW\=|v4 ,\W M -郵ugsrm7d mݽ횪BP@(hB;u…5?=x'uyjS_kOYpݡ:+>6M>۾d;O5;{}#6//oY''UTTT3L'lK}ACRJ%A kBg[ԌT4hzo>JhBkVjUSÙL DUU;?vTaYvȡc=gN7=='yiT]m-mV 3KhqCowL&0 NCDz.L\Τ/y۽e˗rsM5.b$ Dcx}k+V.Ng{cC#4y/x'QV]ʫYZZꍌ Y{Q~WRnaswkwD"&w?K\{;$誂IENDB`(uuay)reset.css/* @import this colorsheet to get the default values for every property. * This is useful when writing special CSS tests that should not be * inluenced by themes - not even the default ones. * Keep in mind that the output will be very ugly and not look like * anything GTK. * Also, when adding new style properties, please add them here. */ * { color: inherit; font-size: inherit; background-color: initial; font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; text-shadow: inherit; icon-shadow: inherit; box-shadow: initial; margin-top: initial; margin-left: initial; margin-bottom: initial; margin-right: initial; padding-top: initial; padding-left: initial; padding-bottom: initial; padding-right: initial; border-top-style: initial; border-top-width: initial; border-left-style: initial; border-left-width: initial; border-bottom-style: initial; border-bottom-width: initial; border-right-style: initial; border-right-width: initial; border-top-left-radius: initial; border-top-right-radius: initial; border-bottom-right-radius: initial; border-bottom-left-radius: initial; outline-style: initial; outline-width: initial; outline-offset: initial; background-clip: initial; background-origin: initial; background-size: initial; background-position: initial; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: initial; outline-color: initial; background-repeat: initial; background-image: initial; border-image-source: initial; border-image-repeat: initial; border-image-slice: initial; border-image-width: initial; transition-property: initial; transition-duration: initial; transition-timing-function: initial; transition-delay: initial; engine: initial; gtk-key-bindings: initial; -GtkWidget-focus-line-width: 0; -GtkWidget-focus-padding: 0; -GtkNotebook-initial-gap: 0; } (uuay)popover/glarea/Dgnome-gimp.pngR PNG  IHDR00WgAMA1_ IDATxYk]u>{9w޶gllc#ǯ_Qܹu7up,+ k, !]?w @u ܴry=>ّ/$~IDhxm~Gȱ=fR.w'{ˡC"_"#acv*KDv ܂VK6Wztl0[; . 9<ckGn΍lR;y介~ &/xԙ ~w:$\":An(EFW~#AcR)ĭ4\OKs{&R@*=tӪW|B$BDp-xgp7zK~RH ѢrW\OBy񟟞Ǔ4++ݟ~xWQ,Z`olRZ2-v hJC g@ 0`O\!8 3v3X 0zE_s]^fvy\o<ЦMz^0o-[~ c8ȤDIdR!,j9ic_[6#)fݼaÆm޼!!Dqbb?=ȶKF|/b``{ޏ5kǐJǖ-[ƪP*VR1Z[Jz3WpdTMdldS*wx===m۶GǽfIo&q<?ժxWh~~vi^{m?8رcꫯBJVR R*( h֒Ʊ='20I.gN;HCyQyBvr''=Z vڅF3'`Fm<3={e&$A;IIJ({f0$GV (mb 0V:@rhrrB,_ѣGP,šs@>q߃a֭\SOhnRf}uՙ0l#٩T*-uM08O*ܝ=== fFehZ(J(9ϝ93'0n~i(RJT 8{}Π^  &VfX &fgseג3|߇Ð(Bp hPڇo}+ex~ԅSHJkZm IښU@BfÜ_Lkqaya!mU'mhـ=`6`f,? Vl$j ApY)rԇs1ro}c}ɞi4˲waE{{zz0 Q.GbCZITPy>=erJkLL]TIq3|fnqTux+ֺZT (ðJa I\CYV AAlIHc뚶p2z y5@4<5}nב˦pM?qx^R{dyZIΜG&SHrk@+ĄnNF sqnb}3VZZkRv;[P!`if[`f9;;{xHISiFJ* CiTJ0;W<.^Z@d-(B/Stz@n/5̘jg<9덎]` ۼqL |,H6ՆBT,T*7BO="Sgr0}SK0H3zjSU^uWu~NLW̧0iORIENDB`(uuay)destroyappmenu/ui/main.uiThe GTK+ Team3.16.6%s, Running against GTK+ %d.%d.%dAbout GTK+ Demotitlegtk3-demologo-icon-nameauthorsProgram to demonstrate GTK+ widgetscommentshttp://www.gtk.orgwebsitelicense-type(C) 1997-2013 The GTK+ TeamcopyrightversionGTK+ Demoprogram-namestatic if */comment/*preprocessorfunctiontypecontrolstring/right-marginleft-marginDon't know how to display resource '%s' tab-expandpixels-below-linesSans 18fontmonospacesourceDodgerBlueforegroundForestGreenweightRosyBrownpurpleburlywood4styleDarkGoldenrod4/sources/Cannot open source for %s: %s pixels-above-linestop-marginbottom-marginbytesmain.cstrlen (p) >= q - pstrlen (p) >= len%swindownotebookinfo-textviewsource-textviewheaderbartreeviewrow-activatedtreeview-selectionchanged../../modules/input/immodules.cacheGTK_IM_MODULE_FILEorg.gtk.Demostartupactivaterunaboutquitadd_data_tabload_file while else do for ?:return goto wMzMzMzMzMzMzMzMzMconst voidgint int char gchar gfloatfloatdoublegint8gint16gint32guintguint8guint16guint32gucharglonggbooleangshortgushortgulonggdoublegldoublegpointerNULLGListGSListFALSETRUEFILE GtkColorSelection GtkWidget GtkButton GdkColor GdkRectangle GdkEventExpose GdkGC GdkPixbufLoader GdkPixbuf GErrorsize_tGtkAboutDialog GtkAction GtkActionEntry GtkRadioActionEntry GtkIconFactory GtkIconSet GtkTextBuffer GtkStatusbar GtkTextIter GtkTextMark GdkEventWindowState GtkActionGroup GtkUIManager GtkRadioAction GtkActionClass GtkToggleActionEntry GtkAssistant GtkBuilder GtkSizeGroup GtkTreeModel GtkTreeSelection GdkDisplay GdkScreen GdkWindow GdkEventButton GdkCursor GtkTreeIter GtkTreeViewColumn GdkDisplayManager GtkClipboard GtkIconSize GtkImage GdkDragContext GtkSelectionData GtkDialog GtkMenuItem GtkListStore GtkCellLayout GtkCellRenderer GtkTreePath GtkTreeStore GtkEntry GtkEditable GtkEditableInterface GdkPixmap GdkEventConfigure GdkEventMotion GdkModifierType GtkEntryCompletion GtkToolItem GDir GtkIconView GtkCellRendererText GtkContainer GtkAccelGroup GtkPaned GtkPrintOperation GtkPrintContext cairo_t PangoLayout PangoFontDescription PangoRenderer PangoMatrix PangoContext PangoLayout GtkTable GtkToggleButton GString GtkTreeView GtkTextTag GdkEvent GdkEventKey GtkTextView GdkEventVisibility GdkBitmap GtkTextChildAnchor GArray GtkCellEditable GtkCellRendererToggle wMzMzMzMzMzM{M {M{M{M!{M'{M.{M5{M;{MB{MJ{MR{MY{M_{Mh{Mo{Mw{M~{M{M{M{M{M{M{M{M{M{M{M{M{M{M{M |M|M$|M/|M6|M=|MM|MX|Mh|M}|M|M|M|M|M|M|M|M|M}M}M#}M9}MG}MS}Ma}Mo}M}M}M}M}M}M}M}M}M}M}M ~M~M&~M8~MC~MP~M^~Mm~M~~M~M~M~M~M~M~M~M~MMM&M,M9MNM\MkMuMMMMMMMMMMM}M!M.M:MDMQM^MrM}MMMMapplicationApplication Classapplication.cassistantAssistantassistant.cbuilderBuilderbuilder.cbutton_boxButton Boxesbutton_box.cCSS ThemingchangedisplayChange Displaychangedisplay.cclipboardClipboardclipboard.ccolorselColor Choosercolorsel.ccomboboxCombo Boxescombobox.cdialogDialog and Message Boxesdialog.cdrawingareaDrawing Areadrawingarea.cEntryevent_axesEvent Axesevent_axes.cexpanderExpanderexpander.cflowboxFlow Boxflowbox.cgesturesGesturesgestures.cHeader Barheaderbar.cIcon ViewimagesImagesimages.cinfobarInfo barinfobar.clinksLinkslinks.clistboxList Boxlistbox.cmenusMenusmenus.cOffscreen WindowsglareaOpenGL Areaglarea.coverlayOverlayoverlay.cpanesPaned Widgetspanes.cpickersPickerspickers.cpixbufsPixbufspixbufs.cpopoverPopoverspopover.cprintingPrintingprinting.crevealerRevealerrevealer.crotated_textRotated Textrotated_text.csizegroupSize Groupssizegroup.cspinnerSpinnerspinner.cstackStackstack.csidebarStack Sidebarsidebar.cText WidgettoolpaletteTool Palettetoolpalette.ctransparentTransparencytransparent.cTree Viewoffscreen_windowRotated Buttonoffscreen_window.coffscreen_window2Effectsoffscreen_window2.ciconviewIcon View Basicsiconview.ciconview_editEditing and Drag-and-Dropiconview_edit.chypertextHypertexthypertext.ctextviewMultiple Viewstextview.ctextscrollAutomatic Scrollingtextscroll.centry_bufferEntry Bufferentry_buffer.centry_completionEntry Completionentry_completion.csearch_entrySearch Entrysearch_entry.csearch_entry2Delayed Search Entrysearch_entry2.ceditable_cellsEditable Cellseditable_cells.clist_storeList Storelist_store.ctree_storeTree Storetree_store.ccss_accordionCSS Accordioncss_accordion.ccss_basicsCSS Basicscss_basics.ccss_multiplebgsMultiple Backgroundscss_multiplebgs.ccss_pixbufsAnimated Backgroundscss_pixbufs.ccss_shadowsShadowscss_shadows.ctheming_style_classesStyle Classestheming_style_classes.cMMAUnknown error_matherr(): %s in %s(%g, %g) (retval=%g) Argument domain error (DOMAIN)Argument singularity (SIGN)Overflow range error (OVERFLOW)The result is too small to be represented (UNDERFLOW)Total loss of significance (TLOSS)Partial loss of significance (PLOSS)HMgMMM܋MMMingw-w64 runtime failure: Address %p has no image-section VirtualQuery failed for %d bytes at address %p VirtualProtect failed with code 0x%x Unknown pseudo relocation protocol version %d. Unknown pseudo relocation bit size %d. cossinGCC: (GNU) 4.9.1GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.2GCC: (GNU) 4.9.2GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.1GCC: (GNU) 4.9.2U ~~(  0H`|4Ld$<XpX#0@  @ `  0`E@}+-` 5]pP.p4;DKpO0T`Y^@dlps{~ @P@@0P@0@ '* 17P=BFPJ MfQgprP2 @`@+@C 00Q   " < T q ϵ   : T n Ѷ  8 R p · ܷ  3 F U \ c j q x  ø ظ  # 6 E W f s ~ ¹ ӹ    + = M a o { º Ӻ ݺ  ' < G P [ f q } Ż һ ݻ  ( 7 E S ] r ϼ ! + 0 D K W l {   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}gtk3-demo.exe_nm__epoxy_glAttachShader_nm__epoxy_glBindBuffer_nm__epoxy_glBindVertexArray_nm__epoxy_glBufferData_nm__epoxy_glClear_nm__epoxy_glClearColor_nm__epoxy_glCompileShader_nm__epoxy_glCreateProgram_nm__epoxy_glCreateShader_nm__epoxy_glDeleteBuffers_nm__epoxy_glDeleteProgram_nm__epoxy_glDeleteShader_nm__epoxy_glDetachShader_nm__epoxy_glDisableVertexAttribArray_nm__epoxy_glDrawArrays_nm__epoxy_glEnableVertexAttribArray_nm__epoxy_glFlush_nm__epoxy_glGenBuffers_nm__epoxy_glGenVertexArrays_nm__epoxy_glGetProgramInfoLog_nm__epoxy_glGetProgramiv_nm__epoxy_glGetShaderInfoLog_nm__epoxy_glGetShaderiv_nm__epoxy_glGetUniformLocation_nm__epoxy_glLinkProgram_nm__epoxy_glShaderSource_nm__epoxy_glUniformMatrix4fv_nm__epoxy_glUseProgram_nm__epoxy_glVertexAttribPointer_nm__g_ascii_tableabout_activatechild0child1child2child3child4child5colorscopy_button_clickedcreate_combo_boxcreate_completion_modelcreate_display_framecreate_fancy_attr_list_for_layoutcreate_glarea_windowcreate_pane_optionscreate_search_menucreate_toolbardemo_get_resourcedo_applicationdo_assistantdo_builderdo_button_boxdo_changedisplaydo_clipboarddo_colorseldo_comboboxdo_css_accordiondo_css_basicsdo_css_multiplebgsdo_css_pixbufsdo_css_shadowsdo_dialogdo_drawingareado_editable_cellsdo_entry_bufferdo_entry_completiondo_event_axesdo_expanderdo_flowboxdo_gesturesdo_glareado_headerbardo_hypertextdo_iconviewdo_iconview_editdo_imagesdo_infobardo_linksdo_list_storedo_listboxdo_menusdo_offscreen_windowdo_offscreen_window2do_overlaydo_panesdo_pickersdo_pixbufsdo_popoverdo_printingdo_revealerdo_rotated_textdo_search_entrydo_search_entry2do_sidebardo_sizegroupdo_spinnerdo_stackdo_textscrolldo_textviewdo_theming_style_classesdo_toolpalettedo_transparentdo_tree_storedrag_data_getgtk_demosgtk_message_get_typegtk_message_row_get_typegtk_mirror_bin_get_typegtk_mirror_bin_newgtk_rotated_bin_get_typegtk_rotated_bin_newgtk_rotated_bin_set_anglehelp_activateleft_align_button_newload_filemainmask_entry_get_typeparentparse_charspaste_button_clickedpaste_receivedquit_activatetexttoggle_resizetoggle_shrinkup_button 8 x9 H:l D :0 ; d; 4 < T =@ = =  = > x >d  $ < \  ( D \  4 H X l < P h @ d  0 P d  < \ t  0 L l  ( D ` x  4 T x @ h  ( < \ x  4 X  0 T p  4 P l $ H ` p $ H ` x  ( < L l $ @ X x , H p  0 H h  8 X l  4 P h  0 P h  0 P t  < X t  ( L h | 8 X t  < h  8 X p  0 H ` t  < `  @ `  0 D X p  @ d  0 P | 0 L h 0Ll8Tp0Dd<\0Hh0Pl@h0Xx4Tp 0 P |      , X      0 L h      , H l     0 T x      (D\t(D\x (@Xt8Xt <Xx (@`t,Hht 0Dd|<`$4L`t$8Pp0DXp  8Pp$8Tp(Ld0H`|4Ld$<Xp , D X p      !$!D!l!!!!!!""@"\"x"""""#,#D#X#h#######$$,$D$T$h$|$$$$$$% %8%P%h%%%%%%%%&& &4&H&`&l&&&&&&&&'8'H'\'l'x''''''''(($(<(T(h(|(((((())0)@)P)d)t)))))) * *D*d*****++8+T+l+++++ ,0,P,l,,,,,- -D-\-x----- . .6.L.\.p....... /*/2/F/T/p////////// 000(040<0D0N0X0`0j0r0|00000000000000  $ < \  ( D \  4 H X l < P h @ d  0 P d  < \ t  0 L l  ( D ` x  4 T x @ h  ( < \ x  4 X  0 T p  4 P l $ H ` p $ H ` x  ( < L l $ @ X x , H p  0 H h  8 X l  4 P h  0 P h  0 P t  < X t  ( L h | 8 X t  < h  8 X p  0 H ` t  < `  @ `  0 D X p  @ d  0 P | 0 L h 0Ll8Tp0Dd<\0Hh0Pl@h0Xx4Tp 0 P |      , X      0 L h      , H l     0 T x      (D\t(D\x (@Xt8Xt <Xx (@`t,Hht 0Dd|<`$4L`t$8Pp0DXp  8Pp$8Tp(Ld0H`|4Ld$<Xp , D X p      !$!D!l!!!!!!""@"\"x"""""#,#D#X#h#######$$,$D$T$h$|$$$$$$% %8%P%h%%%%%%%%&& &4&H&`&l&&&&&&&&'8'H'\'l'x''''''''(($(<(T(h(|(((((())0)@)P)d)t)))))) * *D*d*****++8+T+l+++++ ,0,P,l,,,,,- -D-\-x----- . .6.L.\.p....... /*/2/F/T/p////////// 000(040<0D0N0X0`0j0r0|00000000000000-gtk_accel_group_newgtk_adjustment_get_valuegtk_adjustment_newgtk_app_chooser_button_newgtk_app_chooser_button_set_show_dialog_itemgtk_application_add_windowgtk_application_get_active_windowgtk_application_get_windowsgtk_application_newgtk_application_set_app_menugtk_assistant_append_pagegtk_assistant_commitgtk_assistant_get_current_pagegtk_assistant_get_n_pagesgtk_assistant_get_nth_pagegtk_assistant_new%gtk_assistant_set_page_complete(gtk_assistant_set_page_title)gtk_assistant_set_page_type-gtk_bin_get_childFgtk_box_newGgtk_box_pack_endHgtk_box_pack_startNgtk_box_set_homogeneousOgtk_box_set_spacing^gtk_builder_add_from_resourceagtk_builder_add_objects_from_resourcecgtk_builder_connect_signalsigtk_builder_get_objectogtk_builder_new|gtk_button_box_newgtk_button_box_set_layoutgtk_button_newgtk_button_new_with_labelgtk_button_new_with_mnemonicgtk_button_set_labelgtk_cairo_should_draw_windowgtk_calendar_new gtk_cell_layout_pack_start gtk_cell_layout_set_attributesgtk_cell_layout_set_cell_data_funcgtk_cell_renderer_combo_new*gtk_cell_renderer_pixbuf_new,gtk_cell_renderer_progress_new6gtk_cell_renderer_spinner_new;gtk_cell_renderer_text_newAgtk_cell_renderer_toggle_newKgtk_cell_view_newXgtk_check_button_new_with_labelYgtk_check_button_new_with_mnemonichgtk_clipboard_getrgtk_clipboard_request_texttgtk_clipboard_set_can_storeugtk_clipboard_set_imagevgtk_clipboard_set_text{gtk_clipboard_wait_for_imagegtk_color_button_newgtk_color_chooser_dialog_newgtk_color_chooser_get_rgbagtk_color_chooser_set_rgbagtk_combo_box_get_active_itergtk_combo_box_get_modelgtk_combo_box_new_with_modelgtk_combo_box_set_activegtk_combo_box_set_active_itergtk_combo_box_set_row_separator_funcgtk_combo_box_text_appendgtk_combo_box_text_append_textgtk_combo_box_text_newgtk_combo_box_text_new_with_entrygtk_container_addgtk_container_child_getgtk_container_child_setgtk_container_forallgtk_container_get_border_widthgtk_container_get_children gtk_container_get_type gtk_container_propagate_drawgtk_container_removegtk_container_set_border_widthgtk_css_provider_error_quarkgtk_css_provider_load_from_data"gtk_css_provider_new$gtk_css_section_get_end_line%gtk_css_section_get_end_position)gtk_css_section_get_start_line*gtk_css_section_get_start_position9gtk_dialog_get_content_area=gtk_dialog_get_widget_for_response?gtk_dialog_new_with_buttonsAgtk_dialog_runDgtk_dialog_set_default_responseMgtk_drag_dest_add_image_targetsPgtk_drag_dest_find_targetSgtk_drag_dest_setXgtk_drag_finishYgtk_drag_get_dataZgtk_drag_get_source_widget`gtk_drag_set_icon_pixbufdgtk_drag_source_add_image_targetshgtk_drag_source_setrgtk_drawing_area_newwgtk_editable_get_chars{gtk_editable_get_typegtk_entry_buffer_newgtk_entry_completion_newgtk_entry_completion_set_modelgtk_entry_completion_set_text_columngtk_entry_get_icon_areagtk_entry_get_textgtk_entry_get_text_lengthgtk_entry_get_typegtk_entry_newgtk_entry_new_with_buffergtk_entry_progress_pulsegtk_entry_set_activates_defaultgtk_entry_set_attributesgtk_entry_set_completiongtk_entry_set_icon_from_icon_namegtk_entry_set_icon_tooltip_textgtk_entry_set_placeholder_textgtk_entry_set_progress_fractiongtk_entry_set_textgtk_entry_set_visibilitygtk_entry_set_width_charsgtk_event_box_newgtk_event_controller_set_propagation_phasegtk_expander_new%gtk_file_chooser_button_newgtk_flow_box_newgtk_flow_box_set_max_children_per_linegtk_flow_box_set_selection_modegtk_font_button_newgtk_frame_newgtk_frame_set_shadow_typegtk_gesture_is_recognizedgtk_gesture_long_press_newgtk_gesture_rotate_get_angle_deltagtk_gesture_rotate_newgtk_gesture_swipe_newgtk_gesture_zoom_get_scale_deltagtk_gesture_zoom_newgtk_get_current_eventgtk_get_current_event_devicegtk_get_major_versiongtk_get_micro_version gtk_get_minor_version%gtk_gl_area_get_error+gtk_gl_area_make_current,gtk_gl_area_newAgtk_grid_attachNgtk_grid_newSgtk_grid_set_column_spacingVgtk_grid_set_row_spacingkgtk_header_bar_newlgtk_header_bar_pack_endmgtk_header_bar_pack_startpgtk_header_bar_set_has_subtitleqgtk_header_bar_set_show_close_buttonsgtk_header_bar_set_titlegtk_icon_size_lookupgtk_icon_theme_get_defaultgtk_icon_theme_get_for_screengtk_icon_theme_list_contextsgtk_icon_theme_list_iconsgtk_icon_theme_load_icongtk_icon_view_get_modelgtk_icon_view_new_with_modelgtk_icon_view_set_columnsgtk_icon_view_set_item_orientation gtk_icon_view_set_pixbuf_column!gtk_icon_view_set_reorderable#gtk_icon_view_set_selection_mode%gtk_icon_view_set_text_columnGgtk_image_get_animationIgtk_image_get_icon_nameKgtk_image_get_pixbufNgtk_image_get_storage_type_gtk_image_new_from_gicon`gtk_image_new_from_icon_namebgtk_image_new_from_pixbufcgtk_image_new_from_resourceigtk_image_set_from_icon_namekgtk_image_set_from_pixbufogtk_image_set_pixel_sizeugtk_info_bar_get_content_areaygtk_info_bar_newzgtk_info_bar_new_with_buttons}gtk_info_bar_set_message_typegtk_info_bar_set_show_close_buttongtk_label_get_layoutgtk_label_newgtk_label_new_with_mnemonicgtk_label_set_anglegtk_label_set_attributesgtk_label_set_markupgtk_label_set_mnemonic_widgetgtk_label_set_textgtk_label_set_use_markupgtk_label_set_xaligngtk_list_box_newgtk_list_box_row_get_type gtk_list_box_set_activate_on_single_clickgtk_list_box_set_sort_funcgtk_list_store_appendgtk_list_store_cleargtk_list_store_insertgtk_list_store_insert_aftergtk_list_store_new"gtk_list_store_remove$gtk_list_store_set7gtk_menu_attach_to_widget;gtk_menu_bar_newegtk_menu_item_new_with_labelfgtk_menu_item_new_with_mnemoniclgtk_menu_item_set_submenupgtk_menu_newsgtk_menu_popupgtk_menu_shell_appendgtk_message_dialog_format_secondary_textgtk_message_dialog_newgtk_message_dialog_new_with_markupgtk_notebook_append_pagegtk_notebook_get_n_pagesgtk_notebook_newgtk_notebook_remove_pagegtk_notebook_set_current_pagegtk_notebook_set_show_bordergtk_notebook_set_show_tabsgtk_orientable_get_orientationgtk_orientable_set_orientationgtk_overlay_add_overlaygtk_overlay_new/gtk_paned_add10gtk_paned_add21gtk_paned_get_child12gtk_paned_get_child27gtk_paned_new8gtk_paned_pack19gtk_paned_pack2wgtk_popover_newygtk_popover_set_modalzgtk_popover_set_pointing_to{gtk_popover_set_positiongtk_print_context_create_pango_layoutgtk_print_context_get_cairo_contextgtk_print_context_get_heightgtk_print_context_get_widthgtk_print_operation_newgtk_print_operation_rungtk_print_operation_set_embed_page_setupgtk_print_operation_set_n_pagesgtk_print_operation_set_print_settingsgtk_print_operation_set_unitgtk_print_operation_set_use_full_pagegtk_print_settings_newgtk_print_settings_set gtk_progress_bar_get_fraction gtk_progress_bar_new gtk_progress_bar_set_fraction- gtk_radio_menu_item_get_group1 gtk_radio_menu_item_new_with_label6 gtk_radio_tool_button_get_group8 gtk_radio_tool_button_newL gtk_range_get_valueT gtk_range_set_range gtk_render_background gtk_render_frame gtk_revealer_get_child_revealed gtk_revealer_get_reveal_child gtk_revealer_set_reveal_child gtk_scale_new gtk_scale_new_with_range! gtk_scale_set_draw_valueB gtk_scrolled_window_newJ gtk_scrolled_window_set_policyK gtk_scrolled_window_set_shadow_typeN gtk_search_bar_connect_entryR gtk_search_bar_handle_eventS gtk_search_bar_newU gtk_search_bar_set_show_close_buttonX gtk_search_entry_newd gtk_selection_data_get_lengthe gtk_selection_data_get_pixbufm gtk_selection_data_set_pixbuf{ gtk_separator_menu_item_new| gtk_separator_new gtk_show_about_dialog gtk_size_group_add_widget gtk_size_group_new gtk_size_group_set_mode gtk_spinner_new gtk_spinner_start gtk_spinner_stop gtk_stack_add_named gtk_stack_new gtk_stack_set_transition_type gtk_stack_sidebar_new gtk_stack_sidebar_set_stack gtk_style_context_add_class gtk_style_context_add_provider; gtk_style_context_reset_widgets? gtk_style_context_set_background gtk_text_buffer_apply_tag_by_name gtk_text_buffer_create_child_anchor gtk_text_buffer_create_mark gtk_text_buffer_create_tag gtk_text_buffer_get_bounds gtk_text_buffer_get_end_iter gtk_text_buffer_get_insert gtk_text_buffer_get_iter_at_line_index gtk_text_buffer_get_iter_at_mark gtk_text_buffer_get_iter_at_offset gtk_text_buffer_get_mark gtk_text_buffer_get_selection_bounds gtk_text_buffer_get_start_iter gtk_text_buffer_get_text gtk_text_buffer_insert gtk_text_buffer_insert_pixbuf gtk_text_buffer_insert_with_tags gtk_text_buffer_insert_with_tags_by_name gtk_text_buffer_move_mark gtk_text_buffer_new gtk_text_buffer_remove_all_tags gtk_text_buffer_set_text gtk_text_iter_backward_chars$ gtk_text_iter_backward_word_start0 gtk_text_iter_forward_char1 gtk_text_iter_forward_chars5 gtk_text_iter_forward_lineC gtk_text_iter_forward_word_endK gtk_text_iter_get_child_anchorQ gtk_text_iter_get_offsetT gtk_text_iter_get_tagsU gtk_text_iter_get_textf gtk_text_iter_set_line_offset gtk_text_view_add_child_at_anchor gtk_text_view_get_buffer gtk_text_view_get_iter_at_location gtk_text_view_get_window gtk_text_view_new gtk_text_view_new_with_buffer gtk_text_view_scroll_mark_onscreen gtk_text_view_set_buffer gtk_text_view_set_cursor_visible gtk_text_view_set_editable gtk_text_view_set_pixels_above_lines gtk_text_view_set_pixels_below_lines gtk_text_view_set_wrap_mode gtk_text_view_window_to_buffer_coords gtk_toggle_button_get_active! gtk_toggle_button_new_with_label" gtk_toggle_button_new_with_mnemonic# gtk_toggle_button_set_active, gtk_tool_button_get_icon_name3 gtk_tool_button_new5 gtk_tool_button_set_icon_name7 gtk_tool_button_set_label: gtk_tool_button_set_use_underlineG gtk_tool_item_get_typeL gtk_tool_item_group_get_drop_itemO gtk_tool_item_group_get_item_positionT gtk_tool_item_group_get_typeU gtk_tool_item_group_insertV gtk_tool_item_group_newZ gtk_tool_item_group_set_item_position\ gtk_tool_item_group_set_label_widget] gtk_tool_item_newb gtk_tool_item_set_is_importante gtk_tool_item_set_tooltip_textg gtk_tool_item_set_visible_horizontalh gtk_tool_item_set_visible_verticalj gtk_tool_palette_add_drag_destl gtk_tool_palette_get_drag_itemo gtk_tool_palette_get_drop_groups gtk_tool_palette_get_group_positionw gtk_tool_palette_get_typey gtk_tool_palette_new} gtk_tool_palette_set_group_position gtk_tool_palette_set_style gtk_tool_palette_unset_style gtk_toolbar_insert gtk_toolbar_new gtk_tree_model_get gtk_tree_model_get_iter gtk_tree_model_get_iter_first gtk_tree_model_get_path gtk_tree_model_iter_has_child gtk_tree_model_iter_next gtk_tree_path_free gtk_tree_path_get_indices gtk_tree_path_new_from_indices gtk_tree_path_new_from_string gtk_tree_selection_get_selectedgtk_tree_selection_select_itergtk_tree_selection_set_mode"gtk_tree_sortable_set_default_sort_func#gtk_tree_sortable_set_sort_column_id&gtk_tree_store_append3gtk_tree_store_new8gtk_tree_store_set?gtk_tree_view_append_column@gtk_tree_view_collapse_allbgtk_tree_view_column_new_with_attributesigtk_tree_view_column_set_clickablekgtk_tree_view_column_set_fixed_widthpgtk_tree_view_column_set_sizingqgtk_tree_view_column_set_sort_column_idgtk_tree_view_expand_allgtk_tree_view_get_columngtk_tree_view_get_cursorgtk_tree_view_get_modelgtk_tree_view_get_selectiongtk_tree_view_insert_column_with_attributesgtk_tree_view_newgtk_tree_view_new_with_modelgtk_tree_view_set_cursorgtk_tree_view_set_headers_visiblegtk_tree_view_set_modelgtk_tree_view_set_search_columngtk_widget_add_eventsgtk_widget_add_tick_callbackgtk_widget_class_bind_template_callback_fullgtk_widget_class_bind_template_child_full"gtk_widget_class_set_template_from_resource$gtk_widget_create_pango_context%gtk_widget_create_pango_layout&gtk_widget_destroy'gtk_widget_destroyed1gtk_widget_get_allocated_height2gtk_widget_get_allocated_width3gtk_widget_get_allocation;gtk_widget_get_clipboardBgtk_widget_get_displayDgtk_widget_get_eventsXgtk_widget_get_parentYgtk_widget_get_parent_window_gtk_widget_get_preferred_sizebgtk_widget_get_realizedhgtk_widget_get_screenmgtk_widget_get_state_flagsogtk_widget_get_style_contextugtk_widget_get_toplevelvgtk_widget_get_type{gtk_widget_get_visible|gtk_widget_get_visual}gtk_widget_get_window~gtk_widget_grab_defaultgtk_widget_grab_focusgtk_widget_hidegtk_widget_init_templategtk_widget_is_toplevelgtk_widget_is_visiblegtk_widget_queue_drawgtk_widget_queue_resizegtk_widget_set_allocationgtk_widget_set_app_paintablegtk_widget_set_can_defaultgtk_widget_set_eventsgtk_widget_set_haligngtk_widget_set_has_windowgtk_widget_set_hexpandgtk_widget_set_margin_bottomgtk_widget_set_margin_endgtk_widget_set_margin_startgtk_widget_set_margin_topgtk_widget_set_namegtk_widget_set_no_show_allgtk_widget_set_parentgtk_widget_set_parent_windowgtk_widget_set_realizedgtk_widget_set_sensitivegtk_widget_set_size_requestgtk_widget_set_valigngtk_widget_set_vexpandgtk_widget_set_visiblegtk_widget_set_windowgtk_widget_showgtk_widget_show_allgtk_widget_size_allocate#gtk_widget_unparent+gtk_window_add_accel_groupigtk_window_newlgtk_window_presentgtk_window_set_default_sizegtk_window_set_modalgtk_window_set_positiongtk_window_set_resizablegtk_window_set_screengtk_window_set_titlegtk_window_set_titlebargtk_window_set_transient_forcairo_arccairo_clipcairo_close_path cairo_create cairo_curve_tocairo_destroy#cairo_fill%cairo_fill_preserveGcairo_get_current_pointmcairo_line_toncairo_maskpcairo_matrix_inittcairo_matrix_init_translatewcairo_matrix_rotatexcairo_matrix_scale{cairo_matrix_translatecairo_move_tocairo_new_pathcairo_new_sub_pathcairo_paintcairo_paint_with_alphacairo_pattern_add_color_stop_rgbcairo_pattern_add_color_stop_rgbacairo_pattern_create_linearcairo_pattern_create_radialcairo_pattern_destroycairo_rectanglecairo_rel_line_tocairo_rel_move_tocairo_restorecairo_rotatecairo_savecairo_scalecairo_set_line_widthcairo_set_matrixcairo_set_sourcecairo_set_source_rgbcairo_set_source_rgbacairo_set_source_surfacecairo_show_text#cairo_stroke+cairo_surface_destroy^cairo_transform_cairo_translate gdk_atom_interngdk_cairo_rectanglegdk_cairo_set_source_pixbufgdk_cairo_set_source_rgba)gdk_cursor_new_for_display4gdk_device_get_axis_value>gdk_device_get_nameFgdk_device_get_window_at_positionHgdk_device_grabJgdk_device_list_axesWgdk_display_beepXgdk_display_closedgdk_display_get_namefgdk_display_get_screenggdk_display_get_typemgdk_display_manager_getpgdk_display_manager_list_displaystgdk_display_opengdk_drag_statusgdk_event_freegdk_event_get_coordsgdk_event_get_devicegdk_event_get_event_sequencegdk_event_get_source_devicegdk_flushgdk_frame_clock_get_frame_timegdk_offscreen_window_get_surfacegdk_offscreen_window_set_embedder0gdk_rectangle_intersect7gdk_rgba_parse:gdk_screen_get_default;gdk_screen_get_displayLgdk_screen_get_root_windowtgdk_threads_add_timeoutgdk_window_coords_to_parentgdk_window_create_similar_surfacegdk_window_destroygdk_window_geometry_changedgdk_window_get_device_positiongdk_window_get_heightgdk_window_get_user_datagdk_window_get_widthgdk_window_invalidate_rectgdk_window_move_resizegdk_window_newgdk_window_set_cursor7gdk_window_set_user_data9gdk_window_showepoxy_glAttachShader-epoxy_glBindBufferXepoxy_glBindVertexArrayepoxy_glBufferDataepoxy_glClearepoxy_glClearColor-epoxy_glCompileShaderepoxy_glCreateProgramepoxy_glCreateShaderepoxy_glDeleteBuffersepoxy_glDeleteProgramepoxy_glDeleteShaderepoxy_glDetachShaderepoxy_glDisableVertexAttribArrayepoxy_glDrawArraysYepoxy_glEnableVertexAttribArrayepoxy_glFlushepoxy_glGenBuffersepoxy_glGenVertexArraysepoxy_glGetProgramInfoLog1epoxy_glGetProgramivSepoxy_glGetShaderInfoLogWepoxy_glGetShaderivepoxy_glGetUniformLocation|epoxy_glLinkProgramepoxy_glShaderSource* epoxy_glUniformMatrix4fv> epoxy_glUseProgramq epoxy_glVertexAttribPointergdk_pixbuf_compositegdk_pixbuf_copy_areagdk_pixbuf_fill4gdk_pixbuf_get_height:gdk_pixbuf_get_type;gdk_pixbuf_get_width=gdk_pixbuf_loader_close@gdk_pixbuf_loader_get_pixbufBgdk_pixbuf_loader_newFgdk_pixbuf_loader_writeKgdk_pixbuf_newTgdk_pixbuf_new_from_resourceUgdk_pixbuf_new_from_resource_at_scaleg_action_map_add_action_entriessg_application_rung_bus_get_syncg_bus_watch_name!g_dbus_connection_call_syncg_input_stream_closeg_input_stream_readg_resources_enumerate_childreng_resources_lookup_datag_resources_open_streamg_static_resource_fini g_static_resource_get_resource g_static_resource_initcg_themed_icon_neweg_themed_icon_new_with_default_fallbacksg_array_append_vals g_array_remove_indexg_array_sized_newg_ascii_table(g_assertion_message_exprg_build_filenameg_bytes_get_datag_bytes_get_sizeg_bytes_unref!g_date_time_format7g_date_time_new_from_unix_utcNg_dir_closeQg_dir_open_utf8Sg_dir_read_name_utf8`g_error_freeag_error_matchesng_file_test_utf8xg_filename_to_utf8_utf8g_freeg_get_home_dirg_hash_table_destroyg_hash_table_insertg_hash_table_iter_initg_hash_table_iter_nextg_hash_table_lookupg_hash_table_new_fullg_hash_table_removeg_hash_table_remove_allg_intern_static_stringQg_list_appendZg_list_free\g_list_free_fullog_list_sorttg_logg_main_context_iterationg_mallocg_malloc0 g_once_init_enter g_once_init_leave/g_path_get_dirname=g_printg_regex_match_simpleg_return_if_fail_warningg_setenv_utf8g_slice_alloc0g_slice_free1%g_slist_freeKg_source_removeUg_source_set_name_by_idag_spawn_command_line_async_utf8g_str_equalg_str_has_suffixg_strchompg_strcmp0g_strconcatg_strdupg_strdup_printfg_strfreevg_string_append_printfg_string_freeg_string_newg_strnfillg_strsplit4g_timeout_add5g_timeout_add_full6g_timeout_add_secondsg_utf8_collateg_utf8_get_charg_utf8_pointer_to_offsetg_utf8_validateg_variant_new<g_cclosure_newkg_object_add_weak_pointerlg_object_bind_propertyug_object_connect|g_object_get_datag_object_newg_object_refg_object_ref_sinkg_object_setg_object_set_datag_object_set_data_fullg_object_unrefg_object_weak_refg_signal_connect_datag_signal_handlers_disconnect_matchedg_signal_lookupg_signal_override_class_closureg_type_add_instance_private g_type_add_interface_staticg_type_check_instance_is_ag_type_class_adjust_private_offsetg_type_class_peek_parentNg_type_register_static_simple'libintl_gettextpango_attr_foreground_newpango_attr_list_insertpango_attr_list_newpango_attr_list_unrefpango_attr_shape_new_with_dataDpango_context_get_metricslpango_font_description_freempango_font_description_from_stringpango_font_description_set_sizepango_font_metrics_get_ascentpango_font_metrics_unrefpango_layout_get_contextpango_layout_get_font_descriptionpango_layout_get_pixel_size-pango_layout_new/pango_layout_set_attributes1pango_layout_set_ellipsize2pango_layout_set_font_description;pango_layout_set_text<pango_layout_set_widthpango_cairo_context_set_shape_rendererpango_cairo_show_layout pango_cairo_update_layoutDeleteCriticalSectionEnterCriticalSectionGetCurrentProcessGetCurrentProcessIdGetCurrentThreadIdGetLastErrorGetModuleHandleAEGetProcAddressdGetStartupInfoA{GetSystemTimeAsFileTimeGetTickCountInitializeCriticalSection&LeaveCriticalSectionQueryPerformanceCountergSetUnhandledExceptionFiltertSleepTerminateProcessTlsGetValueUnhandledExceptionFilterVirtualProtectVirtualQuery7__dllonexit:__getmainargs;__initenvD__lconv_inith__set_app_typek__setusermatherry_acmdln_amsg_exit_cexit_errno_fmode/_initterm3_iob_lock1_onexitcalloc#exit3fprintf:freeEfwriteqmallocymemcpysignalsprintfstrchrstrcmpstrlenstrncmpstrstrstrtol_unlock<abortEatoiYvfprintf libgtk-3-0.dll                                            libcairo-2.dll( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( libgdk-3-0.dll< < < < < < < < < < < < < < < < < < < < < < < < < < < < < libepoxy-0.dllP P P P P P P P P P P P P libgdk_pixbuf-2.0-0.dlld d d d d d d d d d d d d d d libgio-2.0-0.dllx x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x libglib-2.0-0.dll libgobject-2.0-0.dll libintl-8.dll libpango-1.0-0.dll libpangocairo-1.0-0.dll KERNEL32.dll msvcrt.dll0@@0AAAPNPNM @Nl0 0*040>0I0N0p0u0z000000141<1D1L1S1X1]1k1112%252C2L2b2222222233/343V33333333334414B4I4V4f4u444444555,555E5b5q5z5555555A6I6Q6Y6f666666666737@7J777$828?8M8a88 9969Z9t999/:7:b:::;; ;o;};;;;;;;;<<2<:%>->:>O>\>t>|>>>>>>5?U?u???? 0030@0H0U0m0u0}0000/1n111+2g22 3F333334j4>5J555k66788U9w9 ::;<<<.=Q=Y===>>W>r>y>>>>>>??/?7???N???0+030=0L011(3X3`3333x4444444455&5.5a5t56k6s66$7v7~77 88888 9959=9Q99999K:S:w::::::;";g;;;;;; <<>>G>???a?@00,0D0L0X0`0h0p0x0000000000000111(131>1I1T1_1y1111111111111222)242?2J2U2`2k2v22222A3J3W3k33333344+4F4e4}444444445555555555556|6787w777788#999999::::::::: ;};;;;;;<<74>]?x??????P00!0)0W0_0000001y1111=2D2484K4[4v4444444 5&5S5[5576?6_6g6666Z7b7o778$8M9h9{999999 :::8:::::;';F;;;;;mD>>>>>>?!?9?A?I?h?????`@0H0g00000 1101K1122q22333334 4.4G4Z4j4444444444 5!515555666_7777B8L8i8o8999999:g:;;;<<)<:>>>??C?K?q??pG0Z00111%2222323x33333333 4464>4F4q44:5G5a555555 6/6E66667777 8898A8Y8z8888889!9K9h9t99:$:W:z::::::;*;9;J;X;;;;;;;;;<>(>8>E>q>>>>>>>>>>f? 0[0{00111115555526D666*7E77&999I9f9999999:,:8:_:g:::::::::!;:;D;d;l;y;;;;; <9\>>>>G?`???V0i0y0000000011W1_11111122?2m2u2}222222 3$3.383>3D3\333344 424Z444444555L6T6\6a6v66667R7Z7h7s77777718Q8X8u888889C999999995:F:g:w::::::;c;k;;;;; <<>D>T>>>?/???q?y???00-0H0[0k000000000-1Q111212K2X23/383B3Q3[3a33333344}445585\5q5555567 8868^8888888889 99`9h99999 :>:T:a:g:x:~::;;E>H>[>k>>>>>>>??#?J????????? 0;0f001O111111.262W2k2w222222222344445'505A5N5V5c5{555555566667-7>77777778:888899+9<9K9k9999 ::(:6:?:M:W::::::::;';0;B;O;Y;;;;;<<'">/>j>>)?N?? 000111112232;2l222222353J3W3_3l3333334T4o4w445"5*5E5y5555656=66666F77777"8|888,949U9h9x99999999::!:0:g:o:|:::::;A;F;R;e;o;;;;;;;;;<#<6{>> ?i?w??60T00000000111'171W1g11111111%262@2U2b2j2w22222223333 4 55J6U6n6}6666666 7!7)7177 88m8888889"9::.:7:J:R:h:~:::::::::; ;;!;P;_;S<=9=~====> >L>W>>>>>>=?M?X??????P0 1/1H1[1k11111111112!2P22263333&424J4R4457<9g>^?f?0 0008000c11111122,2S2X2d2s2z22222222233w333 4464O4d4q4y44444444 5J5R5_55+778/8]88;N=V=== >(>>>S???????00C0H0T0c0j0t0~00000000181K1[1v1111111111d222y33333344,4D4L4T4a4i4v44%556,778399::;;;;k>s>>>>??+?F?_?t?????????0D1L1T1111111 2&2>2S2`2h2u222222 33C444%555=6[66666666667777[7c7 8898E8N8f88899::::::;F;Y;h;n;;;;;;;;;<? (0;0K0f000000000D1L1{11I2a22222233334444,5F5y55567d778&8.8R8Z8~8888(9z999999: ::&:u:::::::; ;;.;6;R;q;;;;;;;;;;<<'t>>>?)?W?|???0 00v001&191I1f1}111111111,2[2222223,3H3l333334 44D4Y4g44444445+535P556'6/6J6m6u6666'7U7]777778!8.8C8o8888888888d9:&:;:f::::::::I;Q;y;;;;;;;<(#>+>3>Z>?7???N?~???@0p00000D1111 2252=2a2i2v22222222222223:3D3x333333364445'56666677$7D7L7Y7q7y77778 8888888@9G9]9d9p99999:$:1:W:j:y::::::;;;4;<;D;Q;$>,>4>A>>>>?'?`?r????P`0R00131T1\1i111111 2%222O2g2o2w22222333334 4)414?4O4W4i4y444444444445%5E5M5m5u5555555 6656=6]6e66666666 7757E7M7m7}777777778X8t8888889909L9\9x999999:$:@:P:l:::::::;(;D;`;h;x;;;;;;<$<4 >(>8>T>\>l>>>>>>>??0?@?\?x???????` 0(080T0d0000000181`11111.2a2t2|2263J3u3}3333 4!4J4Q44445/5C5Z5555566'666`6h6p6x666677)7F7]7r7777777778808v89999:O:\:i:::W;c;k;{;;;;======> >pv00C11112A2{222222 333;3S3[3c3p3338445S5556h6A7Y77777l8888%9W999999):9:I:S::::::(;=;;;;;)<93>C>K>>? ???-?5?E?M?]?e??x0x0S44566777778!8>8V8^8f8s8{888"9999::::::;;;#;;;C;K;~;;v<>>>>??;?K?[?c???0090I0Q00001'171G1O11112%252=2222233+33333344%6x666)7X7_777777777777777 8=8`88889~999999(:D::: ;R;;;<+<<<<<== >'>/>7>?>i>q>y>>>>>>>>>>??%?-?E?M?]?e?}?????D0M00D1B578999,:4:D:d:;;e<<>>???M0]0.1111122V2f2v2{22222222224-454I4o4w4444555556 666"6*626:6B6J6R6Z6b6j6r6z666666666666666667 777"7*727:7B7J7R7Z7b7j7r7z777777777777777778 888"8*828:8B8J8R8Z8b8j8r8z888888888888888889 999"9*929:9B9J9R9Z9b9j9r9z99999999999999999: :::":*:2:::B:J:R:Z:b:j:r:z:::::::::::::::::; ;;;";*;2;:;B;J;R;Z;b;j;r;z;;;;;;;;;;;;;;;;;< <<<"<*<2<: >>>">*>2>:>B>J>R>Z>b>j>r>z>>>>>>>>>>>>>>>>>? ???"?*?2?:?B?J?R?Z?b?j?r?z?????????????????0 000"0*020:0B0J0R0Z0b0j0r0z000000000000000001 111"1*121:1B1J1R1Z1b1j1r1z111111111111111112 222"2*222:2B2J2R2Z2b2j2r2z222222222222222223 333"3*323:3B3J3R3Z3b3j3r3z333333333333333334 444"4*424:4B4J4R4Z4b4j4r4z444444444444444445 555"5*525:5B5J5R5Z5b5j5r5z555555555555555556 666"6*626:6B6J6R6Z6b6j6r6z666666666666666667 777"7*727:7B7J7R7Z7b7j7r7z777777777777777778 888"8*828:8B8J8R8Z8b8j8r8z888888888888888889 999"9*929:9B9J9R9Z9b9j9r9z99999999999999999: :::":*:2:::B:J:R:Z:b:j:r:z:::::::::::::::::; ;;;";*;2;:;B;J;R;Z;b;j;r;z;;;;;;;;;;;;;;;;;< <<<"<*<2<:">1>X>v>>>>>>>>??)?.?3?;?@?H?Q?[?a?j?{??? 00-0t0000 11e11111&2M2_222f3v333333344+4L4^4c4h444444444455:5@5V5]5u55555566?6a66666Z788888888%94999B9I9R9u99999999:$:6:?:J:U:[:e:o:::M;a;o;u;|;;;< <%<1 >@>`>>>>? ?@????0 00001 1@1`11112 2223 3@33334@4D4444444444444444445555 5$5(5,50585<5@5D5L5P5T5X5`5d5h5l5t5x5|555555555555555555555555666 66$6(6,60646<6@6D6H6P6T6X6\6d6h6l6p6x6|666666666666666666666666677 7777 7$7,7074787@7D7H7L7T7X7\7`7h7l7p7t7|77777777777777777777 8$8(8,84888<8@8`8d8h8l8t8x8|88888888888888@9D9H9L9T9X9\9`9h9l9p9t9|9999999999999999@:D:H:L:T:X:\:`:h:l:p:t:|::::::::::::;;;@P: :::(:,:8:<:H:L:X:\:h:l:x:|:::::::::::::`?d?h?l?p?t?x?|?p ::::::::: 111 11111 1$1(1,1014181<1@1D1H1L1P1T1X1\1`1d1h1l1p1t1x1|111111111111111111111111111111111222 22222 2$2(2,2024282<2@2D2H2L2P2T2X2\2`2d2h2l2p2t2x2|222222222222222222222222222;;;(<,<0<4<8<<<@000 0$0P00 00@#`@U1`@9M@1`@ v$@ 0@9 4:@eL 0>@ C K@~]M@Q@W@H[@r#a@UC`h@/mo@ ۛ{@-@}@ @ @@8 @ g@@!{yp@P@@GAP@ % @eA@)S@V @v@[T@*@r@ $AFw@ A]AfrPAA&i0#Aor)A;0,AP 3ACEbp?Eip@SegCsAEFlagsBEspCSegSsDExtendedRegistersEB WINBOOLn BYTEzx WORD{ DWORD|cfloat LPBYTE signed charshort intlong long unsigned int LONG_PTR6. ULONG_PTR7c PVOID9CHARLONG.LPSTR7PLONGpHANDLE|9ULONGLONG:EXCEPTION_ROUTINE   u ; uPEXCEPTION_ROUTINE8_FLOATING_SAVE_AREApControlWordStatusWordTagWord ErrorOffset! ErrorSelector"DataOffset#DataSelector$RegisterArea%Cr0NpxState&l'WOFLOATING_SAVE_AREA'>SWCONTEXTFAPCONTEXTHtSdWEXCEPTION_RECORDPEXCEPTION_RECORD_EXCEPTION_POINTERSContextRecordc /Next dprev d_EXCEPTION_REGISTRATION_RECORD d j/ Handler handler  FiberData uVersion _NT_TIB XExceptionList dStackBase uStackLimit uSubSystemTib u ArbitraryUserPointer uSelf XNT_TIB PNT_TIB }^_IMAGE_DOS_HEADER@ e_magice_cblpe_cpe_crlce_cparhdre_minalloc e_maxalloc e_sse_spe_csume_ipe_cse_lfarlce_ovnoe_res e_oemid$e_oeminfo&e_res2 (e_lfanew< W W IMAGE_DOS_HEADERPIMAGE_DOS_HEADER+ _IMAGE_FILE_HEADERK MachineLNumberOfSectionsMTimeDateStampNPointerToSymbolTableONumberOfSymbolsP SizeOfOptionalHeaderQCharacteristicsRIMAGE_FILE_HEADERS1 _IMAGE_DATA_DIRECTORY^ VirtualAddressSizeIMAGE_DATA_DIRECTORY _IMAGE_OPTIONAL_HEADER8 Magic& >+BaseOfData}6 $v(*#,.R0G248h<@ DFHkLPTX\]8 `^ H WIMAGE_OPTIONAL_HEADER32{ PIMAGE_OPTIONAL_HEADER32 { _IMAGE_OPTIONAL_HEADER64:Magic& >+}6 $v(*#,.R0G248h<@ DFHkPX`hl]8 pPIMAGE_OPTIONAL_HEADER64[ _IMAGE_NT_HEADERSSignatureFileHeader OptionalHeaderH PIMAGE_NT_HEADERS32aPIMAGE_NT_HEADERS PIMAGE_TLS_CALLBACK9/ u  u5 D HINSTANCE__hunused HINSTANCEyD PTOP_LEVEL_EXCEPTION_FILTER/ LPTOP_LEVEL_EXCEPTION_FILTER_STARTUPINFOADcb lpReserved!lpDesktop"lpTitle# dwX$dwY%dwXSize&dwYSize'dwXCountChars( dwYCountChars)$dwFillAttribute*(dwFlags+,wShowWindow,0cbReserved2-2lpReserved2. 4hStdInput/8hStdOutput0<hStdError1@ STARTUPINFOA2 STARTUPINFOIKOdouble long doubles _invalid_parameter_handler     tagCOINITBASE COINITBASE_MULTITHREADEDVARENUM VT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIMEVT_BLOBVT_STREAMVT_STORAGEVT_STREAMED_OBJECTVT_STORED_OBJECTVT_BLOB_OBJECTVT_CFVT_CLSIDVT_VERSIONED_STREAMVT_BSTR_BLOBVT_VECTOR VT_ARRAYVT_BYREFVT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK _PVFV m _PIFV I newmode _startupinfo  __uninitialized__initializing__initialized _exception {utype |name }uarg1 ~Targ2 Tretval T{_TCHAR __readfsdwordc!Offsetc"retc _InterlockedExchange.!Target!Value. #. _InterlockedCompareExchange.d$!ExChange.$.%_TEB&NtCurrentTebd'InterlockedCompareExchange)())Exchange)()#'InterlockedExchange#)Target#)Value#*duplicate_ppstrings{!ac!av{"avlC"i"nC+"lC,__mingw_invalidParameterHandlerq@ -expressionq-functionr-files-linet -pReservedu.check_managed_app]z"pDOSHeader_ "pPEHeader`"pNTHeader32ah "pNTHeader64b:/pre_c_init~@)0 @12,3?3Q3e@4b@!5t24n@!5t 6@ "4@!5t17 @"8t,pre_cpp_init0@Cz7j@Y"5tM5tM5tM5tM/__tmainCRTStartup@3~9lpszCommandLine~U:StartupInfo09inDoubleQuote; o9lock_free99fiberid99nested"c?@30@@>>@A@@*>W>F@:B=@XCa>C>81X3N%3ZN3d;pJ3o6o@"4z@"85tw7@"5tw7O@"5tv2$#Cd@ > @Dd@ $>@E@5t E@5tv5t25tv6@"E@8t4@#5t@6@0#6@<#6@F#6@f#40@p#95tO4R@#O8t8t4@#e8t8t6@#Fy@5tuGWinMainCRTStartup@Hret6@#I@zGmainCRTStartup@ Hret6@#I@z:argcKM:argvQCM:envpRCM:argretUM:mainretV M:managedappWM:has_cctorXM:startinfoYMJ__globallocalestatusLJ_imp___fmode-QJ_dowildcard4J_newmode nJ_imp____initenv v{J_imp___acmdln {CJ__native_startup_state O#J__native_startup_lock qwKJ_image_base__' J_imp___commode2QJ_fmode1LJ__xi_a:J__xi_z;LJ__xc_a<J__xc_z=J__dyn_tls_init_callback@ J__onexitbeginB8 J__onexitendC8 Jmingw_app_typeEM__mingw_winmain_hInstanceGhܦMM__mingw_winmain_lpCmdLineH~ئMM__mingw_winmain_nShowCmdIAJ__mingw_oldexcpt_handlerZMmingw_pcinitf@NMmingw_pcppinitg@NJ_MINGW_INSTALL_DEBUG_MATHERRiNmingw_initltsdrot_forceWNmingw_initltsdyn_forceXNmingw_initltssuo_forceYNmingw_initcharmaxZO__set_app_type ! P_encode_pointer 9 " 9Q_setargv O__mingw_setusermatherr >" >"D" S" S"P__getmainargs " Q { { "Pstrlen6" uRmalloc 9" Smemcpy9" 9  WT_pei386_runtime_relocator\P_set_invalid_parameter_handler t0# tT_fpreset)T__mainLPmain f# C CT_cexit7O_amsg_exit # O_initterm6# 8 8 Uexit 2# T__security_init_cookiei qGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenapplication.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo`@charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intguint32&long long unsigned intgsize;gchar.gint1gboolean2guint7floatdoublegpointerMGDestroyNotifyW'-GQuark$oGError*T _GError , domain.8 code/ message02GData$ _GData C' G_FILE_TEST_IS_REGULAR G_FILE_TEST_IS_SYMLINK G_FILE_TEST_IS_DIR G_FILE_TEST_IS_EXECUTABLE G_FILE_TEST_EXISTSGFileTestI>F :  G_LOG_FLAG_RECURSION G_LOG_FLAG_FATAL G_LOG_LEVEL_ERROR G_LOG_LEVEL_CRITICAL G_LOG_LEVEL_WARNING G_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFO G_LOG_LEVEL_DEBUG G_LOG_LEVEL_MASK|GLogLevelFlagsHD long doubleGVariantType *I _GVariantTypeGVariant "h _GVariantXGType ~GTypeClass _GTypeClass g_type yGTypeInstance _GTypeInstance g_class GObject  _GObject d g_type_instance  ref_count  qdata GInitiallyUnowned   G_BUS_TYPE_STARTER G_BUS_TYPE_NONE G_BUS_TYPE_SYSTEM G_BUS_TYPE_SESSIONGBusType } 8 G_BUS_NAME_WATCHER_FLAGS_NONE G_BUS_NAME_WATCHER_FLAGS_AUTO_STARTGBusNameWatcherFlags   G_DBUS_CALL_FLAGS_NONE G_DBUS_CALL_FLAGS_NO_AUTO_STARTGDBusCallFlags UGCancellable& _GCancellable/?1  priv4g GDBusConnection _GDBusConnection+5GCancellablePrivate-Q _GCancellablePrivate6s0'GBusNameAppearedCallback+0''GBusNameVanishedCallback?mGtkWidget. _GtkWidget&?d privW GtkWidgetPrivateB> _GtkWidgetPrivate&on_name_vanishedwOw0namex'5yon_name_appearedn`@  On0nameo'name_ownerp'5q ]p@9d ww @ @ do_applicationQ@S toplevelQ watch M!@e "command' error>l#@  $t$B$t8#@  $tl#$@! : $t0$t@$tdB0@? #<@Y [ $tgBI@x #@ $tmB$thB$t0$t 0#@ $t2$t0$t0#e@  $tVB$tB$t B$txB$ts$t0$t0$t  $t$0$t(0%@F $t2$tVB$t0$t `@$tp@$t0$t0 name_seenj(M placeholderkQ$M>k_widget_destroy Q&g_object_unref  'g_file_test_utf8 ''(g_spawn_command_line_async_utf8.! '8)g_loge? ' '*)g_error_freeDY >'gtk_label_new]Qx '(g_object_ref_sink  (g_variant_new ks '*'g_bus_get_sync20 8'g_dbus_connection_call_syncsF 0''''s%8+g_bus_watch_nameE'8GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenassistant.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo`@doublecharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64,guint64-long long unsigned intgsize;gchar.glong0 gint1gboolean2gulong65guint7gfloat9floatgdouble:gpointerMJ[GData$i_GDataw  4GSourceFuncq\ long double GType~ GValue _GValuej g_typemqz GTypeClass _GTypeClass0g_type GTypeInstanceF_GTypeInstancepg_classppv_intqv_uintrv_longsv_ulongtv_int64uwv_uint64vv_floatwv_doublex%v_pointery4')GClosureJ7 _GClosureZmeta_marshal_nousen_guardsn_fnotifiers n_inotifiersin_inotifyfloatingderivative_flagin_marshalis_invalid marshalq4 notifiers GClosureNotifyDataKt _GClosureNotifyDataq4 notifyGCallbackVUGClosureNotify_ 4 '  v  | 4 4Z SG_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags $GObject w _GObject  g_type_instance 0  qdata GInitiallyUnowned wGdkScreen ~_GdkScreen J[GTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINEGtkAlign P VGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientation YkGtkWidget . _GtkWidgetao GtkWindow 0 _GtkWindow5> bin79 GtkWidgetPrivateBV_GtkWidgetPrivate>GtkContainer. _GtkContainer2Z47GtkContainerPrivate/_GtkContainerPrivate{GtkBin. _GtkBin22 v4{7W GtkBinPrivate/G _GtkBinPrivate2 GtkWindowPrivate.u _GtkWindowPrivate] GtkBox/ _GtkBox3 v5{8 GtkBoxPrivate0 _GtkBoxPrivate GtkEntryF _GtkEntryJ+ aMOT GtkEntryPrivateGB _GtkEntryPrivate+  G GTK_ASSISTANT_PAGE_CONTENTGTK_ASSISTANT_PAGE_INTROGTK_ASSISTANT_PAGE_CONFIRMGTK_ASSISTANT_PAGE_SUMMARYGTK_ASSISTANT_PAGE_PROGRESSGTK_ASSISTANT_PAGE_CUSTOMGtkAssistantPageTypeN` GtkAssistantPE _GtkAssistant Tw parentVY GtkAssistantPrivateQ _GtkAssistantPrivatew 1 GtkProgressBar, _GtkProgressBar0 parent253 GtkProgressBarPrivate- _GtkProgressBarPrivate   on_assistant_close_cancel,`@ Z,iq,4. 2r@kion_assistant_prepare5@d Z5i page5iq547Q!n_pages7z!title8O"@D #ts"@Y #ts"@x #tB#tv"@  #ts#tw"@0 #tw$@Don_assistant_apply%@#Z%iq%4%@f#td#t @#t0&apply_changes_gradually @Zq4!fraction%0@K@k%q@#t ?on_entry_changedJ@jZJiqJ4L Mi !page_numberN4!textODG"@*#ts"@?#ts"@ U#t"@Ew#ts#tv#t0%@E#ts#tv#t1'create_page1\(\i)box^i)label^i)entry^i'create_page2s(si)boxui)checkbuttonui'create_page3I(i)labeli'create_page4j(i*do_assistanti@@ do_widgeti+@U,e-.x.."@|#t0#t<"@#ts#t<"@)#tB"@P#ts#t0#t 0#t0@""@7t#tw#t1"@#ts#tw#t1#t 1#t0"C@i#tw#tB#t@#t v#t0#t0"K@#ts"W@#tv#ts"k@5#tv#ts#tB%@0#tv#ts#t1+@s,-.."@|#t1#t<"@#ts#t<"@c#tB"@#ts#t0#t 0#t0"@#ts"@-#tv#ts"@EO#tv#ts#t1%@#tv#ts#t>B/@^P00V1@^.; ")@#tHB"3@#ts"?@#tv#ts"S@0 #tv#ts#t2"g@E,#tv#ts#t1%{@#tv#ts#tB/I@ 0^S@"@#t3"@#t3@"@#ts"@0#ts#t4"@#ts#tB%@E#ts#t0@ @k5@F@I"c@bL#t #t ,"o@b#t@"N@i#tB#t`@#t 0M#t0#t0"@i#tB#t`@#t 0M#t0#t0"@i#tB#t@#t 0#t0#t0%@i#tB#t@#t 0#t0#t02 i0M3progress_bar i,M4gtk_widget_destroy i5gtk_assistant_get_current_page 5gtk_assistant_get_n_pages 5g_strdup_printfO  D67gtk_window_set_title0 u D7g_freeED 47gtk_assistant_commitf 8g_timeout_add.   45gtk_progress_bar_get_fraction\% ? 7gtk_progress_bar_set_fractionO ? %5gtk_assistant_get_nth_pagei  8gtk_entry_get_textDE Z 7gtk_assistant_set_page_complete| i 5gtk_box_newPi  7gtk_container_set_border_width  5gtk_label_new]i D7gtk_box_pack_startT" 9 i   9gtk_entry_newi7gtk_entry_set_activates_defaulti Z 8g_signal_connect_data  4 D  4  S4gtk_widget_show_all i5gtk_assistant_append_page i7gtk_assistant_set_page_title0 i D7gtk_assistant_set_page_typec i  5gtk_check_button_new_with_labelJi D4gtk_widget_show i9gtk_progress_bar_newGi4gtk_widget_set_halign; i [4gtk_widget_set_valignB  i [8gtk_widget_get_visible`I i9gtk_assistant_newi4gtk_window_set_default_size u  8gtk_widget_get_screen i:gtk_window_set_screen u  GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenbuilder.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo@ charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intguint32&gint64, guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong6)guint7gfloat9floatgdouble:7doublegpointerMWGQuark$kGError*~_GError ,domain.bcode/message0\ GData$ _GDatap : G_LOG_FLAG_RECURSION G_LOG_FLAG_FATAL G_LOG_LEVEL_ERROR G_LOG_LEVEL_CRITICAL G_LOG_LEVEL_WARNING G_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFO G_LOG_LEVEL_DEBUG G_LOG_LEVEL_MASK|GLogLevelFlagsH L G_TOKEN_EOF G_TOKEN_LEFT_PAREN( G_TOKEN_RIGHT_PAREN) G_TOKEN_LEFT_CURLY G_TOKEN_RIGHT_CURLY G_TOKEN_LEFT_BRACE G_TOKEN_RIGHT_BRACE G_TOKEN_EQUAL_SIGN= G_TOKEN_COMMA, G_TOKEN_NONE G_TOKEN_ERROR G_TOKEN_CHAR G_TOKEN_BINARY G_TOKEN_OCTAL G_TOKEN_INT G_TOKEN_HEX G_TOKEN_FLOAT G_TOKEN_STRING G_TOKEN_SYMBOL G_TOKEN_IDENTIFIER G_TOKEN_IDENTIFIER_NULL G_TOKEN_COMMENT_SINGLE G_TOKEN_COMMENT_MULTI G_TOKEN_LAST long double GType ~ GValue _GValue jg_type mdata z GTypeClass  _GTypeClass 3g_type  GTypeInstance I_GTypeInstance sg_class s pv_int qv_uint rv_long sv_ulong tv_int64 uzv_uint64 vv_float wv_double x(v_pointer yA*GClosure J:_GClosure ^  meta_marshal_nouse  n_guards  n_fnotifiers   n_inotifiers  in_inotify  floating  derivative_flag  in_marshal  is_invalid  marshal data Anotifiers # GClosureNotifyData Kx_GClosureNotifyData data Anotify GCallback VGClosureNotify _A* yAA^  X G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags ) GObject | _GObject g_type_instance 3  qdata GInitiallyUnowned | m GdkScreen~ _GdkScreen GtkBuilder# _GtkBuilder[A ]m _ GtkStyleContext,X _GtkStyleContext+ parent_object-m .E GtkWidget. _GtkWidget  E GtkWindow0 _GtkWindow5 bin7 9a  GtkWidgetPrivateB, _GtkWidgetPrivate   GtkContainer.e _GtkContainer2 widget4 7 GtkContainerPrivate/ _GtkContainerPrivate GtkBin. _GtkBin2 container4Q 70 GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate.N _GtkWindowPrivate6 GtkDialogcx _GtkDialog m o r GtkDialogPrivated _GtkDialogPrivate g GtkBuilderPrivate) _GtkBuilderPrivate GtkStyleContextPrivate), _GtkStyleContextPrivate A GtkAction/b _GtkAction3 object5m private_data8 GtkActionPrivate1 _GtkActionPrivate Q quit_activate @$/  ? )@%tB$@about_activate0@0  about_dlg? <I@tBS@ts`@help_activate`@ ! f"m@ B#do_builder$? p@Wl$do_widget$? %&? 4M&err'l toolbar(? z'@$'@'@M'@o@tBtl @t0t4tB$@t09@tBJ@ t'[@3@\6t B(tt 4Mt0t0@NtB'@)@tB&builder 8M*gtk_builder_get_object  Q+gtk_widget_destroy? *gtk_dialog_run +gtk_widget_hide ? +g_print $Q,-gtk_widget_get_visible`M? +gtk_widget_show_allo? .gtk_builder_neww *gtk_builder_add_from_resource~ Q/g_logeQQ,/gtk_builder_connect_signals  A-gtk_widget_get_screen 3? +gtk_window_set_screen\K  -g_signal_connect_data AQAX -gtk_widget_get_style_context#K ? 0gtk_style_context_add_classK Qm GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenbutton_box.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo@ charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64,guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong62guint7gfloat9floatgdouble:1doublegpointerMQ\GData$j_GData] long double GType~ GValue _GValuej g_typem dataz GTypeClass _GTypeClass  g_type GTypeInstance  _GTypeInstanceJ g_classJ\pv_intqv_uintrv_longsv_ulongtv_int64utv_uint64vv_floatw v_doublex"v_pointery;a&GClosureJ _GClosure5meta_marshal_nousen_guardsn_fnotifiers n_inotifiersin_inotifyfloatingderivative_flagin_marshalis_invalid marshal data; notifiers GClosureNotifyDataKO _GClosureNotifyData data; notifyGCallbackVVGClosureNotify_;PV;;5/G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags _GObject  g_type_instance   qdata rGInitiallyUnowned DGdkScreen ~_GdkScreen VGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientation YGtkWidget .9 _GtkWidget q parent_instance   GtkWindow 0 _GtkWindow5 bin7n9GtkWidgetPrivate B_GtkWidgetPrivate(qGtkContainer. _GtkContainer21 widget4(7bGtkContainerPrivate/L_GtkContainerPrivate1GtkBin.| _GtkBin247GtkBinPrivate/_GtkBinPrivateGtkWindowPrivate._GtkWindowPrivater3 GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu GtkBox/V _GtkBox3 58 GtkBoxPrivate0 _GtkBoxPrivate GtkButtonBox- _GtkButtonBox1 box3H 6 GtkButtonBoxPrivate. _GtkButtonBoxPrivate Z GTK_BUTTONBOX_SPREADGTK_BUTTONBOX_EDGEGTK_BUTTONBOX_STARTGTK_BUTTONBOX_ENDGTK_BUTTONBOX_CENTERGTK_BUTTONBOX_EXPANDGtkButtonBoxStylea$ H  create_bbox @ horizontal title spacing layout frame*bbox^button@! tR@@ t1 @d ts t5@ tv ts&@ ts t2@ ts tw>@ ' t0B!F@,R@E ts^@ ] t3B!f@,r@{ ts~@  t:B!@,@ ts"@@ t0#do_button_box-@!do_widget-$window/GDK_ICONGDK_IRON_CROSSGDK_LEFT_PTRGDK_LEFT_SIDEGDK_LEFT_TEEGDK_LEFTBUTTONGDK_LL_ANGLEGDK_LR_ANGLEGDK_MANGDK_MIDDLEBUTTONGDK_MOUSEGDK_PENCILGDK_PIRATEGDK_PLUSGDK_QUESTION_ARROWGDK_RIGHT_PTRGDK_RIGHT_SIDEGDK_RIGHT_TEEGDK_RIGHTBUTTONGDK_RTL_LOGOGDK_SAILBOATGDK_SB_DOWN_ARROWGDK_SB_H_DOUBLE_ARROWGDK_SB_LEFT_ARROWGDK_SB_RIGHT_ARROWGDK_SB_UP_ARROWGDK_SB_V_DOUBLE_ARROWGDK_SHUTTLEGDK_SIZINGGDK_SPIDERGDK_SPRAYCANGDK_STARGDK_TARGETGDK_TCROSSGDK_TOP_LEFT_ARROWGDK_TOP_LEFT_CORNERGDK_TOP_RIGHT_CORNERGDK_TOP_SIDEGDK_TOP_TEEGDK_TREKGDK_UL_ANGLEGDK_UMBRELLAGDK_UR_ANGLEGDK_WATCHGDK_XTERMGDK_LAST_CURSORGDK_BLANK_CURSOR~GDK_CURSOR_IS_PIXMAPGdkCursorTypeӛUJeGTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINEGtkAlignPVGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientationYu4GTK_SELECTION_NONEGTK_SELECTION_SINGLEGTK_SELECTION_BROWSEGTK_SELECTION_MULTIPLE GtkSelectionModeGTK_SHADOW_NONEGTK_SHADOW_INGTK_SHADOW_OUTGTK_SHADOW_ETCHED_INGTK_SHADOW_ETCHED_OUT GtkShadowTypeM(;GTK_SIZE_GROUP_NONEGTK_SIZE_GROUP_HORIZONTALGTK_SIZE_GROUP_VERTICALGTK_SIZE_GROUP_BOTH GtkSizeGroupMode-GtkAdjustment"i _GtkAdjustment698:& GtkWidget. _GtkWidget9D GtkWindow0 _GtkWindow5 bin79cGtkWidgetPrivateB+_GtkWidgetPrivatem GtkContainer.j _GtkContainer247GtkContainerPrivate/_GtkContainerPrivateVGtkBin. _GtkBin2 4V72GtkBinPrivate/"_GtkBinPrivate GtkWindowPrivate.P_GtkWindowPrivate8rGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeui0GTK_WIN_POS_NONEGTK_WIN_POS_CENTERGTK_WIN_POS_MOUSEGTK_WIN_POS_CENTER_ALWAYSGTK_WIN_POS_CENTER_ON_PARENTGtkWindowPosition2GTK_DIALOG_MODALGTK_DIALOG_DESTROY_WITH_PARENTGTK_DIALOG_USE_HEADER_BARGtkDialogFlags6ILGTK_RESPONSE_NONEGTK_RESPONSE_REJECT~GTK_RESPONSE_ACCEPT}GTK_RESPONSE_DELETE_EVENT|GTK_RESPONSE_OK{GTK_RESPONSE_CANCELzGTK_RESPONSE_CLOSEyGTK_RESPONSE_YESxGTK_RESPONSE_NOwGTK_RESPONSE_APPLYvGTK_RESPONSE_HELPuGtkDialogc _GtkDialog m"orGtkDialogPrivated_GtkDialogPrivateGtkMisc.+ _GtkMisc2U47|GtkMiscPrivate/k_GtkMiscPrivateUGtkLabel0 _GtkLabel6 misc8;GtkLabelPrivate1_GtkLabelPrivateGtkAdjustmentPrivate-_GtkAdjustmentPrivateTGtkBox/@ _GtkBox3i5V8GtkBoxPrivate0~_GtkBoxPrivateiGtkTreeIter' _GtkTreeIter] stamp_ user_data`Z user_data2aZ user_data3bZ GtkTreeModel*_GtkTreeModelGtkCellRendererPI _GtkCellRendererU{9WZ GtkCellRendererPrivateQ_GtkCellRendererPrivate{2GtkTreeViewColumn) _GtkTreeViewColumnT 9VXL GtkTreeViewColumnPrivate++ _GtkTreeViewColumnPrivate GtkEditable+e _GtkEditableR GtkListStore( _GtkListStore, v.1 GtkListStorePrivate) _GtkListStorePrivate GtkEntry F! _GtkEntry J.!9 M OW!GtkEntryPrivate GE!_GtkEntryPrivate.! GtkTreeView!=v! _GtkTreeView!C!v!EV!H"GtkTreeViewPrivate!?!_GtkTreeViewPrivateGtkTreeSelection!@! _GtkTreeSelection"K"v"N"P_$ !c!GtkFrame#.:" _GtkFrame#2e" bin#4#7"GtkFramePrivate#/|"_GtkFramePrivatee"*"GtkSizeGroup$&" _GtkSizeGroup$*"9$,$/# GtkSizeGroupPrivate$'"_GtkSizeGroupPrivate"GtkScrolledWindow%--# _GtkScrolledWindow%1a#%3%5#GtkScrolledWindowPrivate%.#_GtkScrolledWindowPrivatea##%$GTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALGtkPolicyType%#"GtkTreeSelectionPrivate"%?$_GtkTreeSelectionPrivate! $2y ChangeDisplayInfo%$ _ChangeDisplayInfo'$")> size_group*$ display_model,& current_display. 5G%DISPLAY_COLUMN_NAMEDISPLAY_COLUMN_DISPLAYDISPLAY_NUM_COLUMNScreate_frame(%d(%title) 3*%)+%,%.Y$ scrollwin/> hbox0>w$>!find_toplevel_at_pointerE>9&"E#pointer_windowG$H>%#widget_ptrRZ&query_change_display{&"d%#screen$[>&response_cb&'dialog""d%!query_for_toplevelh>J''screenh'prompti $k#popupl>#labell>$3l>#cursorm$[n>%#clicked(button_release_event_cb[$@')[>*event\J*clicked]+display_changed_cb$@r_(,Y$,d%-model&\-iter`.$@/=/$@L=9(0t0t\0tv1$@=0tv0t10t s0t +close_display_cb%@(2}>F,d%3$%@=4open_display_cb0%@j+)}>)d%5i>f6dialog>6display_entry>6dialog_label>6new_screen_nameu86resultx7c*58d&@,)6error_msgu/t&@=)0tB0tu/&@=)0tw0t\1&@>0t\/&@.>*0tv0t00t /)&@`>'*0ts/H&@><*0tu/T&@>Q*0tu1&@>0tu/G%@>{*0tB/U%@>*0tB/%@>*0tB0t10t 0tv0t 0t0/%@?*0ts0t .%@2?/%@G? +0tv0t1/%@y?$+0tB/%@?9+0ts/%@?U+0tu0tw/%@?q+0tu0tv/%@?+0tv/%@ @+0ts.&@0@3>&@R@3d&@R@destroy_info+d%I+destroy_cb&@O-9object,dO-:+&@;+<&@=+=+ =+. .&@s@/&@@,0tu/&@@,0tu0tH0t00t 00t00t(@0tv/6'@@ -0tH0t00t 00t00t'@0tv/I'@A -0t0.T'@/=._'@/=.n'@/=1v'@>0tv%+display_closed_cb'@yK.,9is_error,d%-iterP>validA 8'@8,.-tmp_displayL/'@=.0tv0t10t w0t 1(@4A0tv/'@`AA.0tv.'@A+add_display(@C/2d%_ 2 >namej -iterP/'(@A.0ts/8(@A.0tw/g(@B /0tw0t00t u0t10ts0t 1(@9B0ts0t!B0t'@0t v0t00t0+display_opened_cb(@ /,I,,d%?(@K.0P0R@{&(@[4A&A&A&7H4A&B&{A&C9&(@AV&AV&D=a& Eo&F&(@3A&(B;& D=& =& ='F ='d =' =-' 701G9'XF%U*@P!1H%DP=& =& 8v*@0G%&\1*@zB0t\.Z*@B/r*@B10t00t0.*@C/)*@9B]10ts0tdB0t$@0t X0t00t0/E*@1Cw10t00t11U*@aC0tv/(@aC10tv/(@C10t1/)@C10ts0tv/)@C10ts0t1/()@C20ts0t1/4)@$D20t0/F)@CD320tw0t2/R)@?O20ts0tw/^)@y?g20t(B/)@oD20tu0t]B0t:0t 0/)@?20tw0tu/)@0@20ts/)@D20tL0t"/)@D20ts.)@B/)@D430tu0t00t 00t 0tw0t0/*@/=I30tw/*@R@^30ts.*@(E/*@/=|30tw/*@R@30ts.*@(E.+@/=/+@R@30ts."+@(E/,+@/=30tw/8+@R@30t0.=+@(E.(@5E/*@]E40t0/*@C'40tu/+@aC<40tv. +@E1(@R@0tIleft_align_button_newT>@+@E59labelT J}V> >childW>H /Q+@E40t/[+@ @40ts/m+@E50tv0t11}+@E0tv0t3Icreate_display_frameb>+@9,db%J3d>f J)e> Jf> >columngF JhY$ J}i> KG%+@hk7Ai%yB;]%< A%A%Aw%rDh=%[ =%n =% /+@$D:60tyB/+@(FT60t00t8/+@JFo60tu0t8/+@?60ts0tu/+@{F60t00t0/ ,@F60tw0t20t1/,@F60tw0t1/A,@G70tu0tw0t10t 10t0.F,@IG/X,@bG370ts0t0/d,@?O70tw0ts/l,@Gd70ts/|,@Gx70t2/,@(F70t10t5/,@G70tu0tw0t00t 00t0/,@G70tw1<.@H0t1/,@[470tB/-@9B<80tu0tB0t0%@0t 0t00t0/+-@Gj80tw0tu0t00t 00t0/7-@[480tB/e-@9B80tu0tB0t%@0t 0t00t0/-@G80tw0tu0t00t 00t0.-@AH/-@]H90t20t@/-@H&90ts.-@H/-@H]90tB0tB0t 00t0/-@Ir90ts/-@G90ts1".@9B0tB0t$@0t 0t00t0initialize_displays:d%IIdo_changedisplay>P.@#/=9do_widget>Ld%@M8c.@%=Ji> >vbox > J3 > 7:>__n  >__s  >__p Z, 1o.@AI0t@M9/@]%;;9J ;0tB/.@>;0tB0t0t00t 0tB0t 0t0/.@\I<0t ,0t //@9BG<0tB0t(@0t00t0/M/@9B<0tB0t&@0t @M0t00t0.\/@?/r/@(F<0t10t5//@JF<0ts0t8//@G<0tv0ts0t10t 10t0./@5//@G=0ts0t10t 10t0.K0@0@.j0@R@Ng_object_unref L=ZOgtk_tree_selection_get_selected"=Y$=,&Ngtk_tree_model_getl=&,PQgdk_display_close&Q=Og_strdup_printf'u=jPQgtk_label_set_texta>jQg_free(E.>ZOgtk_editable_get_charsgu`>s Ogtk_dialog_run>Ogdk_display_open&.>jOlibintl_gettext)#> Ogtk_dialog_new_with_buttons>?jPjPQgtk_dialog_set_default_response2?Rgtk_entry_new >Qgtk_entry_set_activates_default y?]!Ogtk_label_new]>?jOgtk_dialog_get_content_area>?Qgtk_container_add?>Ngtk_widget_grab_focus# @>Ogtk_bin_get_childP>0@e$Ngtk_widget_show_allR@>Ngtk_widget_destroys@>Rgdk_display_manager_get*/Ogdk_display_manager_list_displays*6@Sg_signal_handlers_disconnect_matched AZlZZQg_slist_free24AOgtk_list_store_removec`Aq$,Sgtk_tree_model_get_iter_firstBA&,Sgtk_tree_model_iter_nextPA&,Ogdk_display_get_name&1jAQgtk_list_store_appendBq$,Qgtk_list_store_setU9Bq$,PSg_signal_connect_data zBZj/Z@Ngdk_window_get_user_data+B{Rgtk_get_current_event_device,ŕOgdk_device_get_window_at_position-ʼnCSgtk_widget_get_toplevel>1C>Sg_main_context_iteration9aC Ogdk_screen_get_display.6COgtk_window_new>CNgtk_window_set_screenCPNgtk_window_set_modalLCPQgtk_window_set_position$DP0Ogtk_frame_new#U>CDjQgtk_frame_set_shadow_type#koD"Ng_object_set DZjPOgdk_cursor_new_for_displayDSgtk_widget_get_windowD>Ogdk_device_grab-g (E X Tgdk_flush1|Sgtk_widget_get_screen]E>Ogdk_display_get_screen&6EQgdk_display_beep&JEOgtk_button_new_with_mnemonic/i>EjNgtk_widget_set_halign;E>eNgtk_widget_set_valignB(F>eOgtk_box_newP>JFQgtk_container_set_border_width{FOgtk_scrolled_window_new%>F,,Qgtk_scrolled_window_set_policy%F#$$Qgtk_scrolled_window_set_shadow_type%G#Qgtk_box_pack_startTIGk$>Rgtk_tree_view_new!>Qgtk_tree_view_set_headers_visible!G$"Ogtk_tree_view_get_selection!Y$G$"Qgtk_tree_selection_set_mode"nGY$4Qgtk_size_group_add_widget$MH$>Ogtk_size_group_new$A$AH;Rgdk_display_get_type&,.Ogtk_list_store_newCq$HPQgtk_tree_view_set_model!جH$"&Rgtk_cell_renderer_text_new0EOgtk_tree_view_column_new_with_attributesoF IjPSgtk_tree_view_append_column!AI$"F Og_malloc0(NZ\IUgtk_window_set_default_sizeP6AGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenclipboard.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo0@9 charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned chargint8dsigned charshort intguint32&gint64,guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong61guint7gfloat94floatgdouble:LdoublegpointerMlGQuark$GError*_GError ,domain.wcode/message0q GData$ _GDataf : G_LOG_FLAG_RECURSION G_LOG_FLAG_FATAL G_LOG_LEVEL_ERROR G_LOG_LEVEL_CRITICAL G_LOG_LEVEL_WARNING G_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFO G_LOG_LEVEL_DEBUG G_LOG_LEVEL_MASK|GLogLevelFlagsH long double GType~ GValue_GValue j>g_type m z^ GTypeClassQ_GTypeClasswg_type GTypeInstance_GTypeInstanceg_class> p^v_int qv_uint rv_long sv_ulong t v_int64 uv_uint64 vv_float w&v_double x=v_pointer yVn%GClosure J~_GClosure  `meta_marshal_nouse `n_guards `n_fnotifiers ` n_inotifiers `in_inotify `floating `derivative_flag `in_marshal `is_invalid `marshal 6 Vnotifiers e GClosureNotifyData K_GClosureNotifyData  Vnotify GCallback VGClosureNotify _ 0V0n<`0VV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags kGObject _GObject g_type_instance w `qdata GInitiallyUnowned !GdkAtom V;A _GdkAtomGdkDevice x\ _GdkDeviceGdkDragContext y~ _GdkDragContextGdkScreen ~ _GdkScreenGdkWindow  _GdkWindow  GDK_SHIFT_MASK GDK_LOCK_MASK GDK_CONTROL_MASK GDK_MOD1_MASK GDK_MOD2_MASK GDK_MOD3_MASK GDK_MOD4_MASK GDK_MOD5_MASK GDK_BUTTON1_MASK GDK_BUTTON2_MASK GDK_BUTTON3_MASK GDK_BUTTON4_MASK GDK_BUTTON5_MASK GDK_MODIFIER_RESERVED_13_MASK GDK_MODIFIER_RESERVED_14_MASK GDK_MODIFIER_RESERVED_15_MASK GDK_MODIFIER_RESERVED_16_MASK GDK_MODIFIER_RESERVED_17_MASK GDK_MODIFIER_RESERVED_18_MASK GDK_MODIFIER_RESERVED_19_MASK GDK_MODIFIER_RESERVED_20_MASK GDK_MODIFIER_RESERVED_21_MASK GDK_MODIFIER_RESERVED_22_MASK GDK_MODIFIER_RESERVED_23_MASK GDK_MODIFIER_RESERVED_24_MASK GDK_MODIFIER_RESERVED_25_MASK GDK_SUPER_MASK GDK_HYPER_MASK GDK_META_MASK GDK_MODIFIER_RESERVED_29_MASK GDK_RELEASE_MASK GDK_MODIFIER_MASK GdkModifierType  9 GDK_ACTION_DEFAULT GDK_ACTION_COPY GDK_ACTION_MOVE GDK_ACTION_LINK GDK_ACTION_PRIVATE GDK_ACTION_ASK GdkDragAction@$ GdkEventButton _GdkEventButton@ typewindowsend_eventWtime x=y=axes state$(device,x_root=0y_root=8" GDK_NOTHING GDK_DELETE GDK_DESTROY GDK_EXPOSE GDK_MOTION_NOTIFY GDK_BUTTON_PRESS GDK_2BUTTON_PRESS GDK_DOUBLE_BUTTON_PRESS GDK_3BUTTON_PRESS GDK_TRIPLE_BUTTON_PRESS GDK_BUTTON_RELEASE GDK_KEY_PRESS GDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAP GDK_UNMAP GDK_PROPERTY_NOTIFY GDK_SELECTION_CLEAR GDK_SELECTION_REQUEST GDK_SELECTION_NOTIFY GDK_PROXIMITY_IN GDK_PROXIMITY_OUT GDK_DRAG_ENTER GDK_DRAG_LEAVE GDK_DRAG_MOTION GDK_DRAG_STATUS GDK_DROP_START GDK_DROP_FINISHED GDK_CLIENT_EVENT GDK_VISIBILITY_NOTIFY GDK_SCROLL GDK_WINDOW_STATE GDK_SETTING! GDK_OWNER_CHANGE" GDK_GRAB_BROKEN# GDK_DAMAGE$ GDK_TOUCH_BEGIN% GDK_TOUCH_UPDATE& GDK_TOUCH_END' GDK_TOUCH_CANCEL( GDK_EVENT_LAST) GdkEventTypeO =KhGdkPixbuf _GdkPixbuf  GTK_ICON_SIZE_INVALID GTK_ICON_SIZE_MENU GTK_ICON_SIZE_SMALL_TOOLBAR GTK_ICON_SIZE_LARGE_TOOLBAR GTK_ICON_SIZE_BUTTON GTK_ICON_SIZE_DND GTK_ICON_SIZE_DIALOGGtkIconSize V GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICAL GtkOrientationYGtkClipboard$A _GtkClipboardGtkSelectionData)h _GtkSelectionDataGtkWidget._GtkWidget& GtkWindow0_GtkWindow5bin79KGtkWidgetPrivateB  _GtkWidgetPrivate{ PGtkContainer.R_GtkContainer24{7GtkContainerPrivate/ _GtkContainerPrivate>GtkBin._GtkBin24>7GtkBinPrivate/  _GtkBinPrivateGtkWindowPrivate.8 _GtkWindowPrivate  r GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkWindowTypeuQGtkMisc._GtkMisc24{7GtkMiscPrivate/ _GtkMiscPrivateGtkMenuShell._GtkMenuShell2A4>7rGtkMenuShellPrivate0\ _GtkMenuShellPrivateAGtkMenu/_GtkMenuomenu_shellqt+GtkMenuPrivate1 _GtkMenuPrivateGtkMenuPositionFunc^%%&V~GtkBox/?_GtkBox3h5>8GtkBoxPrivate0} _GtkBoxPrivatehGtkTargetEntryC_GtkTargetEntry UtargetWqflagsXinfoY >[ GTK_DEST_DEFAULT_MOTION GTK_DEST_DEFAULT_HIGHLIGHT GTK_DEST_DEFAULT_DROP GTK_DEST_DEFAULT_ALLGtkDestDefaultsCGtkImage/_GtkImage[misc]`GtkImagePrivate0 _GtkImagePrivate J~ GTK_IMAGE_EMPTY GTK_IMAGE_PIXBUF GTK_IMAGE_STOCK GTK_IMAGE_ICON_SET GTK_IMAGE_ANIMATION GTK_IMAGE_ICON_NAME GTK_IMAGE_GICON GTK_IMAGE_SURFACEGtkImageTypeSGtkEntryF_GtkEntryJM{OGtkEntryPrivateG _GtkEntryPrivateGtkMenuItem-_GtkMenuItem1Ibin36xGtkMenuItemPrivate/c _GtkMenuItemPrivateI-GtkClipboardTextReceivedFunc >fVGtkIconTheme!5_GtkIconTheme!D!G!IC GtkIconThemePrivate!7- _GtkIconThemePrivate !c GTK_ICON_LOOKUP_NO_SVG GTK_ICON_LOOKUP_FORCE_SVG GTK_ICON_LOOKUP_USE_BUILTIN GTK_ICON_LOOKUP_GENERIC_FALLBACK GTK_ICON_LOOKUP_FORCE_SIZE GTK_ICON_LOOKUP_FORCE_REGULAR GTK_ICON_LOOKUP_FORCE_SYMBOLIC GTK_ICON_LOOKUP_DIR_LTR GTK_ICON_LOOKUP_DIR_RTLGtkIconLookupFlags!O1rget_image_pixbufFimageFicon_nameHfsizeIicon_themeJIwidthKbutton_pressC ,Vmenu item  drag_data_received}} ~xy2infotimeV!"copy_button_clicked0@=i# #V$  $  %0@1.;&ts&tE%0@a.P&ts'0@.&tv&t "paste_received$0@( $ )text%f (&V($( G*0@.&&"paste_button_clicked20@1y#2 #3V$5 f$ 6%0@1.]&ts&tE' 1@.&t0@&ts+paste_image 1@F,item~#V$ $%51@ /&tE-=1@./%O1@]/ &tv&ts.]1@//p1@m 0111121@n 0>31@n4d4h5_4l%1@/&ts&td&th%1@/&ts-1@0%2@20&tl&t0'.2@b0&ts&t 8&t0%~1@0 &ts%1@0* &ts%1@0N &t0&t@&tB%;2@0c &ts-C2@1"drag_data_getnP2@.,!#n #o#p2,infoq ,timer#sV$u}%b2@!&P%p2@/1"!&tv&ts.~2@/+copy_image2@:!,item~#V$ $%2@ /!&tE%2@!&Ps%2@c1!&tv&ts.2@/+drag_beginb2@>p"#b #c#dV$f%2@<"&P%2@1f"&tv&ts&t &t  .2@//3@3$6 661*1676 6075*856V-%3@1%33@1"&tB-;3@1%m3@(2A#&tw&tB&t2@&t &t0&t0%u3@i2V#&tw%3@2r#&tv&tw%3@1#&tB-3@1%3@(2#&tw&tB&t 1@&t &t0&t0%3@i2#&tw%3@2$&tv&tw'4@2&tv&t0&t0&t 0&t0&t3/C 4@F8%6^6i6t6} 666618&%0^0i0t0}0000!75@%A4@2$&ts%O4@]/%&tv&ts.]4@/'54@#3&ts9do_clipboard p4@I.,do_widget 24@.:vbox j:hbox :label $ $ /:ebox c:image $ ӄ%4@R3&&t0%4@/$&&t-4@r3%5@3E&&t$B%:5@(2w&&t3B;t&t DM&t0&t0%N5@3&&t1&t0%`5@3&&ts&t8%q5@4&&ts%}5@94&&t<B%5@X4'&ts&t0&t 0&t0%5@3'&t0&t4%5@35'&tv&t8%5@X4c'&ts&tv&t0&t 0&t0-5@4%6@X4'&tv&tu&t1&t 1&t0%"6@1'&tB-*6@4%P6@X4'&tv&tw&t0&t 0&t0%|6@(2%(&tw&ttB&t0@&t u&t0&t0%6@94=(&t|B%6@X4d(&ts&t0&t 0&t0%6@3~(&t0&t4%6@3(&tv&t8%6@X4(&ts&tv&t0&t 0&t0-6@4%!7@X4(&tv&tu&t1&t 1&t0%-7@1)&tB-57@4%[7@X4M)&tv&tw&t0&t 0&t0%7@(2)&tw&ttB&t0@&t u&t0&t0%7@94)&tB%7@X4)&ts&t0&t 0&t0%7@3)&t0&t4%7@3)&tv&t8%8@X4+*&ts&tv&t0&t 0&t0%8@4I*&tB&t4-8@5%*8@4n*&ts&tw%68@4*&tv&ts%^8@5*&ts&t &t0&t 0&t2%f8@[5*&ts%8@(2 +&ts&tB&t2@&t w&t0&t0%8@(2F+&ts&tB&tP2@&t w&t0&t0%8@5s+&ts&t7&t0&t 0&t2%8@5+&ts%9@(2+&ts&tB&t 4@&t w&t0&t0%F9@(2,&ts&t$B&t3@&t w&t0&t0%Z9@4,&t7B&t4-a9@5%o9@4C,&ts&tw%{9@4_,&tv&ts%9@5,&ts&t &t0&t 0&t2%9@[5,&ts%9@(2,&ts&tB&t2@&t w&t0&t0%:@(2-&ts&tB&tP2@&t w&t0&t0%+:@5H-&ts&t7&t0&t 0&t2%3:@5]-&ts%_:@(2-&ts&tB&t 4@&t w&t0&t0%:@(2-&ts&t$B&t3@&t w&t0&t0%:@ /-&tE':@5&t0&t0-4@6-4@G6-4@h6gtk_clipboard_set_text ڴ.f>gtk_entry_set_text.f>gtk_clipboard_request_text /V?gtk_clipboard_get ./,=gtk_clipboard_wait_for_image ]/>gtk_image_set_from_pixbuf/@g_object_unref /V>gtk_image_get_icon_name//=gtk_widget_get_screen0 ?gtk_icon_theme_get_for_screen!I20?gtk_icon_size_lookup"ob0?gtk_icon_theme_load_icon!0Ifc?gtk_image_get_storage_type~0>g_loge0ffA?gtk_image_get_pixbuf1=g_object_ref V/1V?gtk_selection_data_set_pixbufc12>gtk_clipboard_set_image ލ1>gtk_drag_set_icon_pixbuf1Bgtk_menu_new ?libintl_gettext#1?gtk_menu_item_new_with_mnemonicv (2f=g_signal_connect_data  i2VfV@gtk_widget_show2 >gtk_menu_shell_append]2x >gtk_menu_popup2%  V?gtk_selection_data_get_pixbuf333P?gtk_selection_data_get_lengthR33?gtk_window_new r3@gtk_window_set_screen38>gtk_window_set_title38f?gtk_box_newP 3>gtk_container_set_border_width4>gtk_container_add94 ?gtk_label_new$] X4f>gtk_box_pack_startT4} Bgtk_entry_new ?gtk_button_new_with_mnemonic%i 4f?gtk_image_new_from_icon_name 5fBgtk_event_box_new&M >gtk_drag_source_setP5  P5 V5>gtk_drag_source_add_image_targets5 >gtk_drag_dest_setp5 [P5 >gtk_drag_dest_add_image_targets5 @gtk_clipboard_set_can_store 6P5=gtk_widget_get_visible`G6 @gtk_widget_destroyh6 Cgtk_widget_show_all GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddencolorsel.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo:@echarunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64, guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong6*guint7gfloat9floatgdouble:)doublegpointerMITGData$b_GDataU long double GType~ GValue _GValuej g_typem dataz GTypeClass _GTypeClass g_type GTypeInstance _GTypeInstanceB g_classBTpv_intqv_uintrv_longsv_ulongtv_int64ulv_uint64vzv_floatwv_doublexv_pointery3YGClosureJ  _GClosure-#meta_marshal_nousen_guardsn_fnotifiers n_inotifiersin_inotifyfloatingderivative_flagin_marshalis_invalid marshal data3 notifiers GClosureNotifyDataKG _GClosureNotifyData data3 notifyGCallbackVNGClosureNotify_3HN33-'G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags _GObject  g_type_instance #  qdata jGInitiallyUnowned <cairo_t |_cairoGdkRGBA u _GdkRGBA %  red ' green ( blue ) alpha *GdkScreen ~_GdkScreen  JGTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINEGtkAlign P5 VGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientation Y nGTK_SHADOW_NONEGTK_SHADOW_INGTK_SHADOW_OUTGTK_SHADOW_ETCHED_INGTK_SHADOW_ETCHED_OUT GtkShadowType GtkWidget. _GtkWidget parent_instance; GtkWindow0 _GtkWindow5 bin7 9W GtkWidgetPrivateB" _GtkWidgetPrivate GtkContainer.[ _GtkContainer2 widget47 GtkContainerPrivate/ _GtkContainerPrivate G GtkBin. _GtkBin2 4G 7& GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate.D _GtkWindowPrivate, r GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu] L GTK_RESPONSE_NONEGTK_RESPONSE_REJECT~GTK_RESPONSE_ACCEPT}GTK_RESPONSE_DELETE_EVENT|GTK_RESPONSE_OK{GTK_RESPONSE_CANCELzGTK_RESPONSE_CLOSEyGTK_RESPONSE_YESxGTK_RESPONSE_NOwGTK_RESPONSE_APPLYvGTK_RESPONSE_HELPuGtkDialogc _GtkDialog m windowor GtkDialogPrivated _GtkDialogPrivate  GtkBox/ _GtkBox3B 5G 8g GtkBoxPrivate0W _GtkBoxPrivateB GtkFrame.} _GtkFrame2 bin4 7 GtkFramePrivate/ _GtkFramePrivate m GtkColorChooser# _GtkColorChooser   change_color_callback+:@x button+5 data,3dialog.5 :@ tDB:@H tst1:@p tstM+;@tstSBt@;@t 0t0t0 8;@response_cb@;@=!dialog response_iduser_data 3 \;@p;@!tstM };@"draw_callback;@*widget5 crdata3;@NtstM#;@zts$do_colorsel=5 ;@udo_widget=5 vbox?5 (button@5 F%;@%;@%;@*<@t0;<@t%L<@a<@.t\B<@tjB&tt Mt0t0<@Ut8<@6t1t8<@UQtvt8<@ftv<@zt0=@t1,=@tvt1t 1t0%1=@Kf=@trBt;@t 0t0t0=@gtt%=@=@/twB=@Jtst2=@etst3=@tvtst0t 0t0#>@tstBt:@t 0t0t0'window 5 M'da 5 M'color M'frame5 `M(gtk_color_chooser_dialog_new?5 HCA )gtk_window_set_modalLpA *gtk_color_chooser_set_rgbaE  +g_signal_connect_data3C3')gtk_widget_show_all5 )gtk_widget_destroy!5 *gtk_color_chooser_get_rgbaBN /*gdk_cairo_set_source_rgba(z )cairo_paint +gtk_widget_get_visible`5 (gtk_window_new5  +gtk_widget_get_screen)5 )gtk_window_set_screen.A )*gtk_window_set_titleUA C*gtk_container_set_border_width (gtk_box_newP5 *gtk_container_add 5 (gtk_frame_newU5 C*gtk_frame_set_shadow_typek n*gtk_box_pack_startTK 5 ,gtk_drawing_area_newH5 )gtk_widget_set_size_request5 (gtk_button_new_with_mnemonici5 C)gtk_widget_set_halign;5 -gtk_widget_set_valignB5 xGGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddencombobox.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo0>@ charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned chargint8csigned charguint8Egint16 short intguint16!guint32&gint64, guint64-long long unsigned intgsize;gchar.gshort/glong0gint1gboolean2'gulong60guint7gfloat9lfloatgdouble:doublegpointerMGDestroyNotifyWGPtrArray' _GPtrArray5% pdata7+ len8Q7 GData$E _GDataGSList%[ _GSList' q) next*M'*/G_REGEX_CASELESSG_REGEX_MULTILINEG_REGEX_DOTALLG_REGEX_EXTENDEDG_REGEX_ANCHOREDG_REGEX_DOLLAR_ENDONLY G_REGEX_UNGREEDYG_REGEX_RAWG_REGEX_NO_AUTO_CAPTURE G_REGEX_OPTIMIZEG_REGEX_FIRSTLINEG_REGEX_DUPNAMES G_REGEX_NEWLINE_CRG_REGEX_NEWLINE_LFG_REGEX_NEWLINE_CRLFG_REGEX_NEWLINE_ANYCRLFG_REGEX_BSR_ANYCRLFG_REGEX_JAVASCRIPT_COMPATGRegexCompileFlags=G_REGEX_MATCH_ANCHOREDG_REGEX_MATCH_NOTBOLG_REGEX_MATCH_NOTEOLG_REGEX_MATCH_NOTEMPTYG_REGEX_MATCH_PARTIALG_REGEX_MATCH_NEWLINE_CRG_REGEX_MATCH_NEWLINE_LFG_REGEX_MATCH_NEWLINE_CRLFG_REGEX_MATCH_NEWLINE_ANYG_REGEX_MATCH_NEWLINE_ANYCRLFG_REGEX_MATCH_BSR_ANYCRLFG_REGEX_MATCH_BSR_ANYG_REGEX_MATCH_PARTIAL_SOFTG_REGEX_MATCH_PARTIAL_HARDG_REGEX_MATCH_NOTEMPTY_ATSTARTGRegexMatchFlagsJ8 long doubleGType~GValue_ _GValue j  mB q zQ GTypeClass_GTypeClassBGTypeInterface_GTypeInterfaceBg_instance_typeBGTypeInstance+_GTypeInstanceUg_classGInterfaceInfol_GInterfaceInfo .interface_init0% interface_finalize1@ interface_data2GClassInitFunciGInstanceInitFunc    GInterfaceInitFuncGInterfaceFinalizeFunc G_TYPE_FLAG_ABSTRACTG_TYPE_FLAG_VALUE_ABSTRACT GTypeFlags_ P P pQ v_int q'v_uint rQv_long sv_ulong tCv_int64 uv_uint64 vv_float w^v_double xuv_pointer y a $ x G_PARAM_READABLEG_PARAM_WRITABLEG_PARAM_READWRITEG_PARAM_CONSTRUCTG_PARAM_CONSTRUCT_ONLYG_PARAM_LAX_VALIDATIONG_PARAM_STATIC_NAME G_PARAM_PRIVATE G_PARAM_STATIC_NICKG_PARAM_STATIC_BLURBG_PARAM_EXPLICIT_NOTIFYG_PARAM_DEPRECATEDxGParamFlags a GParamSpec _GParamSpec( G   name  flags x  value_type B owner_type B _nick % _blurb % qdata ' 2 Q param_id Q$ GClosure J] _GClosure 2 ?meta_marshal_nouse ?n_guards ?n_fnotifiers ? n_inotifiers ?in_inotify ?floating ?derivative_flag ?in_marshal ?is_invalid ? marshal  q Ǝ notifiers D GClosureNotifyData K _GClosureNotifyData q  notify GCallback V1GClosureNotify _  M ? Q Q  yG_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags JGObject  _GObject    2 ? qdata '_GObjectClassD <g_type_class >construct_properties Aconstructor Eset_property I get_property Mdispose Qfinalize Rdispatch_properties_changed Tnotify X. constructed \$flags _(pdummy b4,GInitiallyUnowned GInitiallyUnownedClass GObjectConstructParam B_GObjectConstructParam mpspec oG value p Q G Q G BQ%QG .G D$GBinding/T _GBindingD`G_BINDING_DEFAULTG_BINDING_BIDIRECTIONALG_BINDING_SYNC_CREATEG_BINDING_INVERT_BOOLEANGBindingFlagsfe3PangoAttributeC  _PangoAttribute X klass start_indexQ end_indexQPangoAttrClassDn_PangoAttrClasscopy>destroyOequali PangoAttrListn _PangoAttrListPANGO_ATTR_INVALIDPANGO_ATTR_LANGUAGEPANGO_ATTR_FAMILYPANGO_ATTR_STYLEPANGO_ATTR_WEIGHTPANGO_ATTR_VARIANTPANGO_ATTR_STRETCHPANGO_ATTR_SIZEPANGO_ATTR_FONT_DESCPANGO_ATTR_FOREGROUND PANGO_ATTR_BACKGROUND PANGO_ATTR_UNDERLINE PANGO_ATTR_STRIKETHROUGH PANGO_ATTR_RISE PANGO_ATTR_SHAPEPANGO_ATTR_SCALEPANGO_ATTR_FALLBACKPANGO_ATTR_LETTER_SPACINGPANGO_ATTR_UNDERLINE_COLORPANGO_ATTR_STRIKETHROUGH_COLORPANGO_ATTR_ABSOLUTE_SIZEPANGO_ATTR_GRAVITYPANGO_ATTR_GRAVITY_HINTPangoAttrTypeX339$OD3i33Ucairo_t|~ _cairo_cairo_rectangle_intxywidthheight cairo_rectangle_int_tocairo_region_t  _cairo_regionGdkRectangleNGdkAtomVGM _GdkAtomGdkDevicexh _GdkDeviceGdkDragContexty _GdkDragContextGdkScreen~ _GdkScreenGdkWindow _GdkWindowGdkEventAny{_GdkEventAny &e'#, VGdkEventExpose|<_GdkEventExpose$e'#,Varea $ region!),count"' GdkEventVisibility}_GdkEventVisibility46e'7#,8V<9' GdkEventMotion~,_GdkEventMotion@TVe'W#,XVY xZuy[uaxes\/, <]Q$is_hint^(_5,,`u0`u8GdkEventButton_GdkEventButton@e'#,V xuyuaxes/, <Q$buttonQ(5,,u0u8GdkEventTouch_GdkEventTouchHe'#,V xuyuaxes/, <Q$sequence;,(emulating_pointer3,5,0u8u@GdkEventScroll_GdkEventScrollPye'#,V xuyu<Q direction Y($ 5,( u0 u8delta_x u@delta_y uHGdkEventKey_GdkEventKey(/U1e'2#,3V4 <5Qkeyval6Qlength7'string8%hardware_keycode9 group:r"is_modifier;Q$GdkEventFocusj_GdkEventFocus sue'v#,wVinx GdkEventCrossing_GdkEventCrossingHXZe'[#,\Vsubwindow]#, ^x_uy`u au(bu0modec *8detaild )<focuse3@<fQDGdkEventConfigure_GdkEventConfigure-e'#,Vx' y'width'height'GdkEventPropertyE_GdkEventPropertye'#,Vatom8 <QGdkEventSelection_GdkEventSelection We'#,V8 target8|8requestor#,GdkEventOwnerChanger_GdkEventOwnerChange  e'#,Vowner#, reason ,8selection_timeGdkEventProximity" _GdkEventProximity e'#,V 5,GdkEventDND _GdkEventDNDR !Se'T#,UVcontextVA, XY Y GdkEventWindowState$!_GdkEventWindowState!e'#,Vchanged_mask $+ new_window_state!$+GdkEventSetting!_GdkEventSetting" e' #, Vaction + name GdkEventGrabBroken+"_GdkEventGrabBroken9":e';#,<Vkeyboard=3 implicit>3grab_window?#,GdkEventSequence" _GdkEventSequenceGdkEvent"_GdkEventP5$e' any expose& visibility motion button touch scroll keyy crossing focus_changeU configure|- owner_changeW proximity dnd window_state ! setting! grab_broken"""e'GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_EVENT_LAST)GdkEventTypeO;$Z'GDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCUREDGdkVisibilityState^z'lY(GDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTHGdkScrollDirectionr' )GDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWNGdkNotifyTypet( *GDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCHGdkCrossingMode )$+GDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOWGDK_WINDOW_STATE_FOCUSEDGDK_WINDOW_STATE_TILEDGdkWindowState"*+GDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETEDGdkSettingAction;+ ,GDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSEGdkOwnerChange+uW"t-GTK_DELETE_CHARSGTK_DELETE_WORD_ENDSGTK_DELETE_WORDSGTK_DELETE_DISPLAY_LINESGTK_DELETE_DISPLAY_LINE_ENDSGTK_DELETE_PARAGRAPH_ENDSGTK_DELETE_PARAGRAPHSGTK_DELETE_WHITESPACEGtkDeleteTypeM,-GTK_DIR_TAB_FORWARDGTK_DIR_TAB_BACKWARDGTK_DIR_UPGTK_DIR_DOWNGTK_DIR_LEFTGTK_DIR_RIGHTGtkDirectionType.--GTK_TEXT_DIR_NONEGTK_TEXT_DIR_LTRGTK_TEXT_DIR_RTLGtkTextDirection-,8/GTK_MOVEMENT_LOGICAL_POSITIONSGTK_MOVEMENT_VISUAL_POSITIONSGTK_MOVEMENT_WORDSGTK_MOVEMENT_DISPLAY_LINESGTK_MOVEMENT_DISPLAY_LINE_ENDSGTK_MOVEMENT_PARAGRAPHSGTK_MOVEMENT_PARAGRAPH_ENDSGTK_MOVEMENT_PAGESGTK_MOVEMENT_BUFFER_ENDSGTK_MOVEMENT_HORIZONTAL_PAGES GtkMovementStep7.V/GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkOrientationYP/H0GTK_STATE_NORMALGTK_STATE_ACTIVEGTK_STATE_PRELIGHTGTK_STATE_SELECTEDGTK_STATE_INSENSITIVEGTK_STATE_INCONSISTENTGTK_STATE_FOCUSEDGtkStateType/1GTK_DRAG_RESULT_SUCCESSGTK_DRAG_RESULT_NO_TARGETGTK_DRAG_RESULT_USER_CANCELLEDGTK_DRAG_RESULT_TIMEOUT_EXPIREDGTK_DRAG_RESULT_GRAB_BROKENGTK_DRAG_RESULT_ERRORGtkDragResult]091GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTHGTK_SIZE_REQUEST_WIDTH_FOR_HEIGHTGTK_SIZE_REQUEST_CONSTANT_SIZEGtkSizeRequestMode=,1b3GTK_STATE_FLAG_NORMALGTK_STATE_FLAG_ACTIVEGTK_STATE_FLAG_PRELIGHTGTK_STATE_FLAG_SELECTEDGTK_STATE_FLAG_INSENSITIVEGTK_STATE_FLAG_INCONSISTENTGTK_STATE_FLAG_FOCUSED GTK_STATE_FLAG_BACKDROPGTK_STATE_FLAG_DIR_LTRGTK_STATE_FLAG_DIR_RTLGTK_STATE_FLAG_LINKGTK_STATE_FLAG_VISITEDGTK_STATE_FLAG_CHECKEDGtkStateFlagsp1GtkSelectionData)D3 _GtkSelectionDataGtkStyle+g3 _GtkStyleGtkTooltip-3 _GtkTooltipGtkWidget.3 _GtkWidget3  -I GtkWindow03 _GtkWindow5 4 bin7P -9Q>ATK_ROLE_INVALIDATK_ROLE_ACCEL_LABELATK_ROLE_ALERTATK_ROLE_ANIMATIONATK_ROLE_ARROWATK_ROLE_CALENDARATK_ROLE_CANVASATK_ROLE_CHECK_BOXATK_ROLE_CHECK_MENU_ITEMATK_ROLE_COLOR_CHOOSER ATK_ROLE_COLUMN_HEADER ATK_ROLE_COMBO_BOX ATK_ROLE_DATE_EDITOR ATK_ROLE_DESKTOP_ICON ATK_ROLE_DESKTOP_FRAMEATK_ROLE_DIALATK_ROLE_DIALOGATK_ROLE_DIRECTORY_PANEATK_ROLE_DRAWING_AREAATK_ROLE_FILE_CHOOSERATK_ROLE_FILLERATK_ROLE_FONT_CHOOSERATK_ROLE_FRAMEATK_ROLE_GLASS_PANEATK_ROLE_HTML_CONTAINERATK_ROLE_ICONATK_ROLE_IMAGEATK_ROLE_INTERNAL_FRAMEATK_ROLE_LABELATK_ROLE_LAYERED_PANEATK_ROLE_LISTATK_ROLE_LIST_ITEMATK_ROLE_MENU ATK_ROLE_MENU_BAR!ATK_ROLE_MENU_ITEM"ATK_ROLE_OPTION_PANE#ATK_ROLE_PAGE_TAB$ATK_ROLE_PAGE_TAB_LIST%ATK_ROLE_PANEL&ATK_ROLE_PASSWORD_TEXT'ATK_ROLE_POPUP_MENU(ATK_ROLE_PROGRESS_BAR)ATK_ROLE_PUSH_BUTTON*ATK_ROLE_RADIO_BUTTON+ATK_ROLE_RADIO_MENU_ITEM,ATK_ROLE_ROOT_PANE-ATK_ROLE_ROW_HEADER.ATK_ROLE_SCROLL_BAR/ATK_ROLE_SCROLL_PANE0ATK_ROLE_SEPARATOR1ATK_ROLE_SLIDER2ATK_ROLE_SPLIT_PANE3ATK_ROLE_SPIN_BUTTON4ATK_ROLE_STATUSBAR5ATK_ROLE_TABLE6ATK_ROLE_TABLE_CELL7ATK_ROLE_TABLE_COLUMN_HEADER8ATK_ROLE_TABLE_ROW_HEADER9ATK_ROLE_TEAR_OFF_MENU_ITEM:ATK_ROLE_TERMINAL;ATK_ROLE_TEXT<ATK_ROLE_TOGGLE_BUTTON=ATK_ROLE_TOOL_BAR>ATK_ROLE_TOOL_TIP?ATK_ROLE_TREEATK_ROLE_TREE_TABLEATK_ROLE_UNKNOWNATK_ROLE_VIEWPORTATK_ROLE_WINDOWATK_ROLE_HEADERATK_ROLE_FOOTERATK_ROLE_PARAGRAPHATK_ROLE_RULERATK_ROLE_APPLICATIONATK_ROLE_AUTOCOMPLETEATK_ROLE_EDITBARATK_ROLE_EMBEDDEDATK_ROLE_ENTRYATK_ROLE_CHARTATK_ROLE_CAPTIONATK_ROLE_DOCUMENT_FRAMEATK_ROLE_HEADINGATK_ROLE_PAGEATK_ROLE_SECTIONATK_ROLE_REDUNDANT_OBJECTATK_ROLE_FORMATK_ROLE_LINKATK_ROLE_INPUT_METHOD_WINDOWATK_ROLE_TABLE_ROWATK_ROLE_TREE_ITEMATK_ROLE_DOCUMENT_SPREADSHEETATK_ROLE_DOCUMENT_PRESENTATIONATK_ROLE_DOCUMENT_TEXTATK_ROLE_DOCUMENT_WEBATK_ROLE_DOCUMENT_EMAILATK_ROLE_COMMENTATK_ROLE_LIST_BOXATK_ROLE_GROUPINGATK_ROLE_IMAGE_MAPATK_ROLE_NOTIFICATIONATK_ROLE_INFO_BARATK_ROLE_LEVEL_BARATK_ROLE_TITLE_BARATK_ROLE_BLOCK_QUOTEATK_ROLE_AUDIOATK_ROLE_VIDEOATK_ROLE_DEFINITIONATK_ROLE_ARTICLEATK_ROLE_LANDMARKATK_ROLE_LOGATK_ROLE_MARQUEEATK_ROLE_MATHATK_ROLE_RATINGATK_ROLE_TIMERATK_ROLE_DESCRIPTION_LISTATK_ROLE_DESCRIPTION_TERMATK_ROLE_DESCRIPTION_VALUEATK_ROLE_STATICATK_ROLE_MATH_FRACTIONATK_ROLE_MATH_ROOTATK_ROLE_SUBSCRIPTATK_ROLE_SUPERSCRIPTATK_ROLE_LAST_DEFINEDAtkRolee 4yM?ATK_LAYER_INVALIDATK_LAYER_BACKGROUNDATK_LAYER_CANVASATK_LAYER_WIDGETATK_LAYER_MDIATK_LAYER_POPUPATK_LAYER_OVERLAYATK_LAYER_WINDOWAtkLayer>AtkObjectp?_AtkObject$@description% name%accessible_parentQ@role>relation_setW@layerM? AtkRelationSet@ _AtkRelationSet+Q@ - relations/< ^?@1@GTK_WIDGET_HELP_TOOLTIPGTK_WIDGET_HELP_WHATS_THISGtkWidgetHelpType4]@GtkWidgetPrivateB@ _GtkWidgetPrivateGtkWidgetClassC@!_GtkWidgetClasskImactivate_signalqQDdispatch_child_properties_changedtIHdestroyyILshowzIPshow_all{IThide|IXmap}I\unmap~I`realizeIdunrealizeIhsize_allocateJlstate_changed-Jpstate_flags_changedCJtparent_setYJxhierarchy_changedYJ|style_setuJdirection_changedJgrab_notifyJchild_notifyJdrawJget_request_modeJget_preferred_heightKget_preferred_width_for_height!Kget_preferred_widthKget_preferred_height_for_width!Kmnemonic_activate;Kgrab_focusIfocusUKmove_focuskKkeynav_failedUKeventKbutton_press_eventKbutton_release_eventKscroll_eventKmotion_notify_eventKdelete_eventLdestroy_eventLkey_press_event%Lkey_release_event%Lenter_notify_eventELleave_notify_eventELconfigure_eventeLfocus_in_eventLfocus_out_eventLmap_eventLunmap_eventLproperty_notify_eventL"selection_clear_eventL"selection_request_eventL"selection_notify_eventL"proximity_in_eventL "proximity_out_eventL"visibility_notify_eventM"window_state_event%M"damage_eventEM"grab_broken_eventeM "selection_getM$"selection_receivedM("drag_beginM,"drag_endM0"drag_data_getM4"drag_data_deleteM8"drag_leaveM<"drag_motion%N@"drag_drop %ND"drag_data_receivedTNH"drag_failedsNL"popup_menuNP"show_help$NT"get_accessible)NX"screen_changed+N\"can_activate_accel-N`"composited_changed1Id"query_tooltip3Oh"compute_expand91Ol"adjust_size_request=QOp"adjust_size_allocationA{Ot"style_updatedHIx"touch_eventJO|"get_preferred_height_and_baseline_for_widthMO"adjust_baseline_requestSK"adjust_baseline_allocationVO"queue_draw_regionXO#-]P#B`1#Qa1GtkWidgetClassPrivateDI _GtkWidgetClassPrivateGtkAllocationT$3@IIQIIIIJIJIJ-JIH0JCJI33JYJIIIJoJIoJW3_JJI-{JJI3JJIG J3JIJ1JIJKIJ!KI'K3;KI3'K3UKI-AKkKI-[K3KI5$qK3KIKK3KIKK3KIKK3KIKK3LILy L3?LI?L+L3_LI_LKL3LILUkL3LIL-L3LILL3LIL L3LILL3MIM ! M3?MI?M&+M3_MI_M"KMMIMQQ,3kMMIMQMMIA,MMIA,MQQMMIA,QM3%NIA,''QNTNIA,''MQQ+N3sNIA,1ZN3NIyN3NI@NQ@NINNIG,N3NIQN3OI''3Or3N1OIOQOI/7O{OI/WO3OIOOOI'OOIOOIOOOI3GtkContainer."P _GtkContainer2TP widget43 -7PGtkContainerPrivate/oP _GtkContainerPrivateTPPGtkBin.P _GtkBin2P 4P -7PGtkBinPrivate/P _GtkBinPrivatePGtkWindowPrivate. Q _GtkWindowPrivatePrVQGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu$QGtkBox/yQ _GtkBox3Q 5P -8QGtkBoxPrivate0Q _GtkBoxPrivateQGtkTreeIter'Q _GtkTreeIter]U _GtkListStore,mU . -1U GtkListStorePrivate)U _GtkListStorePrivatemUU3URRGtkEntry FU _GtkEntry JU  M3 - OXGtkEntryPrivate GV _GtkEntryPrivateGtkEntryClass HX%move_cursor ^X%insert_at_cursor tX%delete_from_cursor X%backspace >X%cut_clipboard >X%copy_clipboard >X%paste_clipboard >X%toggle_overwrite >X%get_text_area_size X%get_frame_size X%_gtk_reserved1 1%_gtk_reserved2 1%_gtk_reserved3 1%_gtk_reserved4 1%_gtk_reserved5 1&B 1&Q 1U'X'XIUX>X'X3X^X'X8/'3DXtX'XdXX'X-'zXX'XXGtkTreeViewRowSeparatorFunc!ĤUGtkComboBox"&X _GtkComboBox"*Y ",P -"/MYGtkComboBoxPrivate"(8Y _GtkComboBoxPrivateYXGtkCellLayout#%nY _GtkCellLayoutGtkCellLayoutDataFunc#4YYYYSRRYYGtkComboBoxText$%Y _GtkComboBoxText $)Z $,X -$.FZGtkComboBoxTextPrivate$&-Z _GtkComboBoxTextPrivateZGtkTreeStore%)`Z _GtkTreeStore%-Z %/ -%1Z GtkTreeStorePrivate%+Z _GtkTreeStorePrivateZPkQY*ULZ[ICON_NAME_COLTEXT_COLMaskEntry[ _MaskEntryF[ vU mask%MaskEntryClass\[$_MaskEntryClass[ 'V'mask_entry_class_init'[(klass'[F[)mask_entry_init 0>@ [*v [[)mask_entry_editable_init,@>@ +\+iface,+\?S'mask_entry_set_backgroundq\,v[-.attrs $U)mask_entry_changedP>@]+editableT/1\Y>@0T\d1?]2a\3>@n4>@n]5t 5t 5t 4>@n]5tv4>@o5]5ts5tv6>@>o4h>@boT]5ts4>@on]5t05t 07>@o5ts5t08mask_entry_class_intern_init>@3]9klass4?@o]5ts7?@o5ts5tȠM8is_capital_sensitive0?@E^:`Y9cellS:πR:lЌR :qю;34L?@p^5t5t 6u?@SpO_9modeleR:lfR:qg=pathiR=resultj34?@tp(_5t5t4?@p=_5ts7?@p5ts8set_sensitiveN?@^9`:`NY9cellOS:PR:lQR :qR=pathTR=indicesU7;V3J4?@tp`5t5t 4?@p`5ts4?@p/`5ts6@@Spv` groupw% capitalx%?capitalsya|@lQ{?iter2Q|=storeZt=i'4B@p`5t15t@4B@qa5tv5tw5t04B@@qIa5tv5tw5t05t u5t 4C@qma5tv5t|5tw7,C@@q5tv5t|5t05t u5t c`a$8Amask_entry_get_typeB@C@c?g_define_type_id__volatilecĠM1#bB@C@7`C@fq5tĠMChC@=g_define_type_idB1 b?g_implement_interface_info"cd3C@q7C@q5ts5tdDC@b7C@q5tĠM5ts4tC@ rb5tB3{C@3r7C@Mr5ts5t 5t >@5tH5t0>@5t0UEcreate_icon_storeRcFicon_namescFlabelscFcellview'IGl(QFstore)ZFi*'c$Hfill_combo_entrycIcomboIJdo_combobox3ID@Kn+do_widget3IK5IMLvbox6ILframe6ILbox6IZLcombo6IMv6I6Lmodel7RjLrenderer8SLpath9RKl:QHN'cYD@8VeO8PEcPWcH2ecPuc2c2c23E@r4F@r,e5t25t@5t@3F@r3 F@s4PF@"sve5ts5tv5t05t 5t15t 4pF@re5ts5tv4F@"se5ts5tv5t05t 05t15t&B5t 7F@Hs5tNcI@P|f0cQ4I@is"f5ts5tWB4I@isAf5ts5t[B4I@is`f5ts5t_B7I@is5ts5tcB3D@s3)D@Hs3ED@s4dD@sf5tu4xD@tf5t3D@-t4D@Vtf5tB4D@}tg5tBQt5t M5tu5tu4D@t+g5t:4D@tEg5t15t24E@uZg5tw4E@5urg5tB4EE@Tug5tw5ts5tu5t u5tu4YE@tg5t15tu4oE@tg5tw5t54E@ug5ts5t4F@u h5ts4F@u!h5ts4F@u?h5t5tv3F@u4F@ujh5tv5ts5t04G@)vh5tv5ts5t0B5t 05t04AG@[vh5tv5ts5t?@5t 05t03FG@v4\G@uh5tv5ts5t14G@)v+i5tv5ts5t:B5t 15t04G@[v]i5tv5ts5t?@5t 05t04G@vi5tv5t?@5t05t 04G@wi5tv5t04G@5ui5t?B4 H@Tui5tu5ts5t05t 05t04H@tj5t15t042H@t j5t5t54BH@u>j5ts5t3GH@9`4QH@u\j5tv4[H@uqj5tv4kH@uj5t5ts3pH@v4H@uj5ts5t5t14H@)vj5ts5t5t:B5t 05t04H@[v$k5ts5t5t0?@5t 05t04H@-wEk5t05t85t 4I@^wjk5tv5tw5t4I@pk5t4 I@wk5ts5tw4,I@5uk5tNB4RI@Tuk5tu5ts5t05t 05t04fI@tk5t15t04xI@tl5tv5t54I@u4l5ts5tv3I@w4I@uYl5tv5ts3I@a4I@wvl5t04I@xl5ts4 J@3xl5ts4J@ul5ts5tv4!J@5ul5tB4GJ@Tum5tu5ts5t05t 05t04[J@tm5t15t04mJ@t7m5tv5t54yJ@uSm5ts5tv3~J@Zx4J@xxm5ts5tB5tB4J@xxm5ts5tB5tB4J@xxm5ts5tB5tB4J@um5tv5ts3J@x4J@x2n5ts5tB5tw5t :B5t17 K@u5tv5tw?mask_entry_parent_class̠M?MaskEntry_private_offset'ȠMRpango_attr_list_new$USpango_attr_foreground_newnTpango_attr_list_inserto$UTgtk_entry_set_attributes >o'X$UTpango_attr_list_unrefbo$USgtk_entry_get_text o'XSg_regex_match_simple3o/Sg_type_class_peek_parentoTg_type_class_adjust_private_offsetpSgtk_tree_model_iter_has_childW3SpRRTg_object_set tpUSgtk_tree_model_get_pathERpRRVgtk_tree_path_get_indicesڋpRWgtk_tree_path_freepRVgtk_tree_store_new%CZq'UWgtk_tree_store_append%@qZRRWgtk_tree_store_set%UfqZRUVg_once_init_enter&3qqqXYgtk_editable_get_typeTBTg_type_add_interface_staticqBBq"cWg_once_init_leave& rqVg_intern_static_string'@3rYgtk_entry_get_type BSg_type_register_static_simpleBrBQQ Ygtk_cell_view_new(HIVgtk_list_store_newCZr'UWgtk_list_store_appendsZRVlibintl_gettext)"sWgtk_list_store_setUHsZRUTgtk_widget_destroyisIWgtk_combo_box_text_append_text$CsZSgtk_widget_get_visible`3sITgtk_widget_show_allsIVgtk_window_newItVQSgtk_widget_get_screenG,-tITgtk_window_set_screenVtPG,Wgtk_window_set_title}tPSg_signal_connect_data Ct  yWgtk_container_set_border_widthtPQVgtk_box_newPIu/'Wgtk_container_add5uPIVgtk_frame_new*UITuWgtk_box_pack_startTuZI33QVgtk_combo_box_new_with_model"YIuRTg_object_unref uYgtk_cell_renderer_pixbuf_new+@SWgtk_cell_layout_pack_start#r)vYS3Wgtk_cell_layout_set_attributes#~[vYSUWgtk_cell_layout_set_cell_data_func#vYS~YYgtk_cell_renderer_text_new,ESWgtk_combo_box_set_row_separator_func"wSYXWgtk_combo_box_set_active"-wSY'Vgtk_tree_path_new_from_indicesȆR^w'USgtk_tree_model_get_iter73wRRRWgtk_combo_box_set_active_iter"wSYRYgtk_combo_box_text_new_with_entry$AISg_object_new xBUVgtk_bin_get_childPI3xZWgtk_container_removeZxPIYgtk_combo_box_text_new$?IWgtk_combo_box_text_append$ZxZYgtk_entry_new IZg_object_bind_property{_1GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddencss_accordion.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo K@~k#charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charguint8Dshort intguint32&gint64,guint64-long long unsigned intgssize:gsize;gchar.glong0gint1gboolean2gulong6/guint7gfloat9Afloatgdouble:YdoublegpointerMgconstpointerNGBytes$_GBytesGQuark$GError* _GError , domain. code/ message0 GData$$_GData8 long double GType~ GValuev _GValue j g_type mY data z GTypeClass _GTypeClassg_typeY GTypeInstance _GTypeInstanceg_classg4g pv_int qv_uint r&v_long sv_ulong tv_int64 uv_uint64 vv_float w3v_double xJv_pointer yc9#GClosure J _GClosure 9 meta_marshal_nouse n_guards n_fnotifiers  n_inotifiers in_inotify floating derivative_flag in_marshal is_invalid  marshal  data c notifiers  GClosureNotifyData K' _GClosureNotifyData ` data c notify qGCallback VGClosureNotify _c(&.cc&  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject + _GObject o g_type_instance 9  qdata >GInitiallyUnowned + G_RESOURCE_LOOKUP_FLAGS_NONE GResourceLookupFlags dJHGTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINEGtkAlignPVGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientationYXGtkStyleContext, _GtkStyleContext+ parent_object-4.1 GtkWidget. _GtkWidgetA o4 GtkWindow0R _GtkWindow5~ bin7g 49 GtkWidgetPrivateB _GtkWidgetPrivateGtkCallback^    c ~ A GtkContainer. _GtkContainer2* widget4 47[ GtkContainerPrivate/E _GtkContainerPrivate*  GtkBin.u _GtkBin2 *4 47 GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate. _GtkWindowPrivate r, GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu GtkCssProvider@W _GtkCssProviderD F4G GtkCssProviderPrivateB _GtkCssProviderPrivate A GtkStyleProviderZ _GtkStyleProvider GtkStyleContextPrivate) _GtkStyleContextPrivate apply_css K@l# widget C IK@ __inst"o __tY __r!NK@v"hK@#ts$5K@ #ts$IK@ #tv#t "K@,#ts#t K@#tv%do_css_accordion K@bdo_widget K@F&*  child &C 3 bytesSQ'data_sizel datao$K@Y #t0$L@y #t$L@#t X#t ,$SL@H#tB(t#t РM#t0#t0$gL@b#t0#t0$yL@?}#ts#t3$L@h#ts#t3$L@#ts$L@#tB$L@#ts$L@#tB$L@#ts$L@#tB$L@4#ts$L@L#tB$L@a#ts$M@y#tB$M@#ts$M@#tB$*M@#ts!/M@$MM@#tB#t0#t0$_M@/#tv#tl${M@V#ts#t 0$M@4#tv"M@= #ts!K@!K@!K@'window РM)gtk_container_get_typeY*g_type_check_instance_is_ai"Y*gtk_widget_get_style_context#7  +gtk_style_context_add_provider,7  &+gtk_container_forallYa  c,gtk_window_new y, -gtk_window_set_transient_for  +gtk_window_set_default_size *g_signal_connect_data c`cq,gtk_box_newP ?+gtk_widget_set_halign;h H+gtk_widget_set_valignB H-gtk_container_adda  ,gtk_button_new_with_labelb )gtk_css_provider_new\ ,g_resources_lookup_datajS/2,g_bytes_get_data:sVS,,gtk_css_provider_load_from_datab 2-g_bytes_unrefDS*gtk_widget_get_visible` +gtk_widget_destroy .gtk_widget_show_all  GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddencss_basics.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demoM@&charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intguint32&gint64,guint64-long long unsigned intgssize:gsize;gchar.glong0gint1gboolean2gulong62guint7gfloat96floatgdouble:NdoublegpointerMgconstpointerN}GBytes$_GBytesGQuark$tGError* _GError , domain. code/ message0  GData$_GData-  long double GType~ GValuek _GValue j g_type mN data z GTypeClass _GTypeClassg_typeN GTypeInstance _GTypeInstanceg_class\)\ pv_int qv_uint rv_long sv_ulong t v_int64 uv_uint64 vv_float w(v_double x?v_pointer yX.&GClosure J _GClosure \ meta_marshal_nouse n_guards n_fnotifiers  n_inotifiers in_inotify floating derivative_flag in_marshal is_invalid  marshal  data X notifiers  GClosureNotifyData K _GClosureNotifyData U data X notify fGCallback VGClosureNotify _|X#XX G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject  _GObject d g_type_instance \  qdata 3GInitiallyUnowned  G_RESOURCE_LOOKUP_FLAGS_NONE GResourceLookupFlags }NPANGO_UNDERLINE_NONEPANGO_UNDERLINE_SINGLEPANGO_UNDERLINE_DOUBLEPANGO_UNDERLINE_LOWPANGO_UNDERLINE_ERRORGdkScreen~__GdkScreenNGtkAdjustment" _GtkAdjustment6L8dp:y GtkStyleContext, _GtkStyleContext+ parent_object-p. GtkWidget. _GtkWidgetF Ldp GtkWindow0W _GtkWindow5 bin7l p9 GtkWidgetPrivateB _GtkWidgetPrivateGtkCallback^    X  F GtkContainer. _GtkContainer2/ widget4 p7` GtkContainerPrivate/J _GtkContainerPrivate/  GtkBin.z _GtkBin2 f4 p7 GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate. _GtkWindowPrivate r1 GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu GtkAdjustmentPrivate-b _GtkAdjustmentPrivateF qGtkTextIter@ _GtkTextIter8F dummy1LX dummy2MX dummy3N dummy4O dummy5P dummy6Q dummy7R dummy8S dummy9TX dummy10UX$ dummy11V( dummy12W, dummy13Y0 dummy14ZX4GtkTextTagTableA _GtkTextTagTable5 L7p9 GtkTextTagJ _GtkTextTagN LPpR: GtkTextTagPrivateK& _GtkTextTagPrivate  L  GtkTextBufferBf _GtkTextBufferN LPpR GtkCssSectionE _GtkCssSection4GTK_CSS_PROVIDER_ERROR_FAILEDGTK_CSS_PROVIDER_ERROR_SYNTAXGTK_CSS_PROVIDER_ERROR_IMPORTGTK_CSS_PROVIDER_ERROR_NAMEGTK_CSS_PROVIDER_ERROR_DEPRECATEDGTK_CSS_PROVIDER_ERROR_UNKNOWN_VALUEGtkCssProvider@ _GtkCssProviderDLFpG  GtkCssProviderPrivateB_GtkCssProviderPrivate !GtkStyleProviderZ>_GtkStyleProvider&GtkStyleContextPrivate)u_GtkStyleContextPrivateWGtkTextTagTablePrivate2_GtkTextTagTablePrivate GtkTextBufferPrivateK_GtkTextBufferPrivateQ  GtkTextViewn5 _GtkTextViewrcLt pxGtkTextViewPrivateo}_GtkTextViewPrivatec"show_parsing_error M@u sectionerrorbuffer start ~end  tag_name!M@L"ts!M@a"ts!M@}"tv"tw!M@3"ts!M@e"t! N@"tv"ts"t u#N@!,N@"t"t4$ON@"tv"tw"t scss_text_changed'`N@Wbuffer'u(start* end*  text+ !N@!"ts"tv!N@S"ts"tw!N@"ts"tv"tw!N@"ts"tv"tw"t 0!N@/"t"ts"t "t 0!N@5D"ts#N@I#N@gapply_css9O@l=widget9 u9Q%)O@ __inst< __t"tv"toB"tM@"t0"t0$Q@W"tv#O@'#O@P#O@qwindow ԠM)gtk_css_section_get_start_positionX )gtk_css_section_get_start_lineV*gtk_text_buffer_get_iter_at_line_index}3)gtk_css_section_get_end_position\e)gtk_css_section_get_end_lineZ+gtk_css_provider_error_quark>)g_error_matchesI*gtk_text_buffer_apply_tag_by_name\!F F *gtk_text_buffer_get_start_iterS*gtk_text_buffer_get_end_iter*gtk_text_buffer_remove_all_tagsfF F ,gtk_text_buffer_get_textF F )gtk_css_provider_load_from_datab5'-g_freeEIX+gdk_screen_get_default kk*gtk_style_context_reset_widgetsk+gtk_container_get_typeN,g_type_check_instance_is_aiN,gtk_widget_get_style_context# *gtk_style_context_add_providerKQ*gtk_container_forallxf  X)gtk_window_new 1 -gtk_window_set_transient_for  *gtk_window_set_default_size ,g_signal_connect_data  <XUXf)gtk_text_buffer_newa,gtk_text_buffer_create_tago@ .+gtk_css_provider_new\)gtk_scrolled_window_new!   -gtk_container_addf  )gtk_text_view_new_with_buffer 6)g_resources_lookup_data"jHi')g_bytes_get_size#>H)g_bytes_get_data#:hH!-gtk_text_buffer_set_text-g_bytes_unref#DH)gtk_text_view_get_buffer',gtk_widget_get_visible`P *gtk_widget_destroyq /gtk_widget_show_all ("#GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddencss_multiplebgs.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demoQ@*doubleintfloatcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intguint32&gint64,'guint64-long long unsigned intgssize:gsize;gchar.glong0gint1gboolean2 gulong6Jguint7gfloat9gdouble:gpointerMgconstpointerNGBytes$_GBytesGQuark$GError* _GError ,  domain. code/  message0 GData$_GData2 long double GType~ GValuep _GValue j g_type mS data z GTypeClass _GTypeClassg_typeS GTypeInstance _GTypeInstanceg_classa.a pv_int q v_uint r3v_long sv_ulong t%v_int64 uv_uint64 vv_float w@v_double xNv_pointer y]3>GClosure J _GClosure  meta_marshal_nouse n_guards n_fnotifiers  n_inotifiers in_inotify floating derivative_flag in_marshal is_invalid  marshal  data ] notifiers  GClosureNotifyData K! _GClosureNotifyData Z data ] notify kGCallback V GClosureNotify _]"3(]]3 G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject % _GObject i g_type_instance   qdata 8GInitiallyUnowned % G_RESOURCE_LOOKUP_FLAGS_NONE GResourceLookupFlags SPANGO_UNDERLINE_NONEPANGO_UNDERLINE_SINGLEPANGO_UNDERLINE_DOUBLEPANGO_UNDERLINE_LOWPANGO_UNDERLINE_ERRORcairo_t|b_cairoSGdkScreen~_GdkScreen GDK_EXPOSURE_MASKGDK_POINTER_MOTION_MASKGDK_POINTER_MOTION_HINT_MASKGDK_BUTTON_MOTION_MASKGDK_BUTTON1_MOTION_MASK GDK_BUTTON2_MOTION_MASKGDK_BUTTON3_MOTION_MASKGDK_BUTTON_PRESS_MASKGDK_BUTTON_RELEASE_MASKGDK_KEY_PRESS_MASKGDK_KEY_RELEASE_MASKGDK_ENTER_NOTIFY_MASK GDK_LEAVE_NOTIFY_MASKGDK_FOCUS_CHANGE_MASKGDK_STRUCTURE_MASKGDK_PROPERTY_CHANGE_MASKGDK_VISIBILITY_NOTIFY_MASKGDK_PROXIMITY_IN_MASKGDK_PROXIMITY_OUT_MASK GDK_SUBSTRUCTURE_MASKGDK_SCROLL_MASKGDK_TOUCH_MASKGDK_SMOOTH_SCROLL_MASKGDK_ALL_EVENTS_MASKpJg GTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINEGtkAlignP V GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientationYw GtkAdjustment" _GtkAdjustment6 8i: GtkStyleContext,, _GtkStyleContext+h parent_object-. GtkWidget.y _GtkWidget i< GtkWindow0 _GtkWindow5 bin7 9UGtkWidgetPrivateB _GtkWidgetPrivateGtkCallback^ & 6 6 ]h   GtkContainer.\ _GtkContainer2 ~4h 7 GtkContainerPrivate/ _GtkContainerPrivate H GtkBin. _GtkBin2 4H 7$GtkBinPrivate/_GtkBinPrivate GtkWindowPrivate.B_GtkWindowPrivate*rGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu[GtkAdjustmentPrivate-_GtkAdjustmentPrivate GtkTextIter@ _GtkTextIter8F dummy1L] dummy2M] dummy3N  dummy4O  dummy5P  dummy6Q  dummy7R  dummy8S  dummy9T] dummy10U]$ dummy11V ( dummy12W , dummy13Y 0 dummy14Z]4GtkTextTagTableA _GtkTextTagTable5*79 GtkTextTagJ< _GtkTextTagNiPR GtkTextTagPrivateK_GtkTextTagPrivatei*GtkTextBufferB _GtkTextBufferNPR GtkCssSectionE_GtkCssSection4GTK_CSS_PROVIDER_ERROR_FAILEDGTK_CSS_PROVIDER_ERROR_SYNTAXGTK_CSS_PROVIDER_ERROR_IMPORTGTK_CSS_PROVIDER_ERROR_NAMEGTK_CSS_PROVIDER_ERROR_DEPRECATEDGTK_CSS_PROVIDER_ERROR_UNKNOWN_VALUEGtkCssProvider@ _GtkCssProviderD0FGe GtkCssProviderPrivateBM_GtkCssProviderPrivate0}GtkStyleProviderZ_GtkStyleProviderGtkStyleContextPrivate)_GtkStyleContextPrivate GtkOverlay ' _GtkOverlay +8 parent -  /eGtkOverlayPrivate )Q_GtkOverlayPrivate8GtkTextTagTablePrivate2_GtkTextTagTablePrivateqGtkTextBufferPrivateK_GtkTextBufferPrivateGtkTextView!n  _GtkTextView!r:!tH !xiGtkTextViewPrivate!oT_GtkTextViewPrivate:show_parsing_error Q@ ksectionqerrorwbuffer start~end tag_name!Q@#"ts!Q@8"ts!Q@T"tv"tw!Q@\i"ts!R@"t!R@"tv"ts"t u#!R@!"ts!V@{$["t\"tu!V@#"ts"tB"tpR@"t v"t0"t0!W@&"tB"t0"t0! W@&"tw!W@'"tw"t0!2W@;'"ts"t\!:W@k'"tw!BW@'2"tu!nW@#g"tv"tB"tQ@"t0"t0$W@"tv#HT@'#YT@'#uT@'window 6 ؠM*gtk_css_section_get_start_positionX3*gtk_css_section_get_start_lineV3+gtk_text_buffer_get_iter_at_line_index}\  *gtk_css_section_get_end_position\3*gtk_css_section_get_end_lineZ3,gtk_css_provider_error_quark>*g_error_matchesI w +gtk_text_buffer_apply_tag_by_name\J +gtk_text_buffer_get_start_iter| +gtk_text_buffer_get_end_iter +gtk_text_buffer_remove_all_tagsf -gtk_text_buffer_get_text!*gtk_css_provider_load_from_datab^!k,.g_free"Er!],gdk_screen_get_default#k +gtk_style_context_reset_widgets! -gtk_widget_get_style_context#!6 -gtk_widget_get_allocated_height"6 -gtk_widget_get_allocated_widthP"6 .gtk_render_background$8"jNNNN.gtk_render_frame$?"jNNNN,gtk_container_get_typeS-g_type_check_instance_is_ai#S+gtk_style_context_add_providerJ#3+gtk_container_forallw#  ]*gtk_window_new6 #.gtk_window_set_transient_for#B B +gtk_window_set_default_size#B   -g_signal_connect_data %;$]Z]k,gtk_overlay_new R6 +gtk_widget_add_events{$6  .gtk_container_add$ 6 ,gtk_drawing_area_new%H6 +gtk_widget_set_name>$6 ,gtk_button_new&`6 .gtk_overlay_add_overlay T"%k6 +gtk_widget_set_halign;K%6 g +gtk_widget_set_valignBt%6 g +gtk_widget_set_size_request%6   *gtk_paned_new'Q6 % *gtk_box_new(P6 %  *gtk_text_buffer_new&-gtk_text_buffer_create_tagoF&/,gtk_css_provider_new\k*gtk_scrolled_window_new)6 &*gtk_text_view_new_with_buffer!6 &*g_resources_lookup_data*jM&,*g_bytes_get_size+>'M*g_bytes_get_data+:m;'M&.gtk_text_buffer_set_textk' .g_bytes_unref+D'M*gtk_text_view_get_buffer!'o-gtk_widget_get_visible`'6 +gtk_widget_destroy'6 0gtk_widget_show_all6 %GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddencss_pixbufs.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demoW@H0charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intguint32&gint64,guint64-long long unsigned intgssize:gsize;gchar.glong0gint1gboolean2gulong63guint7gfloat97floatgdouble:OdoublegpointerMgconstpointerN~GBytes$_GBytesGQuark$uGError* _GError , domain. code/ message0  GData$_GData.  long double GType~ GValuel _GValue j g_type mO data z GTypeClass _GTypeClassg_typeO GTypeInstance _GTypeInstanceg_class]*] pv_int qv_uint rv_long sv_ulong tv_int64 uv_uint64 vv_float w)v_double x@v_pointer yY/'GClosure J _GClosure  meta_marshal_nouse n_guards n_fnotifiers  n_inotifiers in_inotify floating derivative_flag in_marshal is_invalid  marshal  data Y notifiers  GClosureNotifyData K _GClosureNotifyData V data Y notify gGCallback VGClosureNotify _}Y$YY G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject ! _GObject e g_type_instance   qdata 4GInitiallyUnowned ! G_RESOURCE_LOOKUP_FLAGS_NONE GResourceLookupFlags ~OPANGO_UNDERLINE_NONEPANGO_UNDERLINE_SINGLEPANGO_UNDERLINE_DOUBLEPANGO_UNDERLINE_LOWPANGO_UNDERLINE_ERRORGdkScreen~`_GdkScreenOVGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientationYrGtkAdjustment" _GtkAdjustment6 8e: GtkStyleContext,' _GtkStyleContext+c parent_object-. GtkWidget.t _GtkWidget e7 GtkWindow0 _GtkWindow5 bin7 9S GtkWidgetPrivateB _GtkWidgetPrivateGtkCallback^ ! 1 1 Yc   GtkContainer.W _GtkContainer2 widget4c 7 GtkContainerPrivate/ _GtkContainerPrivate C GtkBin. _GtkBin2 4C 7" GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate.@ _GtkWindowPrivate( r GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeuY GtkAdjustmentPrivate- _GtkAdjustmentPrivate GtkTextIter@ _GtkTextIter8F dummy1LY dummy2MY dummy3N dummy4O dummy5P dummy6Q dummy7R dummy8S dummy9TY dummy10UY$ dummy11V( dummy12W, dummy13Y0 dummy14ZY4GtkTextTagTableA _GtkTextTagTable5( 79+ GtkTextTagJ: _GtkTextTagNg PR GtkTextTagPrivateK _GtkTextTagPrivateg (   GtkTextBufferB _GtkTextBufferN PRj GtkCssSectionE_GtkCssSection4GTK_CSS_PROVIDER_ERROR_FAILEDGTK_CSS_PROVIDER_ERROR_SYNTAXGTK_CSS_PROVIDER_ERROR_IMPORTGTK_CSS_PROVIDER_ERROR_NAMEGTK_CSS_PROVIDER_ERROR_DEPRECATEDGTK_CSS_PROVIDER_ERROR_UNKNOWN_VALUEGtkCssProvider@ _GtkCssProviderD.FGc GtkCssProviderPrivateBK_GtkCssProviderPrivate. {GtkStyleProviderZ_GtkStyleProviderGtkStyleContextPrivate)_GtkStyleContextPrivate GtkTextTagTablePrivate2_GtkTextTagTablePrivate GtkTextBufferPrivateKS_GtkTextBufferPrivate7  GtkTextViewn _GtkTextViewrtC xGtkTextViewPrivateo_GtkTextViewPrivate|show_parsing_error W@j isection oerrorubufferp start ~end  tag_nameR!W@M"ts!W@"ts!W@"tv"tw!W@"ts!W@2"t!W@%"tv"ts"t u#X@`!X@J"t"t4$?X@"tv"tw"t scss_text_changed&PX@buffer&p'istart) end)  text*!e!qX@"ts"tv!}X@ "ts"tw!X@P6"ts"tv"tw!X@_"ts"tv"tw"t 0!X@"t"ts"t "t 0!X@"ts#X@#X@4apply_css8X@lwidget81 8%Y@C __inst; __t;O __r;#Y@b$8Y@"ts!Y@X"ts!Y@t"tv"t $VY@"ts"tX@"tv&do_css_pixbufs@1 `Y@x9do_widget@1 %Y@& panedD1 'D1  childD1 'EE textFpc bytesGI!Y@EQ"t0!Y@eg"t!Y@"t "t ,!%Z@"tB(t"t ܠM"t0"t0!1Z@ "t1!DZ@("tw!XZ@L"t1"t0!dZ@("tw!pZ@n#"t0!Z@X"ts"tB"tB"t 1"t0!Z@"ts"tB"tB"t 4"t0#Z@!Z@"t0"t0!Z@("tw"t\!Z@"ts![@("t\"tu!3[@;"ts"tB"tPX@"t v"t0"t0!O[@D_"t B"t0"t0!Y[@wt"tw!m[@"tw"t0![@"ts"t\![@"tw![@ "tu![@ "tv"t5B"tW@"t0"t0$[@"tv#xY@5#Y@^#Y@window 1 ܠM)gtk_css_section_get_start_positionX )gtk_css_section_get_start_lineV*gtk_text_buffer_get_iter_at_line_index}pv)gtk_css_section_get_end_position\2)gtk_css_section_get_end_lineZ`+gtk_css_provider_error_quark>)g_error_matchesIu*gtk_text_buffer_apply_tag_by_name\p  *gtk_text_buffer_get_start_iter pv*gtk_text_buffer_get_end_iterPpv*gtk_text_buffer_remove_all_tagsfp  ,gtk_text_buffer_get_textp  )gtk_css_provider_load_from_databi(-g_free EY+gdk_screen_get_default!kl*gtk_style_context_reset_widgetsbl+gtk_container_get_typeO,g_type_check_instance_is_aiO,gtk_widget_get_style_context#1 *gtk_style_context_add_provider*gtk_container_forallE  Y)gtk_window_new1 e -gtk_window_set_transient_for= = *gtk_window_set_default_size= ,g_signal_connect_data  YVYg)gtk_paned_new"Q1 (-gtk_container_addL 1 )gtk_box_new#P1 n)gtk_text_buffer_newp1,gtk_text_buffer_create_tago p.+gtk_css_provider_new\i)gtk_scrolled_window_new$1   )gtk_text_view_new_with_buffer1 Dp)g_resources_lookup_data%jIw()g_bytes_get_size&>I)g_bytes_get_data&:iI"-gtk_text_buffer_set_textp-g_bytes_unref&D I)gtk_text_view_get_bufferp5,gtk_widget_get_visible`^1 *gtk_widget_destroy1 /gtk_widget_show_all1 #2(GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddencss_shadows.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo[@4charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intguint32&gint64,guint64-long long unsigned intgssize:gsize;gchar.glong0gint1gboolean2gulong63guint7gfloat97floatgdouble:OdoublegpointerMgconstpointerN~GBytes$_GBytesGQuark$uGError* _GError , domain. code/ message0  GData$_GData.  long double GType~ GValuel _GValue j g_type mO data z GTypeClass _GTypeClassg_typeO GTypeInstance _GTypeInstanceg_class]*] pv_int qv_uint rv_long sv_ulong tv_int64 uv_uint64 vv_float w)v_double x@v_pointer yY/'GClosure J _GClosure  meta_marshal_nouse n_guards n_fnotifiers  n_inotifiers in_inotify floating derivative_flag in_marshal is_invalid  marshal  data Y notifiers  GClosureNotifyData K _GClosureNotifyData V data Y notify gGCallback VGClosureNotify _}Y$YY G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject ! _GObject e g_type_instance   qdata 4GInitiallyUnowned ! G_RESOURCE_LOOKUP_FLAGS_NONE GResourceLookupFlags ~OPANGO_UNDERLINE_NONEPANGO_UNDERLINE_SINGLEPANGO_UNDERLINE_DOUBLEPANGO_UNDERLINE_LOWPANGO_UNDERLINE_ERRORGdkScreen~`_GdkScreenOJGTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINEGtkAlignPrV( GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientationYGtkAdjustment"T _GtkAdjustment6 8e :G GtkStyleContext, _GtkStyleContext+ parent_object- .\ GtkWidget. _GtkWidget e  GtkWindow0% _GtkWindow5Q bin7:  9 GtkWidgetPrivateBi _GtkWidgetPrivateGtkCallback^    Y Q  GtkContainer. _GtkContainer2 widget4  7. GtkContainerPrivate/ _GtkContainerPrivate  GtkBin.H _GtkBin2q 4  7 GtkBinPrivate/ _GtkBinPrivateq GtkWindowPrivate. _GtkWindowPrivate r GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu GtkAdjustmentPrivate-0 _GtkAdjustmentPrivate ? GtkTextIter@f _GtkTextIter8FS dummy1LY dummy2MY dummy3N dummy4O dummy5P dummy6Q dummy7R dummy8S dummy9TY dummy10UY$ dummy11V( dummy12W, dummy13Y0 dummy14ZY4GtkTextTagTableAj _GtkTextTagTable5 7 9 GtkTextTagJ _GtkTextTagN P R GtkTextTagPrivateK _GtkTextTagPrivate  S GtkTextBufferB4 _GtkTextBufferNdP R GtkCssSectionEy_GtkCssSection4[GTK_CSS_PROVIDER_ERROR_FAILEDGTK_CSS_PROVIDER_ERROR_SYNTAXGTK_CSS_PROVIDER_ERROR_IMPORTGTK_CSS_PROVIDER_ERROR_NAMEGTK_CSS_PROVIDER_ERROR_DEPRECATEDGTK_CSS_PROVIDER_ERROR_UNKNOWN_VALUEGtkCssProvider@q _GtkCssProviderDF G GtkCssProviderPrivateB_GtkCssProviderPrivate[dGtkStyleProviderZ _GtkStyleProviderGtkStyleContextPrivate)C_GtkStyleContextPrivate% GtkToolItem){ _GtkToolItem- parent/:  2GtkToolItemPrivate+_GtkToolItemPrivatehGtkToolButton ' _GtkToolButton +/ parent -h  0bGtkToolButtonPrivate )K_GtkToolButtonPrivate/GtkTextTagTablePrivate2_GtkTextTagTablePrivatenS GtkTextBufferPrivateK_GtkTextBufferPrivateS GtkTextView!n  _GtkTextView!r7!t  !xfGtkTextViewPrivate!oQ_GtkTextViewPrivate7GtkToolbar"@ _GtkToolbar"D"F  "HGtkToolbarPrivate"A_GtkToolbarPrivatershow_parsing_error [@\ section error buffer startS ~endS  tag_name!\@"ts! \@"ts!"\@"tv"tw!*\@]"ts!8\@"t!L\@"tv"ts"t u#Q\@!l\@<"t"t4$\@ "tv"tw"t scss_text_changed%\@buffer%&start(S end(S  text)!!\@K"ts"tv!\@}"ts"tw!\@("ts"tv"tw!\@Q"ts"tv"tw"t 0!]@{"t"ts"t "t 0!"]@_"ts#']@s#/]@apply_css7@]@lwidget7 7%i]@5 __inst: __t:O __r:#n]@$]@"ts!U]@J"ts!i]@>f"tv"t $]@u"ts"t@]@"tv&create_toolbar? ]@ toolbarA , itemBU#]@!]@"ts"t3!]@"t0"t0!]@ -"tv"tRB!^@< P"ts"tv"t !^@j"t0"t0!,^@ "tv"tZB!@^@< "ts"tv"t !T^@"t0"tfB!f^@f "tv"t1$z^@< "ts"tv"t &do_css_shadowsW ^@ido_widgetW %^@z paned[ '[  child[ '\ text]# bytes^IA!^@ "t0!_@ "t! _@ "t "t ,!U_@!%"trB(t"t M"t0"t0!a_@[!9"t1!t_@z!N"tw#y_@!_@z!l"tw!_@!"t0!_@!"ts"tDB"tzB"t 1"t0!_@!"ts"tLB"tzB"t 4"t0#_@!!_@" "t0"t0!`@z!*"tw"t\!`@E"?"ts!(`@z!\"t\"tu!T`@!"ts"tB"t\@"t v"t0"t0!p`@t""tB"t0"t0!z`@""tw!`@""tw"t0!`@" "ts"t\!`@ #"tw!`@;#3"tu!`@!h"tv"tB"t[@"t0"t0$`@"tv#^@e##^@##^@#window M)gtk_css_section_get_start_positionXd)gtk_css_section_get_start_lineV*gtk_text_buffer_get_iter_at_line_index}])gtk_css_section_get_end_position\)gtk_css_section_get_end_lineZ+gtk_css_provider_error_quark>)g_error_matchesI *gtk_text_buffer_apply_tag_by_name\K*gtk_text_buffer_get_start_iter}*gtk_text_buffer_get_end_iter*gtk_text_buffer_remove_all_tagsf,gtk_text_buffer_get_text)gtk_css_provider_load_from_datab_(-g_free#EsY+gdk_screen_get_default$kl*gtk_style_context_reset_widgetsl+gtk_container_get_typeO,g_type_check_instance_is_aiO,gtk_widget_get_style_context#b> *gtk_style_context_add_providerub*gtk_container_forall4 | Y+gtk_toolbar_new"c *gtk_widget_set_valignB )gtk_tool_button_new Q  -gtk_tool_button_set_icon_name f< h-gtk_toolbar_insert"ff -gtk_tool_item_set_is_important| )gtk_window_new  -gtk_window_set_transient_for   *gtk_window_set_default_size! ,g_signal_connect_data [!YVYg)gtk_paned_new%Q z!( -gtk_container_add!4  )gtk_text_buffer_new!,gtk_text_buffer_create_tago!.+gtk_css_provider_new\)gtk_scrolled_window_new& E"M M )gtk_text_view_new_with_buffer!ʥ t")g_resources_lookup_data'jI"()g_bytes_get_size(>"I)g_bytes_get_data(:i"I"-gtk_text_buffer_set_text #-g_bytes_unref(D;#I)gtk_text_view_get_buffer!e#l,gtk_widget_get_visible`# *gtk_widget_destroy# /gtk_widget_show_all *GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddendialog.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demoa@UJ9charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64, guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong6.guint7gfloat9floatgdouble:-doublegpointerMMXGData$f_GDataY long double GType~ GValue _GValuej g_typem dataz GTypeClass _GTypeClass g_type GTypeInstance _GTypeInstanceF g_classFXpv_intqv_uintrv_longsv_ulongtv_int64upv_uint64v~v_floatwv_doublexv_pointery7]"GClosureJ  _GClosure1Ameta_marshal_nousen_guardsn_fnotifiers n_inotifiersin_inotifyfloatingderivative_flagin_marshalis_invalid marshal data7 notifiers GClosureNotifyDataKK _GClosureNotifyData data7 notifyGCallbackVRGClosureNotify_7LR771+G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags _GObject  g_type_instance A  qdata nGInitiallyUnowned @GdkScreen ~_GdkScreen GTK_ICON_SIZE_INVALIDGTK_ICON_SIZE_MENUGTK_ICON_SIZE_SMALL_TOOLBARGTK_ICON_SIZE_LARGE_TOOLBARGTK_ICON_SIZE_BUTTONGTK_ICON_SIZE_DNDGTK_ICON_SIZE_DIALOGGtkIconSize  GTK_MESSAGE_INFOGTK_MESSAGE_WARNINGGTK_MESSAGE_QUESTIONGTK_MESSAGE_ERRORGTK_MESSAGE_OTHER GtkMessageType  V]GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientation YGtkWidget . _GtkWidget  <  GtkWindow 0 _GtkWindow5 bin7 <9; GtkWidgetPrivate B _GtkWidgetPrivatetGtkContainer.? _GtkContainer2q widget4t<7 GtkContainerPrivate/ _GtkContainerPrivateq + GtkBin. _GtkBin2 24+ <7 GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate.( _GtkWindowPrivate rs GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeuA 2 GTK_DIALOG_MODALGTK_DIALOG_DESTROY_WITH_PARENTGTK_DIALOG_USE_HEADER_BARGtkDialogFlags6 L GTK_RESPONSE_NONEGTK_RESPONSE_REJECT~GTK_RESPONSE_ACCEPT}GTK_RESPONSE_DELETE_EVENT|GTK_RESPONSE_OK{GTK_RESPONSE_CANCELzGTK_RESPONSE_CLOSEyGTK_RESPONSE_YESxGTK_RESPONSE_NOwGTK_RESPONSE_APPLYvGTK_RESPONSE_HELPuGtkDialogc _GtkDialog m' windowo<rR GtkDialogPrivated? _GtkDialogPrivate'  GtkMisc.m _GtkMisc2 widget4t<7 GtkMiscPrivate/ _GtkMiscPrivate GtkLabel0 _GtkLabel6 misc8^ <;, GtkLabelPrivate1 _GtkLabelPrivate  GtkBox/F _GtkBox3o 25+ <8 GtkBoxPrivate0 _GtkBoxPrivateo GtkEntryF _GtkEntryJ Mt<O GtkEntryPrivateG _GtkEntryPrivate  GtkButton. _GtkButton2G bin5 <7rGtkButtonPrivate/__GtkButtonPrivateG GtkGrid( _GtkGrid,2/+ <1GtkGridPrivate)_GtkGridPrivateGtkMessageDialog- _GtkMessageDialog$1/3 <6h GtkMessageDialogPrivate.N_GtkMessageDialogPrivate/VGTK_BUTTONS_NONEGTK_BUTTONS_OKGTK_BUTTONS_CLOSEGTK_BUTTONS_CANCELGTK_BUTTONS_YES_NOGTK_BUTTONS_OK_CANCELGtkButtonsType]n8 ~interactive_dialog_clicked"a@+"xK#7content_area% _dialog& }hbox' image( table) local_entry1* local_entry2+ *label, Sresponse-a@*tBTa@ftBt3t tBt t0`a@Z|tXva@t0t8a@tvt8a@tstvt0t 0t0a@tBt6a@$tvt0t 0t0 a@Aa@UHtst4 b@ctst4/b@tvtst1t 1t0;b@tBib@tstwt0t 0t1t1 nb@ }b@&b@Ktub@8tstut1t 0t1t1b@pTtwtub@ltBb@tst\t0t 1t1t1 c@ c@&c@KtwIc@tstwt1t 1t1t1Yc@pt\twac@.tvmc@DtX!c@c@&btu c@Kc@&tw c@Kmessage_dialog_clickedc@h_+xK7dialog "iAd@t3t0t 5tBd@@8tst7B$d@Mts#,d@ts$do_dialoga @d@%do_widgeta framec vboxd vbox2e hboxf  &+g R tableh labeli Wd@| hd@ d@d@4t0d@Jt d@d@kt:B e@=tBB'tt Mt0t0e@t8*e@~t:B=e@tvQe@t1t8ce@tst8oe@/tvtse@It0t8e@wtstvt0t 0t0e@tJBe@=twtZBtc@t 0t0t0 f@tvtwt0t 0t0f@ t0;f@3tst0t 0t0Of@Mt0t8uf@{tstvt0t 0t0f@t1t0f@tbBf@=twtZBta@t 0t0t0f@tvtst0t 0t0g@Dtstwt0t 0t0 g@A(g@Uhtst48g@tst4\g@tvtst0t 0t0hg@tBg@tstvt0t 0t1t1 g@g@3tst1t 0t1t1g@pHtvg@`tBh@tst0t 1t1t1 h@#Kh@tst1t 1t1t1"window  M"entry1  M"entry2  M(libintl_gettext(gtk_dialog_new_with_buttons ZG%  G)(gtk_dialog_get_content_area X (gtk_box_newP ]*gtk_container_set_border_width *gtk_box_pack_startT (gtk_image_new_from_icon_name AG+gtk_grid_newK *gtk_grid_set_row_spacingt *gtk_grid_set_column_spacing~ (gtk_label_new_with_mnemonic_ G*gtk_grid_attachM  +gtk_entry_new ,gtk_entry_get_textGK*gtk_entry_set_textpG*gtk_label_set_mnemonic_widget2  -gtk_widget_show_all  (gtk_dialog_runX -gtk_widget_destroy  (gtk_message_dialog_newc @%  G)*gtk_message_dialog_format_secondary_text~|G),gtk_widget_get_visible ` (gtk_window_new s ,gtk_widget_get_screen  -gtk_window_set_screen% *gtk_window_set_title=% G,g_signal_connect_data~7G7+(gtk_frame_newU G*gtk_container_add  (gtk_button_new_with_mnemonici G.gtk_separator_newH ])(-GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddendrawingarea.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo`h@ =doubleintcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned chargint8jsigned chargint16 short intguint32&gint64,guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong67guint7gfloat9Hfloatgdouble:gpointerMvGData$_GData long double GType~ GValue _GValuej g_typem oz GTypeClass _GTypeClass4g_type GTypeInstanceJ _GTypeInstancetg_classtpv_intqv_uintr-v_longsv_ulongtv_int64uv_uint64vv_floatw:v_doublexQv_pointery`++GClosureJ; _GClosure^meta_marshal_nousen_guardsn_fnotifiers n_inotifiersin_inotifyfloatingderivative_flagin_marshalis_invalid marshal o` notifiers" GClosureNotifyDataKx _GClosureNotifyData o` notifyGCallbackV{GClosureNotify_`+z-``-^WG_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags( _GObject  g_type_instance 4   qdata GInitiallyUnowned lcairo_t |_cairocairo_surface_t _cairo_surface_cairo_content smCAIRO_CONTENT_COLOR CAIRO_CONTENT_ALPHACAIRO_CONTENT_COLOR_ALPHA cairo_content_t w _cairo_rectangle_int x y width t  cairo_rectangle_int_t GdkRectangle NGdkDevice x%_GdkDeviceGdkScreen ~B_GdkScreenGdkWindow __GdkWindow خ GDK_SHIFT_MASKGDK_LOCK_MASKGDK_CONTROL_MASKGDK_MOD1_MASKGDK_MOD2_MASKGDK_MOD3_MASK GDK_MOD4_MASKGDK_MOD5_MASKGDK_BUTTON1_MASKGDK_BUTTON2_MASKGDK_BUTTON3_MASKGDK_BUTTON4_MASKGDK_BUTTON5_MASK GDK_MODIFIER_RESERVED_13_MASKGDK_MODIFIER_RESERVED_14_MASKGDK_MODIFIER_RESERVED_15_MASKGDK_MODIFIER_RESERVED_16_MASKGDK_MODIFIER_RESERVED_17_MASKGDK_MODIFIER_RESERVED_18_MASKGDK_MODIFIER_RESERVED_19_MASK GDK_MODIFIER_RESERVED_20_MASKGDK_MODIFIER_RESERVED_21_MASKGDK_MODIFIER_RESERVED_22_MASKGDK_MODIFIER_RESERVED_23_MASKGDK_MODIFIER_RESERVED_24_MASKGDK_MODIFIER_RESERVED_25_MASKGDK_SUPER_MASK GDK_HYPER_MASKGDK_META_MASKGDK_MODIFIER_RESERVED_29_MASKGDK_RELEASE_MASKGDK_MODIFIER_MASK GdkModifierType k 6GDK_EXPOSURE_MASKGDK_POINTER_MOTION_MASKGDK_POINTER_MOTION_HINT_MASKGDK_BUTTON_MOTION_MASKGDK_BUTTON1_MOTION_MASK GDK_BUTTON2_MOTION_MASKGDK_BUTTON3_MOTION_MASKGDK_BUTTON_PRESS_MASKGDK_BUTTON_RELEASE_MASKGDK_KEY_PRESS_MASKGDK_KEY_RELEASE_MASKGDK_ENTER_NOTIFY_MASK GDK_LEAVE_NOTIFY_MASKGDK_FOCUS_CHANGE_MASKGDK_STRUCTURE_MASKGDK_PROPERTY_CHANGE_MASKGDK_VISIBILITY_NOTIFY_MASKGDK_PROXIMITY_IN_MASKGDK_PROXIMITY_OUT_MASK GDK_SUBSTRUCTURE_MASKGDK_SCROLL_MASKGDK_TOUCH_MASKGDK_SMOOTH_SCROLL_MASKGDK_ALL_EVENTS_MASKGdkEventMotion ~L _GdkEventMotion@ Ttype V{ Wd X]time Y x ZQy [Qaxes \ state ]-$is_hint ^y(device _,x_root `Q0y_root `Q8GdkEventButton & _GdkEventButton@ type { d ]time  x Qy Qaxes  state -$button -(device ,x_root Q0y_root Q8GdkEventConfigure  _GdkEventConfigure ytype { d ]x  y width t  "GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_EVENT_LAST) GdkEventType OyNQ1 VGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientation Y GTK_SHADOW_NONEGTK_SHADOW_INGTK_SHADOW_OUTGTK_SHADOW_ETCHED_INGTK_SHADOW_ETCHED_OUT GtkShadowType )GtkWidget. _GtkWidget parent_instance _w GtkWindow0 _GtkWindow51 bin7 _9GtkWidgetPrivateBI_GtkWidgetPrivateGtkAllocationT1\6GtkContainer. _GtkContainer2 4 _7GtkContainerPrivate/_GtkContainerPrivateGtkBin.) _GtkBin2R U4 _7wGtkBinPrivate/g_GtkBinPrivateRGtkWindowPrivate._GtkWindowPrivate}rGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeuGtkMisc. _GtkMisc2. 4 _7UGtkMiscPrivate/D_GtkMiscPrivate.GtkLabel0k _GtkLabel6 misc8 _;GtkLabelPrivate1_GtkLabelPrivate[GtkBox/ _GtkBox3 U5 _8(GtkBoxPrivate0_GtkBoxPrivate4GtkFrame.I _GtkFrame2t bin4 _7GtkFramePrivate/_GtkFramePrivatet9scribble_button_press_event]]qevent^o_` draw_brushB`h@!Bq "xCQ"yDQ#update_rectF`$crG %h@#&h@#'ts'tv&h@ $'ts&h@"$'ts&h@>$'tw(h@f$'tv't0)scribble_motion_notify_eventli@o*lq"eventm*on`#xpd#yph#stateq l&Pi@$'td't h'tl(xi@'P close_windowi@;%i@$)scribble_configure_eventi@*q"event*o`#allocation\`$cr!%i@$&i@%c'ts't`&i@>$x'ts&j@5%'t 'tv't w% j@#&8j@x%'ts't ?'t ?'t ?&@j@%'ts(Hj@"$'ts)scribble_draw6`j@2*6q"cr7*o8`&j@%'ts't 't (j@%'ts)checkerboard_drawj@r"daq"cr*o`$i5!$j`!$xcount!$ycount!$width!+t"&j@%k'ts&j@+&'ts&k@x%'tw't 't 't @ŊL?&Lk@]&'tw'tH't P't $@'t $@&Tk@ $-'tw(vk@x%'tw't ?'t ?'t ?,k@I---.k@/5"/I"/h"(k@'P0do_drawingareaql@z#"do_widgetq$frameq|"$vboxq"$daq"$labelq#%l@&%(l@&%9l@&&Ql@&{'t0&bl@''t%sl@C'&l@l''txB&l@''tB'ti@'t 0't0't0&l@''t8&l@( 't1't8&l@'/ 'ts't8& m@'(D 'ts&m@K(X 't0&'m@j(w 'tv'tB&Km@( 'ts'tv't0't 0't0&Wm@( 't0&im@( 'tw't1&m@(!'ts'tw't1't 1't0%m@)&m@,).!'tv'td'td&m@'(J!'tw'tv&m@'!'tv'tB'tj@'t 0't0't0&m@K(!'t0&n@j(!'tv'tB&*n@(!'ts'tv't0't 0't0&6n@(!'t0&Hn@("'tv't1&ln@(C"'ts'tv't1't 1't0%qn@)&n@,)o"'ts'td'td&n@'("'tv'ts&n@'"'ts'tB't`j@'t 0't0't0&n@'#'ts'tB'ti@'t 0't0't0&'o@'<#'ts'tB'ti@'t 0't0't0&Wo@'w#'ts'tB'tk@'t 0't0't0&_o@`)#'ts(po@)'ts1{qM#surfaceM2cairo_create #3gdk_cairo_rectangle6 $.4cairo_fill "$4cairo_destroy >$2gtk_widget_get_windowf$q4gdk_window_invalidate_rect$.2gdk_window_get_device_positionP$$ 4cairo_surface_destroy  %4gtk_widget_get_allocation5%q}2gdk_window_create_similar_surfacex%m4cairo_set_source_rgb %4cairo_paint %4cairo_set_source_surface %2gtk_widget_get_allocated_width+&q2gtk_widget_get_allocated_height]&q4cairo_rectangle ~&2gtk_widget_get_visible`&q4gtk_widget_destroy&q4gtk_widget_show_all&q5gtk_window_newq'2gtk_widget_get_screenC'q4gtk_window_set_screenl'3gtk_window_set_title'p2g_signal_connect_data'`p`W3gtk_container_set_border_width(-5gtk_box_newPq'(3gtk_container_addK(q5gtk_label_new]qj(p3gtk_label_set_markupp(p3gtk_box_pack_startT(q-5gtk_frame_newUq(p3gtk_frame_set_shadow_typek)6gtk_drawing_area_newHq4gtk_widget_set_size_request`)q2gtk_widget_get_eventse)q7gtk_widget_set_eventsq.50GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddeneditable_cells.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demoo@ @charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64,guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong60guint7gfloat9floatgdouble:/doublegpointerMgconstpointerN^dGDestroyNotifyW{9 GArray% _GArray) + len, GData$_GData long doubleGType~GValue. _GValuejZ g_typem zzGTypeClassm_GTypeClassg_typeGTypeInstance_GTypeInstanceg_classZ pzv_intqv_uintrv_longsv_ulongtv_int64urv_uint64vv_floatw v_doublex v_pointery9$GClosureJ _GClosure|meta_marshal_nouse|n_guards|n_fnotifiers| n_inotifiers|in_inotify|floating|derivative_flag|in_marshal|is_invalid| marshalR 9 notifiersȁ GClosureNotifyDataK _GClosureNotifyData 9 notify GCallbackVGClosureNotify_6<L9LX|L99 G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject  _GObject  g_type_instance   | qdata GInitiallyUnowned C GdkScreen ~Y_GdkScreenH VGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkOrientation Yk *GTK_SELECTION_NONEGTK_SELECTION_SINGLEGTK_SELECTION_BROWSEGTK_SELECTION_MULTIPLEGtkSelectionMode  GTK_SHADOW_NONEGTK_SHADOW_INGTK_SHADOW_OUTGTK_SHADOW_ETCHED_INGTK_SHADOW_ETCHED_OUTGtkShadowType CGtkAdjustment " _GtkAdjustment6 8 :Q GtkWidget . _GtkWidgetG   GtkWindow 0X _GtkWindow5 bin7D 9 GtkWidgetPrivateB _GtkWidgetPrivate  G GtkContainer. _GtkContainer2 widget4 78 GtkContainerPrivate/" _GtkContainerPrivate  GtkBin.R _GtkBin2{ 4 7 GtkBinPrivate/ _GtkBinPrivate{ GtkWindowPrivate. _GtkWindowPrivate r GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu GtkAdjustmentPrivate-: _GtkAdjustmentPrivate GtkBox/k _GtkBox3 5 8 GtkBoxPrivate0 _GtkBoxPrivate GtkTreeIter' _GtkTreeIter]. stamp_ user_data`9 user_data2a9 user_data3b9 GtkTreePath(A _GtkTreePathGtkTreeModel*c _GtkTreeModelO .  GtkCellEditable# _GtkCellEditable GtkCellRendererP _GtkCellRendererU W Z3 GtkCellRendererPrivateQ _GtkCellRendererPrivate  GtkTreeViewColumn)X _GtkTreeViewColumnT V X GtkTreeViewColumnPrivate+ _GtkTreeViewColumnPrivate?  GtkListStore( _GtkListStore, . 1G GtkListStorePrivate)1_GtkListStorePrivateSlr ~ 9GtkTreeView= _GtkTreeViewC E H'GtkTreeViewPrivate?_GtkTreeViewPrivateGtkTreeSelection@ _GtkTreeSelectionK' N P lGtkTreeViewRowSeparatorFuncMGtkComboBox&i _GtkComboBox* ,D /GtkComboBoxPrivate(_GtkComboBoxPrivateVGtkCellRendererText' _GtkCellRendererText+# - 0bGtkCellRendererTextPrivate(E_GtkCellRendererTextPrivate#GtkScrolledWindow- _GtkScrolledWindow1 3D 5GtkScrolledWindowPrivate._GtkScrolledWindowPrivaten_GTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALGtkPolicyTypeGtkTreeSelectionPrivate%_GtkTreeSelectionPrivatet]    number product yummyItembCOLUMN_ITEM_NUMBERCOLUMN_ITEM_PRODUCTCOLUMN_ITEM_YUMMYNUM_ITEM_COLUMNS$COLUMN_NUMBER_TEXTNUM_NUMBER_COLUMNSremove_itemo@~widget  9! P"-6#"r U##selections#$o@=#i##pathx #%o@X%X&tv&ts%o@%m&tw%o@%&tv&ts%o@%&tu'o@ &&tw%o@)&&ts%o@R&&t'o@&&t0&ts(separator_rowp@; r  ~  9#pathx ##idx#%p@X%}&t&t%#p@%&ts'-p@ &&tsadd_item@p@button  9)fooD)current P! `)pathx @"r ##column $"-1$* `B+hr"r$%kp@&&t!B%p@&&tD&t1%p@ '&ts&t@&t0%p@)&&ts%p@F'&tv&tw,p@ &%p@z'$&tv&tw&tP%:q@'Y&tv&tw&t0&t1&t2&t  %Fq@X%u&tv&tw%Zq@'&ts&t0%vq@(&ts&t 0,q@ &%q@9(&t0&t`B&tB'q@i(&tv&tw&t  $ editing_startedq@%-cell9 $-editable $-path$.9$/q@(&p@&0& 0cell_editedr@kcellhpath_stringnew_text 9 "r $#pathx /%! P#columnX%$Tr@0i %1old_text L%xr@(&tv&tw&t1&t L&t ,r@(%r@%&ts,r@(%r@&&t'r@'&tv&tw&t1&t $s@Ye#i%% s@%)&ts%+s@)?&t'[s@'&tv&tw&t0&t %r@)){&t%1r@X)&t&t2B%Cr@F'&tv&tw&ts%r@ &&ts'cs@ &&ts2create_items_modelMr $3iO4P4Q 5,V3foo.6f740f$ V2create_numbers_modelor 3ir4s4t 73str|$8add_columns9-9r 9  r :renderer"9 ;do_editable_cellsP ps@.%Yr V> Zr W?u@u@A&A &BPC$7u@Vd@B0PB;VB+?AI'%\u@&W&tB%u@&r&ts&t1%u@&&tB%u@&&ts&t1%u@&&tB%u@&&ts&t1%v@&&t;B%,v@& &ts&t1%@v@&#&tQB%ev@&>&ts&t1'{@9(&t0&tVB&tB%7u@)&t0&t0&t<&t 1%v@)&t3&tH&t@&t H&tD%v@)&tv&ts'v@'&tv&ts&t0&t1&t2&t  Dkw@qvEw@qA6'AJ'BP$5w@:BN%Ow@)n&tw&ts'ow@'&tw&ts&t0&t u&t '(w@)&t1&t@&tHDw@}!Fh'F{'F'Ew@A',w@*%w@#*`&tu&tB&tw&t B&t0&tB&t0&txB&t 1&t$0%x@D*&tu&tB&tr@&t v&t0&t0%Jx@D*&tu&tB&tq@&t 0&t0&t0%bx@*&tu&t2B&t0%x@*? &ts&t &tB&t u&tB&t0&t0,x@*%x@#*s &tu&txB&t1&t 0%x@D* &tu&tB&tr@&t v&t0&t0%y@* &tu&t2B&t1%5y@*!&ts&t &tB&t u&tB&t1&t0,:y@+%Ty@*E!&tu&t2B&t2'y@*&ts&t &tB&t u&tB&t2&t0%s@E+!&t0%s@e+!&t,s@+%t@+!&t9B%t@+!&t5%Rt@D*"&tGBGt&t M&t0&t0%ft@,1"&t1&t5%}t@0,F"&tw%t@T,^"&tPB%t@s,"&tw&t0&t 0&t0%t@,"&t0&t0%t@,"&ts&t3%t@ -"&ts&t1&t1%u@s, #&tw&ts&t1&t 1&t0%w@A-#&tv%w@R&3#&ts%w@o-G#&t1%y@-\#&tw%y@-q#&tv%y@0,#&t&ts%y@,#&t0&t4%y@-#&tv&t1%y@s,#&t&tv&t0&t 0&t0%z@- $&tB%0z@D*H$&tw&tB&t@p@&t s&t0&t0%Tz@s,v$&tv&tw&t1&t 1&t0%`z@-$&tB%z@D*$&tw&tB&to@&t s&t0&t0%z@s,$&tv&tw&t1&t 1&t0'z@.&t @&t,s@C.,s@l.,s@.)window M)articles) MHgtk_tree_model_get_pathEx %r ~ Igtk_tree_path_get_indices%x Igtk_list_store_removec%~ Ig_array_remove_indexh  & Jgtk_tree_path_free)&x Igtk_tree_view_get_modelr R&-Igtk_tree_view_get_selectionۭ&-Igtk_tree_selection_get_selected&&~ r Ig_strdup&Ig_array_append_valsX  ' IKgtk_tree_view_get_cursorf:'-:'@'x  Hgtk_tree_model_get_iter7z'r ~ x Jgtk_list_store_insert_aftern'~ ~ Jgtk_list_store_setU'~ LHgtk_tree_view_get_column (-Kgtk_tree_view_set_cursor[9(-x  Jg_return_if_fail_warning|i(===Jgtk_list_store_insertf(~ Jgtk_combo_box_set_row_separator_func(39eKgtk_tree_model_getl(r ~ LJg_free E)9Hatoi!Z))=Igtk_tree_path_new_from_stringx X)Hg_object_get_data '9)7Ig_array_sized_newJ )Igtk_list_store_newC)LJgtk_list_store_append*~ Mgtk_cell_renderer_combo_new"?9 Kg_object_set D*9LHg_signal_connect_data *99 Kg_object_set_data **79Hgtk_tree_view_insert_column_with_attributes *-9 LMgtk_cell_renderer_text_newE9 Mgtk_cell_renderer_progress_new#F9 Igtk_window_new e+ Hgtk_widget_get_screene+ Kgtk_window_set_screen+ eJgtk_window_set_title+ Jgtk_container_set_border_width,> Igtk_box_newP 0,Jgtk_container_addT,>  Igtk_label_new$] s,Jgtk_box_pack_startT, Igtk_scrolled_window_new ,W W Jgtk_scrolled_window_set_shadow_type -Jgtk_scrolled_window_set_policyA-__Igtk_tree_view_new_with_modelү o-r Jgtk_tree_selection_set_moden-*Kg_object_unref -9Jgtk_box_set_homogeneousa-Igtk_button_new_with_label%b .Kgtk_window_set_default_sizeC. Hgtk_widget_get_visible`l. Kgtk_widget_destroy. Ngtk_widget_show_all W4GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenentry_buffer.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo{@-Echarunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64,guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong64guint7gfloat9floatgdouble:3doublegpointerMS^GData$l_GData_ long double GType~ GValue _GValuej g_typem dataz GTypeClass _GTypeClass  g_type GTypeInstance" _GTypeInstanceL g_classL^pv_intqv_uintrv_longsv_ulongtv_int64uvv_uint64vv_floatw v_doublex$v_pointery=c(GClosureJ _GClosure7<meta_marshal_nousen_guardsn_fnotifiers n_inotifiersin_inotifyfloatingderivative_flagin_marshalis_invalid marshal data= notifiers GClosureNotifyDataKQ _GClosureNotifyData data= notifyGCallbackVXGClosureNotify_=RX==71G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlagsGObject U _GObject  g_type_instance <  qdata tGInitiallyUnowned U VGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientation YGtkWidget .' _GtkWidget S 7  GtkWindow 0d _GtkWindow 5 bin 7P7 9GtkWidgetPrivate B_GtkWidgetPrivateSGtkContainer. _GtkContainer2 widget477DGtkContainerPrivate/._GtkContainerPrivateGtkBin.^ _GtkBin2-477GtkBinPrivate/_GtkBinPrivateGtkWindowPrivate ._GtkWindowPrivate2< GTK_DIALOG_MODALGTK_DIALOG_DESTROY_WITH_PARENTGTK_DIALOG_USE_HEADER_BARGtkDialogFlags6LB GTK_RESPONSE_NONEGTK_RESPONSE_REJECT~GTK_RESPONSE_ACCEPT}GTK_RESPONSE_DELETE_EVENT|GTK_RESPONSE_OK{GTK_RESPONSE_CANCELzGTK_RESPONSE_CLOSEyGTK_RESPONSE_YESxGTK_RESPONSE_NOwGTK_RESPONSE_APPLYvGTK_RESPONSE_HELPuGtkDialogcS _GtkDialog m windowoS7r GtkDialogPrivated _GtkDialogPrivate B GtkMisc. _GtkMisc2 widget477 GtkMiscPrivate/ _GtkMiscPrivate GtkLabel02 _GtkLabel6^ misc8 7; GtkLabelPrivate1u _GtkLabelPrivate^ " GtkBox/ _GtkBox3 -578 GtkBoxPrivate0 _GtkBoxPrivate GtkEntryBuffer( _GtkEntryBuffer,< .F71q GtkEntryBufferPrivate*Y _GtkEntryBufferPrivate<  GtkEntryF _GtkEntryJ M7O GtkEntryPrivateG _GtkEntryPrivate }  do_entry_buffer {@-do_widget content_area'vbox(label4(entryR(bufferw {('{@ 8{@2I{@Sa{@u tlB{@ tsB t t0 t t0{@ t0{@0 tB!t t 0 t0 t0|@b tB!t t M t0 t0|@?3|@l t1 t5Y|@ tv ts t1 t 1 t0i|@ ts t5u|@ t0|@ tv tB|@/ ts tv t0 t 0 t0|@9I t0 t0|@d^ tv|@ ts t0 t 0 t0|@d tv}@ tw t0+}@ ts tw t0 t 0 t0"3}@ tv#window M$gtk_widget_get_visible `2%gtk_widget_destroy S%gtk_widget_show_all u&libintl_gettext">k_dialog_new_with_buttonsM< M'(gtk_window_set_resizable $g_signal_connect_data?=M=1>k_dialog_get_content_areaϻl >k_box_newP(gtk_box_pack_startT (gtk_container_set_border_widthJ>k_label_new]M(gtk_label_set_markupp9 M>k_entry_buffer_newbw dM>k_entry_new_with_bufferw (gtk_entry_set_visibility )g_object_unref =3y6GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenentry_completion.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo@}@Hcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64,guint64-long long unsigned intgsize;gchar.glong0 gint1gboolean2gulong68guint7gfloat9floatgdouble:7doublegpointerMWbGData$p_GDatac long double GType~ GValue _GValuej g_typem dataz GTypeClass _GTypeClass g_type GTypeInstance& _GTypeInstanceP g_classPbpv_intqv_uintrv_longsv_ulongtv_int64uzv_uint64vv_floatwv_doublex(v_pointeryAg,GClosureJ _GClosure;emeta_marshal_nousen_guardsn_fnotifiers n_inotifiersin_inotifyfloatingderivative_flagin_marshalis_invalid marshal dataA notifiers GClosureNotifyDataKU _GClosureNotifyData dataA notifyGCallbackV\GClosureNotify_AV\AA;5G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlagsGObject Y _GObject  g_type_instance e  qdata xGInitiallyUnowned Y VGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientation YGtkWidget .+ _GtkWidget WF `  GtkWindow 0h _GtkWindow 5 bin 7T` 9GtkWidgetPrivate B_GtkWidgetPrivateWGtkContainer. _GtkContainer2 widget4`7HGtkContainerPrivate/2_GtkContainerPrivateGtkBin.b _GtkBin2V4`7GtkBinPrivate/_GtkBinPrivateGtkWindowPrivate ._GtkWindowPrivate2@ GTK_DIALOG_MODALGTK_DIALOG_DESTROY_WITH_PARENTGTK_DIALOG_USE_HEADER_BARGtkDialogFlags6LF GTK_RESPONSE_NONEGTK_RESPONSE_REJECT~GTK_RESPONSE_ACCEPT}GTK_RESPONSE_DELETE_EVENT|GTK_RESPONSE_OK{GTK_RESPONSE_CANCELzGTK_RESPONSE_CLOSEyGTK_RESPONSE_YESxGTK_RESPONSE_NOwGTK_RESPONSE_APPLYvGTK_RESPONSE_HELPuGtkDialogcW _GtkDialog m windowoW`r GtkDialogPrivated _GtkDialogPrivate F GtkMisc. _GtkMisc2 widget4`7 GtkMiscPrivate/ _GtkMiscPrivate GtkLabel06 _GtkLabel6b misc8 `; GtkLabelPrivate1y _GtkLabelPrivateb & GtkBox/ _GtkBox3 V5`8 GtkBoxPrivate0 _GtkBoxPrivate GtkTreeIter' _GtkTreeIter]h stamp_ user_data`A user_data2aA user_data3bA GtkTreeModel*| _GtkTreeModelh  GtkListStore( _GtkListStore, parent.J`1 GtkListStorePrivate) _GtkListStorePrivate GtkEntryCompletion). _GtkEntryCompletionDc FFJ`I GtkEntryCompletionPrivate+ _GtkEntryCompletionPrivate c GtkEntryF _GtkEntryJ FM`OGtkEntryPrivateG _GtkEntryPrivate    create_completion_model @}@zstore"(iter `]}@t1t@k}@tstv}@tstvt0t Bt }@tstv}@.tstvt0t Bt }@Jtstv }@tstvt0t Bt do_entry_completion'~@!do_widget'content_area)(vbox*(label+(entry,)completion- :)completion_model. X)"~@$"'~@M"7~@nN~@ftB~~@tBtt0t t0~@t0~@tB#tt 0t0t0~@ tB#tt Mt0t0" @Z @0t1t5F@^tvtst1t 1t0V@ytst5b@t0t@-tvtB@tstvt0t 0t0"@T@tstvt0t 0t0"@i@6tvts@Kts"@(@ptstv@tv @tst0window M$gtk_list_store_newC"%>k_list_store_append" >k_list_store_setU$" %'gtk_widget_get_visible `M(gtk_widget_destroy n(gtk_widget_show_all $libintl_gettext&$gtk_dialog_new_with_buttonsQ@ Q%>k_window_set_resizable 'g_signal_connect_dataZAQA5$gtk_dialog_get_content_areaϿ $gtk_box_newP>k_box_pack_startT>k_container_set_border_widthN$gtk_label_new]-Q>k_label_set_markuppT Q)gtk_entry_new)gtk_entry_completion_newf (gtk_entry_set_completion (g_object_unref A>k_entry_completion_set_modeln  *gtk_entry_completion_set_text_column B8GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenevent_axes.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo @ Kdoublefloatintcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned chargint8~signed charguint8`gint16 short intguint16!guint32&gint64,"guint64-long long unsigned intgsize;gchar.gshort/glong0gint1gboolean2Bgulong6Kguint7gfloat9gdouble:gpointerMgconstpointerNGEqualFuncUNGDestroyNotifyW  GHashFuncZ&,l;A X GData$f _GDataGList%{ _GList ')next*prev+nGHashTable% _GHashTableGHashTableIter+ _GHashTableIter-_dummy10dummy21dummy32dummy43 dummy54Ndummy65BGString't _GString )str+Flen, allocated_len- eY long doubleGType~ GValue _GValue jg_type m z>GTypeClass1_GTypeClassWg_typeGTypeInstancem_GTypeInstanceg_class  p>v_int qBv_uint rlv_long s5v_ulong t^v_int64 uv_uint64 vv_float wyv_double xv_pointer yN?GClosure J^ _GClosure o @meta_marshal_nouse @n_guards @n_fnotifiers @ n_inotifiers @in_inotify @floating @derivative_flag @in_marshal @is_invalid @marshal  Ɩnotifiers E GClosureNotifyData K _GClosureNotifyData  notify GCallback VRGClosureNotify _ N @ll zG_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags KGObject  _GObject g_type_instance Wo @qdata GInitiallyUnowned  PangoLayout  _PangoLayout cairo_t|B _cairocairo_pattern_ta _cairo_pattern_cairo_rectangle_int xywidth cairo_rectangle_int_tq 3 J cairo_region_t  _cairo_regionGdkRectangleN GdkAtomV5 ; _GdkAtomGdkRGBAuT _GdkRGBA % red'green(blue)alpha*GdkDevicex _GdkDeviceGdkDragContexty _GdkDragContextGdkWindow _GdkWindowl GDK_EXPOSURE_MASKGDK_POINTER_MOTION_MASKGDK_POINTER_MOTION_HINT_MASKGDK_BUTTON_MOTION_MASKGDK_BUTTON1_MOTION_MASK GDK_BUTTON2_MOTION_MASKGDK_BUTTON3_MOTION_MASKGDK_BUTTON_PRESS_MASKGDK_BUTTON_RELEASE_MASKGDK_KEY_PRESS_MASKGDK_KEY_RELEASE_MASKGDK_ENTER_NOTIFY_MASK GDK_LEAVE_NOTIFY_MASKGDK_FOCUS_CHANGE_MASKGDK_STRUCTURE_MASKGDK_PROPERTY_CHANGE_MASKGDK_VISIBILITY_NOTIFY_MASKGDK_PROXIMITY_IN_MASKGDK_PROXIMITY_OUT_MASK GDK_SUBSTRUCTURE_MASKGDK_SCROLL_MASKGDK_TOUCH_MASKGDK_SMOOTH_SCROLL_MASKGDK_ALL_EVENTS_MASKGdkEventAny{ _GdkEventAny  " qGdkEventExpose| _GdkEventExpose$A"qarea  region!"count"B GdkEventVisibility}[_GdkEventVisibility467"8qy9h GdkEventMotion~_GdkEventMotion@TzVW"XqY xZy[axes\" y]l$is_hint^(_",`0`8GdkEventButton_GdkEventButton@F"q xyaxes" yl$buttonl(",08GdkEventTouch[_GdkEventTouchH("q xyaxes" yl$"(emulating_pointerN,"08@GdkEventScroll>_GdkEventScrollP "q xyyl direction $ "( 0 8delta_x @delta_y HGdkEventKey_GdkEventKey(/12"3q4 y5lkeyval6llength7Bstring8Fhardware_keycode9 group:"is_modifier;l$GdkEventFocus_GdkEventFocus sHuv"wqinx GdkEventCrossing`_GdkEventCrossingHX-Z["\qsubwindow]" ^x_y` a(b0modec 8detaild<focuseN@yflDGdkEventConfigureF_GdkEventConfigure"qxB yBwidthBBGdkEventProperty_GdkEventProperty?"qatom& ylGdkEventSelectionX_GdkEventSelection "q& target& & requestor"GdkEventOwnerChange_GdkEventOwnerChange "qowner" reason"& selection_timeGdkEventProximity_GdkEventProximity"q "GdkEventDND"_GdkEventDNDRST"UqcontextV" XY'Y'GdkEventWindowState_GdkEventWindowState)"qchanged_mask ! new_window_state!!GdkEventSetting@_GdkEventSetting  " qaction '" name 3GdkEventGrabBroken_GdkEventGrabBroken98:;"<qkeyboard=N implicit>Ngrab_window?"GdkEventSequenceP _GdkEventSequenceGdkEvents_GdkEventP !anyl !expose !visibilityA!motion!buttonz!touchF!scroll(!key !crossingH!focus_change!configure-  ?!owner_change!proximity!dnd!window_state!setting)!grab_brokenc"GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_EVENT_LAST)GdkEventTypeOZhGDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCUREDGdkVisibilityState^ lGDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTHGdkScrollDirectionrGDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWNGdkNotifyType GDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCHGdkCrossingMode!GDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOWGDK_WINDOW_STATE_FOCUSEDGDK_WINDOW_STATE_TILEDGdkWindowState '"GDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETEDGdkSettingAction!"GDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSEGdkOwnerChange@"   8 E GtkWidget." _GtkWidget&#parent_instancepriv# GtkWindow07# _GtkWindow5d#bin7=$priv9$GtkWidgetPrivateB|# _GtkWidgetPrivateGtkAllocationT "d##&#GtkContainer.# _GtkContainer2$4"priv71$GtkContainerPrivate/$ _GtkContainerPrivate$#GtkBin.K$ _GtkBin2{$container4#priv7$GtkBinPrivate/$ _GtkBinPrivate{$GtkWindowPrivate.$ _GtkWindowPrivate$r %GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu$$% E "8u%last_source"axescolorE x(y0AxesInfo)%"!%pointer_info"%#u%EventData$%#axes_info_lookupNN%&$N%%axis_labelO;%valueP"&valR"&atomS& 'draw_axes_info&%cr $%$#&pressure&tilt_x&tilt_y&wheel()pattern 'axes_info_freeG&$G%'render_arrow'%cr %x_diff݇%y_diffއ%label;*draw_device_info' @N)+'#v),cr( )+)")-y*_.+%/layout-- )/string.*0/B\1;@9'2ts1G@9'2t03W@91k@:(2tw2t`B1@:/(2tw2tkB2tH1@.:R(2ts2t H1@T:g(2tu1@:(2ts2tu1ǀ@:(2ts1߀@:(2tu2t02t\1@;(2ts2t#1@.;(2ts2t H1@.:)2ts2t L1>@V;P)2ts2t L2t H1F@:e)2ts1N@|;z)2ts1V@;)2tu4f@;2tw2t15axes_info_new8%p@}U*6:%7*7t@*8__n< 8__s< 89__p<7*4@;2t81@;4*2ts4@<2t02t02t0:t ;&@ *<&3@O<=@q<'update_axes_from_eventyU+%eventy$zU+>|"&source_device|">}"&x~&y~&value~&l&axes>%(&ptr"(&__n &__s &__p–%5event_cbN@;.?Ҥ#@event?ԖA*@-<*B*`*CD**D**D*+E*HE*PE*XD+4+D +T+D++7'@H,D%++7D@ k,D1+,D<+",DG++4P@;2t81@@<,2tu2t w3o@<F&@,B&6,3@O<4@q<2tsF&@,B&I,3@O<4@q<2tw1#@<-2ts1/@ =)-2ts19@N=>-2ts1j@}=S-2tu3@=1@=-2ts2tH2tP1@=-2t1@#>-2t3Ӄ@)1#@<>-2tu3-@)4F@<2tu2tv4؂@f>2tGevent_data_freepP@;z.?pU+F&_@sg.B&\,3j@O<4r@q<2tv3}@O<=@q<;%@H.B%o,B&,<%%D &,D&,1@>.2tR2t03@}=;%&@ 4B<&-BF&>-/2ts2t L2t L2t L1چ@>/2ts1@.:02ts2t L2t L1@V;>02ts2t@2t 1@:S02ts1&@.:02ts2t@2t 16@>02ts2tB4>@|;2ts7C@C2D&-1i@"?(12t @2t @2t @2t @2t @2t( @1@i?l12tw2t ?2t 2t 1@i?12tw2t ?2t$ 1@?12ts2tw1@?22ts2t @2t @2t @2t 2t$ -DT!@1@@122ts4@ @2tw1@9X22ts1@.;~22ts2t ?1@;22ts2tv1-@.:22ts2t 1B@V;22ts1Y@.:22ts2t 1u@V; 32ts1}@:!32ts1@D@632ts1@z.a32Pv2RyB2QPI%v|1@z.32Pv2RB2QXI%v|1م@z.32Pv2RB2QhI%v|1@932ts1@.;32ts2t $@1@l@E42ts2t 2t 2t 2t ?1'@@Z42ts1Y@?42ts2t Y@2t 1a@:42ts1i@|;42ts1q@|;42ts4@z.2Pv2RB2Q`I%RJdraw_cbQN@6.Q#-crR .SKUU+-0V#KW%.LiterXHLkeyYLvalueYLyZB1'@@52t2t1B@.52P2Q@2tDIQ&1]@@62ts1@.962Pu2Q@2twIQ&1@!A[62ts2t02tv1@'62P2R2Q02t1ֈ@@62ts1@'62P2R2tu4 @!A2ts2tw2tv#event_data_newdU+&7>fU+(&__nh &__sh &__phMdo_event_axesz# @m9-toplevelz#0|#M)event_data}U+/box~#(.H6@ 8CD6F.N7O7O7D7F.4@;2t84(@<2t02t02t02t @36@SA3G@|A3e@A1|@A;82t01@AY82t 2t 1Ή@B82tB:t2t M2t02t03Ӊ@TB1@mB82ts1@B82ts2t 1G@B82ts2tB2tv2t P@1s@B492ts2tB2t@2t v2t02t04@B2ts2tB2t@2t v2t02t0Pcur_color5l M;9? Qcolors&9 ARcairo_save9 Sg_string_new19;Sgdk_device_get_name;:"Tg_string_append_printf.:;URcairo_move_toOT: Vgtk_widget_create_pango_layout- :#;Tpango_cairo_show_layout: - Rcairo_stroke: Tpango_layout_get_pixel_size ;- 99Tgdk_cairo_set_source_rgba(.; %Rcairo_set_line_widthV; Rcairo_line_toU|; Rcairo_restore; Rg_object_unref ;Sg_string_free8F;NSg_malloc0N; Sgdk_rgba_parse>N<";Sg_hash_table_new_full<O<Tg_hash_table_destroyAq<Tg_freeE<Sgdk_device_get_axis_valueN<""& "Sg_hash_table_insertCN<Vgdk_event_get_device"=== cVgdk_event_get_source_device"N==Vgdk_event_get_event_sequence"}==Sg_hash_table_lookupX=Tg_hash_table_remove_allQ=Vgdk_event_get_coordsN==""Sgdk_device_list_axes#>"Tg_list_free3<>Sg_hash_table_removeNNf>Rgtk_widget_queue_draw>#Sgdk_atom_intern8& >;NRcairo_set_source_rgb> Rcairo_new_pathL> Rcairo_show_text"?  Vcairo_pattern_create_radial i?Rcairo_pattern_add_color_stop_rgba ? Rcairo_set_source?  Rcairo_arc^@ Rcairo_fill @ Rcairo_pattern_destroy D@ Rcairo_translate+l@ Rcairo_set_source_rgba@ Rcairo_new_sub_pathR@ Rgtk_widget_get_allocation@##Tg_hash_table_iter_init}AASg_hash_table_iter_nextNSAALLVgtk_widget_get_visible`N|A#Rgtk_widget_destroyA#Rgtk_widget_show_allA#Sgtk_window_new#A %Rgtk_window_set_default_sizeB#BBVg_signal_connect_data ^TB;zWgtk_event_box_newM#Tgtk_container_addB7$#Rgtk_widget_add_eventsB#BXg_object_set_data_full .;x=GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenexpander.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo@APcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64, guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong60guint7gfloat9floatgdouble:/doublegpointerMOZGData$h_GData[ long double GType~ GValue _GValuej g_typem dataz GTypeClass _GTypeClass g_type GTypeInstance _GTypeInstanceH g_classHZpv_intqv_uintrv_longsv_ulongtv_int64urv_uint64vv_floatw v_doublex v_pointery9_$GClosureJ _GClosure3meta_marshal_nousen_guardsn_fnotifiers n_inotifiersin_inotifyfloatingderivative_flagin_marshalis_invalid marshal data9 notifiers GClosureNotifyDataKM _GClosureNotifyData data9 notifyGCallbackVTGClosureNotify_9NT993-G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags _GObject  g_type_instance   qdata pGInitiallyUnowned B VGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientation YGtkWidget . _GtkWidget L parent_instance   GtkWindow 0] _GtkWindow 5 bin 7I 9GtkWidgetPrivate B_GtkWidgetPrivateLGtkContainer. _GtkContainer2  widget47=GtkContainerPrivate/'_GtkContainerPrivate GtkBin.W _GtkBin247GtkBinPrivate/_GtkBinPrivateGtkWindowPrivate ._GtkWindowPrivate25 GTK_DIALOG_MODALGTK_DIALOG_DESTROY_WITH_PARENTGTK_DIALOG_USE_HEADER_BARGtkDialogFlags6L; GTK_RESPONSE_NONEGTK_RESPONSE_REJECT~GTK_RESPONSE_ACCEPT}GTK_RESPONSE_DELETE_EVENT|GTK_RESPONSE_OK{GTK_RESPONSE_CANCELzGTK_RESPONSE_CLOSEyGTK_RESPONSE_YESxGTK_RESPONSE_NOwGTK_RESPONSE_APPLYvGTK_RESPONSE_HELPuGtkDialogcL _GtkDialog m{ windowoLr GtkDialogPrivated _GtkDialogPrivate{ ; GtkBox/ _GtkBox3 58 GtkBoxPrivate0 _GtkBoxPrivate  do_expander@ do_widgetcontent_aread.vbox.label.expander.Ɗ@ ׊@ @ @ tHB.@2 tOB t t0 t t0C@o t0x@D t[B!t t 0 t0 t0@v tdB!t t M t0 t0@Ћ@ t1 t5@* tv ts t1 t 1 t0@^ ts t5@ tlB6@*! ts t0 t 0 t0B@9 tBh@*g ts tv t0 t 0 t0t@ tB"@ tv#window M$gtk_widget_get_visible ` %gtk_widget_destroy  %gtk_widget_show_all &libintl_gettext2>k_dialog_new_with_buttonsoI5 I'(gtk_window_set_resizable $g_signal_connect_data9I9->k_dialog_get_content_areaϴ >k_box_newP*(gtk_box_pack_startT^ (gtk_container_set_border_widthC>k_label_new]I>k_expander_newPI)gtk_container_addCT ?GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddengestures.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo@Rdoublefloatintcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64, guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong6=guint7gfloat9gdouble:gpointerMITGData$b_GDataU long double GType~ GValue _GValuej g_typem dataz GTypeClass _GTypeClass g_type GTypeInstance _GTypeInstanceB g_classBTpv_intqv_uintr v_longsv_ulongtv_int64uv_uint64vv_floatwv_doublex$v_pointery3Y1GClosureJ  _GClosure-,meta_marshal_nousen_guardsn_fnotifiers n_inotifiersin_inotifyfloatingderivative_flagin_marshalis_invalid marshal data3 notifiers GClosureNotifyDataKG _GClosureNotifyData data3 notifyGCallbackVNGClosureNotify_3H N33 -'G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlagsGObject K _GObject  g_type_instance ,  qdata jGInitiallyUnowned K<GWeakNotify 3cairo_t |_cairo _cairo_matrix0 G xx yx  xy  yy  x0 y0 (cairo_matrix_t cairo_pattern_t t_cairo_pattern _cairo_rectangle_int  x  y  width  height  cairo_rectangle_int_t ]GdkRectangle N  GDK_EXPOSURE_MASKGDK_POINTER_MOTION_MASKGDK_POINTER_MOTION_HINT_MASKGDK_BUTTON_MOTION_MASKGDK_BUTTON1_MOTION_MASK GDK_BUTTON2_MOTION_MASKGDK_BUTTON3_MOTION_MASKGDK_BUTTON_PRESS_MASKGDK_BUTTON_RELEASE_MASKGDK_KEY_PRESS_MASKGDK_KEY_RELEASE_MASKGDK_ENTER_NOTIFY_MASK GDK_LEAVE_NOTIFY_MASKGDK_FOCUS_CHANGE_MASKGDK_STRUCTURE_MASKGDK_PROPERTY_CHANGE_MASKGDK_VISIBILITY_NOTIFY_MASKGDK_PROXIMITY_IN_MASKGDK_PROXIMITY_OUT_MASK GDK_SUBSTRUCTURE_MASKGDK_SCROLL_MASKGDK_TOUCH_MASKGDK_SMOOTH_SCROLL_MASKGDK_ALL_EVENTS_MASKGdkEventSequence _GdkEventSequence  < GTK_PHASE_NONEGTK_PHASE_CAPTUREGTK_PHASE_BUBBLEGTK_PHASE_TARGET GtkPropagationPhase A GtkWidget.9 _GtkWidgetr parent_instance priv GtkWindow0 _GtkWindow5 bin7 priv9 GtkWidgetPrivateB _GtkWidgetPrivateGtkAllocationT(   r GtkContainer. _GtkContainer2L 4( priv7} GtkContainerPrivate/g _GtkContainerPrivateL  GtkBin. _GtkBin2 container4 priv7 GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate. _GtkWindowPrivate rU GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu# GtkEventController _GtkEventControllerGtkGesture' _GtkGestureGtkGestureLongPress& _GtkGestureLongPressGtkGestureRotate'_GtkGestureRotateGtkGestureSwipe'+_GtkGestureSwipeGtkGestureZoom'S_GtkGestureZoomj    =zoom_scale_changed9@ $9.scale:$;  @  rotation_angle_changed0@ d$0v.angle1$delta2$ 3 @ long_press_gesture_end'@$'j/sequence( ) nj@ long_press_gesture_pressedЌ@C$p/x$y$  @ swipe_gesture_swept@)$|,/velocity_x$velocity_y$  @ !drawing_area_drawA @#A crB"allocationD #@C$patV@/"matrixWG@$angleX$^/$scaleX$q/%>@ tv t %F@? ts&S@X%_@ tv&l@%|@ tv%@ ts tv%@?K ts t  t  t  t %֏@q t  t  t  t %@ tv t  t  t  t %@9 tv t  t  t  t %&@U ts tv%.@j ts%6@. ts'>@J tv%F@n t t&@&@%@? ts% @+ ts t  t I@ t  t$ -DT!@%-@q ts t ? t  t ?%5@/ ts%=@. ts%Z@? ts%l@J ts t @%@r ts t %Ž@ ts%@h ts t ? t  t  t ?%@/} ts'@. ts(do_gestures P@cdo_widget $drawing_area /)$j/&f@&w@&@ %@. t0%ɐ@N8 t  t %ސ@P tB%@ tB*t t 8M t0 t0&@%+@ ts%;@* ts t @%k@ ts tB t @ t 0 t0 t0%s@S ts%@K tv tB t@ t s t0 t0%@zf tv t2%ő@ ts*t tv%͑@ ts%@ tv tB tЌ@ t s t0 t0%'@ tv tB t@ t s t0 t0%7@z. tv t2%K@N ts*t tv%S@ c ts%@ tv tB t@ t s t0 t0%@z tv t2%@ ts*t tv%@5  ts%@+ tv t B t@ t s t0 t0%@zF tv t2' @ ts*t tv"window 8M"rotate j4M"zoom j0M"swipe_x $(M"swipe_y$ M"long_pressedM+gtk_widget_queue_draw +cairo_matrix_init_translate 99G+cairo_save X,gtk_gesture_rotate_get_angle_delta1$v+cairo_matrix_rotate 9,gtk_gesture_zoom_get_scale_delta1$+cairo_matrix_scale 9+cairo_set_matrix 844:G+cairo_rectangle ~q-cairo_pattern_create_linear +cairo_pattern_add_color_stop_rgb +cairo_set_source +cairo_fill .+cairo_restore J+cairo_pattern_destroy n+gtk_widget_get_allocation  ,gtk_gesture_is_recognizedZj+cairo_arc ^+cairo_set_source_rgba /+cairo_stroke J+cairo_set_line_width r+cairo_move_to O+cairo_rel_line_to u-gtk_widget_get_visible` +gtk_widget_destroy  +gtk_widget_show_all. ,gtk_window_new NU +gtk_window_set_default_size .gtk_window_set_title C-g_signal_connect_data3C3'/gtk_drawing_area_newH .gtk_container_add*  +gtk_widget_add_eventsS ,gtk_gesture_swipe_new.jz .gtk_event_controller_set_propagation_phase<d +g_object_weak_ref 3,gtk_gesture_long_press_new-j  ,gtk_gesture_rotate_new.j5  0gtk_gesture_zoom_new.j .DBGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenglarea.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo @ Vfloatdoublecharunsigned intintptrdiff_tshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charlong long unsigned int long doublesigned charshort intguint32&gint64,0guint64-ygsize;gchar.glong0$gint1gboolean2gulong6Sguint7gfloat9gdouble:gpointerMgconstpointerNGBytes$ _GBytesGQuark$GError* _GError , domain. code/ message0% GData$3 _GDataG  :G_LOG_FLAG_RECURSIONG_LOG_FLAG_FATALG_LOG_LEVEL_ERRORG_LOG_LEVEL_CRITICALG_LOG_LEVEL_WARNINGG_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFOG_LOG_LEVEL_DEBUGG_LOG_LEVEL_MASK|GLogLevelFlags HM&GType ~GValue R _GValue j g_type m5 data zGTypeClass _GTypeClass g_type 5GTypeInstance _GTypeInstance g_class C C pv_int qv_uint rHv_long sv_ulong t:v_int64 uv_uint64 vv_float wUv_double xcv_pointer yrGGClosure J _GClosure z meta_marshal_nouse n_guards n_fnotifiers  n_inotifiers in_inotify floating derivative_flag in_marshal is_invalid  marshal y data r notifiers Ȩ GClosureNotifyData K _GClosureNotifyData 6 data r notify GGCallback VGClosureNotify _]csrssHrrH  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags  _GObject 6 g_type_instancez qdata)GInitiallyUnownedxG_RESOURCE_LOOKUP_FLAGS_NONEGResourceLookupFlagsOGdkScreen~ _GdkScreenGdkGLContext _GdkGLContextV# GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkOrientationYGtkAdjustment"O _GtkAdjustment6 86M: GtkWidget. _GtkWidget 6M* GtkWindow0 _GtkWindow5 bin7 M9C GtkWidgetPrivateB _GtkWidgetPrivate   GtkContainer.J _GtkContainer2y 4 M7 GtkContainerPrivate/ _GtkContainerPrivatey 6 GtkBin. _GtkBin2 C46 M7 GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate.0 _GtkWindowPrivate r{ GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeuI GtkAdjustmentPrivate- _GtkAdjustmentPrivate : GtkBox/ _GtkBox3 C56 M8+ GtkBoxPrivate0 _GtkBoxPrivate GtkGLArea'B _GtkGLArea1b 4 1  GLenum5GLboolean6hGLbitfield7GLint;GLuint?GLsizei@GLfloatAGLcharFGLsizeiptrQ      *   0  ; B R n  X  g n m  x          n  n         r       &6 * <Qn      i }    ]W n Q  | g   n |   /X_AXISY_AXISZ_AXISN_AXISrender*aareab context unrealize!$ realize!$ "e)adjustment) data*r#axis,$6 e%#_g_boolean_var_. G init_buffers#_&vao_out#&buffer_out$'vao& (& init_shaders`&program_out`&mvp_outa'vertexc 'fragmentc 'programd 'mvpe 'statusf'sourceg/)out%'log_len(A*close_windowe @)=+e$ ,create_shader; P@-type;0-src<G0.shader> 0/status?h0Г@/log_lenHl1IA02@3ts3t 3tl4@)2@3ts3t03t w5Q@*\3t03t@3tP B3t @ BG Bv 1)(3tw5Y@.*q3tw6c@3ts2f@3tv2@3ts3t13t\3t 02@3ts6@3ts3t 3th draw_triangle'mvpG compute_mvpF&resF&phi&theta&psi'x'y'z'c1's1'c2's2'c3's3'c3c2's3c1'c3s2s1's3s1'c3s2c1's3c2'c3c1's3s2s1'c3s1's3s2c1'c2s1'c2c17/p@8C8P90s8C8P:ה@H &;H<=ה@hd>K0>>0>3 1>(#1;h?V_1?_1?h1?q1?{1?1? 2?2?>2<?Q2?p2?2?2?2?2? 3?*3?I3<-<95@B*3t5$@Y*3t54@B*3t5D@Y*23t5T@B*L3t@d@Y*3t2Z@3t13t03t 2u@3t 2@3t02@3t03t43t 3t 03t03t02@3t43t03t32@3t02@3t 3t06@3t02Ɣ@d3t?3t?3t?3t ?6ה@3t @@@p*3t7a0@Q8s0Q@+>sh36g@3t13tHM5@@*3ts@H@p*3tsA@a88?3<T!B0@C?30@/>3>3B@/C<T!B@͗@*3t03t B3t .3t T!B3tr B5ؗ@*3tD@"+7@800@|>3=0@8'HME6;6;?`6?6?6?L7?7C5Ҝ@+'3t03t05@+?3tF!B5@+[3tv3tw5@ ,p3tw54@>,3t v@3t ?3t (@3t( 5f@{,3tw3t+!B3t@3t 23t03t05v@,3t03tw5@+43tv3tw5@,O3tw3t15@ ,d3tw5@ ,y3tv5 @+3t$!B50@+3tv3t\5<@ ,3t\5h@>, 3t v@3t ?3t (@3t( 5@{,S 3t\3t+!B3t@3t w3t03t05@,o 3t03t\5@+ 3tv3t\5Ӟ@, 3t\3t15ߞ@ , 3t\5@ , 3tv5@+ 3tM!B5@+!3tv3tw5'@ ,!3tw5S@>,n!3t v@3t ?3t (@3t( 5@{,!3tw3t+!B3t@3t 13t03t05@,!3t03tw5@+!3tv3tw5@,!3tw3t14@ ,@ȟ@ ,3tv5@ -,"3tw5@*-B"3t5@R-W"3ts5@{-v"3ts3t B57@-"3ts3t 3t X5G@-"3ts3t<5w@{,"3ts3t!B3t @3t w3tw3tw5@+#3t13tw5@.*#3tu3t65@+F#3ts3tu4@-.5Û@,c#3t15؛@D.w#3t15@+#3tu5@{,#3t !B3t@3t w3tw3tw5S@{,#3t!B3t0@3t w3tw3tw5@{,1$3t!B3tp@3t w3tw3tw5@+L$3t13tw5@+h$3tu3tv5@,$3tv3t15@+$3tX3tv5@n.$3t9!B5ҝ@,$3tv3t15ޝ@+$3tu3tv5 @{,%%3tv3t>!BKt3t s3t03t25@+B%3tX3tv@؟@+3tX3tvIdo_glarea$ @S%+$ 4@.4@.4@.@,@&3t/demo_window $ \M/gl_area $ XM%G/rotation_angles%LM $&G /vertex_data=&!B&/position_bufferլ HM/program֬ DM/mvp_location׬ @MLepoxy_glAttachShader% Lepoxy_glBindBuffer?%< Lepoxy_glBindVertexArray% Lepoxy_glBufferData& Lepoxy_glClear9& Lepoxy_glClearColorK&} Lepoxy_glCompileShader?' Lepoxy_glCreateProgram(Lepoxy_glCreateShader(R Lepoxy_glDeleteBuffersQ( Lepoxy_glDeletePrograms( Lepoxy_glDeleteShader( Lepoxy_glDetachShader( Lepoxy_glDisableVertexAttribArray( Lepoxy_glDrawArrays(6Lepoxy_glEnableVertexAttribArray) Lepoxy_glFlush*5 Lepoxy_glGenBuffers* Lepoxy_glGenVertexArrays+ Lepoxy_glGetProgramInfoLog-}Lepoxy_glGetProgramivG-Lepoxy_glGetShaderInfoLog-}Lepoxy_glGetShaderiv-Lepoxy_glGetUniformLocation.cLepoxy_glLinkProgram/ Lepoxy_glShaderSourceQ6 Lepoxy_glUniformMatrix4fv99Lepoxy_glUsePrograma9 Lepoxy_glVertexAttribPointer;Mg_mallocLr*Ng_log e.*ONg_freeEB*rPcosfY*Psinfp*Mgtk_gl_area_get_errorG*b Ngtk_gl_area_make_current|*b Qg_assertion_message_expr$*Mgtk_adjustment_get_value`c"+ Qgtk_widget_queue_drawF+$ Mg_resources_lookup_dataj/y+xAMg_bytes_get_data:+/;Ng_bytes_unrefD+/Mgtk_box_newP$ +# Mgtk_label_new ]$ +Ngtk_container_add , $ Qgtk_widget_show>,$ Mgtk_adjustment_newO {,ccccccPg_signal_connect_data :,r6rGMgtk_scale_new!Q$ ,#  Qgtk_widget_set_hexpand  -$ *Mgtk_window_new$ *-{ Pgtk_widget_get_screenR-$ Qgtk_window_set_screen{-0 Ngtk_window_set_title-0 Qgtk_window_set_default_size-0 Ngtk_container_set_border_width. HNgtk_box_set_spacingf-.h Rgtk_gl_area_newV$ Qgtk_widget_set_vexpandn.$ *Mgtk_button_new_with_label"b$ .Pgtk_widget_get_visible`*.$ Qgtk_widget_destroy.$ Sgtk_widget_show_all$ [FGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenheaderbar.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo@@!!\charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64,guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong6+guint7gfloat9floatgdouble:*doublegpointerMJUGData$c_GDataV long double GType~ GValue _GValuej g_typem dataz GTypeClass _GTypeClass g_type GTypeInstance _GTypeInstanceC g_classCUpv_intqv_uintrv_longsv_ulongtv_int64umv_uint64v{v_floatwv_doublexv_pointery4ZGClosureJ  _GClosure.meta_marshal_nousen_guardsn_fnotifiers n_inotifiersin_inotifyfloatingderivative_flagin_marshalis_invalid marshal data4 notifiers GClosureNotifyDataKH _GClosureNotifyData data4 notifyGCallbackVOGClosureNotify_4IO44.(G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlagsGObject L _GObject  g_type_instance   qdata kGInitiallyUnowned LGIcon f_GIconGdkScreen ~_GdkScreen GTK_ICON_SIZE_INVALIDGTK_ICON_SIZE_MENUGTK_ICON_SIZE_SMALL_TOOLBARGTK_ICON_SIZE_LARGE_TOOLBARGTK_ICON_SIZE_BUTTONGTK_ICON_SIZE_DNDGTK_ICON_SIZE_DIALOGGtkIconSize  VGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientation YGtkStyleContext ,) _GtkStyleContext+f parent_object-= priv. GtkWidget .w _GtkWidget parent_instance priv GtkWindow 0 _GtkWindow5 bin7 priv9= GtkWidgetPrivateB _GtkWidgetPrivatefGtkContainer.? _GtkContainer2r widget4f priv7 GtkContainerPrivate/ _GtkContainerPrivater + GtkBin. _GtkBin2 4+ priv7 GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate.* _GtkWindowPrivate ru GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeuC GtkHeaderBar& _GtkHeaderBar* ,+ GtkStyleContextPrivate) _GtkStyleContextPrivate  do_headerbar @@!hdo_widget window `Mheader 7button 7box 78image U8icons8X@hi@@ @ !t0 @ !t@ @E( !t!B"t!t `M!t0!t0 @F !t X!t @ )@j !ts!t1 9@  !ts!t!B I@6 !ts!t0N@h \@~ !t!B n@ !tw!t4 x@ !tw @ !tv!tu @- !ts!tv @;G !t0!t0 @]\ !tv @t !t"Bá@h ١@ !t"B!t4 @ !tw @ !tv!tw@h @ !t1"B!t4 @!tw $@$!tv!tw 0@@!ts!tv A@U!tsF@EW@#gtk_widget_get_visible` $gtk_widget_destroy $gtk_widget_show_all %gtk_window_new u #gtk_widget_get_screen $gtk_window_set_screenE% #g_signal_connect_data4D4($gtk_window_set_default_size% >k_header_bar_new= 'gtk_header_bar_set_show_close_buttonZ  'gtk_header_bar_set_title?6 D'gtk_header_bar_set_has_subtitle^h >k_button_new` %g_themed_icon_new2%gtk_image_new_from_gicon $g_object_unref 4'gtk_container_add  'gtk_header_bar_pack_endS;  %gtk_box_newP ]#gtk_widget_get_style_context#  $gtk_style_context_add_class D%gtk_image_new_from_icon_name D'gtk_header_bar_pack_startP  $gtk_window_set_titlebarE%  >k_text_view_new ,@HGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenhypertext.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demop@(_doubleintcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned chargint8nsigned charguint8Pgint16 short intguint16!guint32&gint64,guint64-long long unsigned intgsize;gchar.gshort/glong0 gint1gboolean22gulong6;guint7gfloat9wfloatgdouble:gpointerM  GData$_GDataGSList% _GSList' data) next*2 long double GType~ GValueC _GValuejp g_typem& dataz GTypeClass _GTypeClass g_type& GTypeInstance _GTypeInstance g_classp44pv_intq2v_uintr\v_longs%v_ulongtNv_int64uv_uint64vv_floatwiv_doublexv_pointery/GClosureJ _GClosure meta_marshal_nousen_guardsn_fnotifiers n_inotifiersin_inotifyfloatingderivative_flagin_marshalis_invalid marshalj dataƏ notifiersș GClosureNotifyDataK _GClosureNotifyData' data notify8GCallbackVGClosureNotify_NTddpd\\ G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject  _GObject 6 g_type_instance   qdata GInitiallyUnowned  azPANGO_WEIGHT_THINPANGO_WEIGHT_ULTRALIGHTPANGO_WEIGHT_LIGHTPANGO_WEIGHT_SEMILIGHTPANGO_WEIGHT_BOOKPANGO_WEIGHT_NORMALPANGO_WEIGHT_MEDIUMPANGO_WEIGHT_SEMIBOLDPANGO_WEIGHT_BOLDPANGO_WEIGHT_ULTRABOLDPANGO_WEIGHT_HEAVYPANGO_WEIGHT_ULTRAHEAVY PANGO_UNDERLINE_NONEPANGO_UNDERLINE_SINGLEPANGO_UNDERLINE_DOUBLEPANGO_UNDERLINE_LOWPANGO_UNDERLINE_ERROR _cairo_rectangle_int N x  y  width  height  cairo_rectangle_int_t  cairo_region_t _cairo_regionGdkRectangleNN GdkAtomV  _GdkAtomGdkCursorv _GdkCursorGdkDevicex _GdkDeviceGdkDragContexty _GdkDragContextGdkDisplay}8 _GdkDisplayGdkScreen~V _GdkScreenGdkWindows _GdkWindowGdkEventAny{ _GdkEventAny    aGdkEventExpose| _GdkEventExpose$T  a area  region! count"2 GdkEventVisibility}n _GdkEventVisibility4 6 78a" 9 GdkEventMotion~ _GdkEventMotion@T V WXaY xZ y[ axes\ " ]\$ is_hint^(H _,`0 `8GdkEventButton _GdkEventButton@Y  a x y axes " \$ button\(H ,0 8GdkEventTouchn _GdkEventTouchH@ a x y axes " \$ sequence( emulating_pointer>,H 08 @GdkEventScrollV _GdkEventScrollP# a x y" \ direction $H  ( 0  8 delta_x @ delta_y HGdkEventKey6 _GdkEventKey(/1 23a4 " 5\ keyval6\ length72 string8 hardware_keycode9 group:}"is_modifier;\$GdkEventFocus _GdkEventFocus s`u vwa inx GdkEventCrossingx _GdkEventCrossingHXEZ [\a subwindow] ^ x_ y` a( b0 modec8 detaild< focuse>@" f\DGdkEventConfigure^ _GdkEventConfigure a x2 y2 width2 height2GdkEventProperty _GdkEventPropertyZ a atom " \GdkEventSelections _GdkEventSelection  a target (   requestorGdkEventOwnerChange _GdkEventOwnerChange  a owner reason  selection_timeGdkEventProximity _GdkEventProximity* a H GdkEventDND= _GdkEventDNDRS TUa contextV XY YGdkEventWindowState _GdkEventWindowStateD a changed_mask  new_window_state!GdkEventSetting[ _GdkEventSetting    a action B name )GdkEventGrabBroken _GdkEventGrabBroken9S: ;<a keyboard=> implicit>> grab_window?GdkEventSequencek_GdkEventSequenceGdkEvent_GdkEventPany expose visibilityT motion button touchY scroll@key#crossing`focus_changeconfigureE( Zowner_changeproximitydnd*window_statesettingDgrab_broken~"GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_EVENT_LAST) GdkEventTypeOZGDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCURED GdkVisibilityState^$lGDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTH GdkScrollDirectionrGDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWN GdkNotifyTypeGDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCH GdkCrossingModeGDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOWGDK_WINDOW_STATE_FOCUSEDGDK_WINDOW_STATE_TILED GdkWindowStateBGDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETED GdkSettingActionGDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSE GdkOwnerChange[b l  S *%GDK_X_CURSORGDK_ARROWGDK_BASED_ARROW_DOWNGDK_BASED_ARROW_UPGDK_BOATGDK_BOGOSITY GDK_BOTTOM_LEFT_CORNER GDK_BOTTOM_RIGHT_CORNERGDK_BOTTOM_SIDEGDK_BOTTOM_TEEGDK_BOX_SPIRALGDK_CENTER_PTRGDK_CIRCLEGDK_CLOCKGDK_COFFEE_MUGGDK_CROSSGDK_CROSS_REVERSE GDK_CROSSHAIR"GDK_DIAMOND_CROSS$GDK_DOT&GDK_DOTBOX(GDK_DOUBLE_ARROW*GDK_DRAFT_LARGE,GDK_DRAFT_SMALL.GDK_DRAPED_BOX0GDK_EXCHANGE2GDK_FLEUR4GDK_GOBBLER6GDK_GUMBY8GDK_HAND1:GDK_HAND2<GDK_HEART>GDK_ICONGDK_IRON_CROSSGDK_LEFT_PTRGDK_LEFT_SIDEGDK_LEFT_TEEGDK_LEFTBUTTONGDK_LL_ANGLEGDK_LR_ANGLEGDK_MANGDK_MIDDLEBUTTONGDK_MOUSEGDK_PENCILGDK_PIRATEGDK_PLUSGDK_QUESTION_ARROWGDK_RIGHT_PTRGDK_RIGHT_SIDEGDK_RIGHT_TEEGDK_RIGHTBUTTONGDK_RTL_LOGOGDK_SAILBOATGDK_SB_DOWN_ARROWGDK_SB_H_DOUBLE_ARROWGDK_SB_LEFT_ARROWGDK_SB_RIGHT_ARROWGDK_SB_UP_ARROWGDK_SB_V_DOUBLE_ARROWGDK_SHUTTLEGDK_SIZINGGDK_SPIDERGDK_SPRAYCANGDK_STARGDK_TARGETGDK_TCROSSGDK_TOP_LEFT_ARROWGDK_TOP_LEFT_CORNERGDK_TOP_RIGHT_CORNERGDK_TOP_SIDEGDK_TOP_TEEGDK_TREKGDK_UL_ANGLEGDK_UMBRELLAGDK_UR_ANGLEGDK_WATCHGDK_XTERMGDK_LAST_CURSORGDK_BLANK_CURSOR~GDK_CURSOR_IS_PIXMAPGdkCursorType & E *%GTK_WRAP_NONEGTK_WRAP_CHARGTK_WRAP_WORDGTK_WRAP_WORD_CHAR GtkWrapMode/Q%GtkAdjustment"% _GtkAdjustment6%8 86:X( GtkWidget. & _GtkWidget6&8 6& GtkWindow0G& _GtkWindow5s& bin7K'9'GtkWidgetPrivateB&_GtkWidgetPrivate%s&  #Y 6&GtkContainer.& _GtkContainer2' widget4%7?'GtkContainerPrivate/)'_GtkContainerPrivate'&GtkBin.Y' _GtkBin2'4&7'GtkBinPrivate/'_GtkBinPrivate'GtkWindowPrivate.'_GtkWindowPrivate'r(GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu'GtkAdjustmentPrivate-A(_GtkAdjustmentPrivate%(%GtkTextIter@w( _GtkTextIter8Fd) dummy1L dummy2M dummy3N2 dummy4O2 dummy5P2 dummy6Q2 dummy7R2 dummy8S2 dummy9T dummy10U$ dummy11V2( dummy12W2, dummy13Y20 dummy14Z4GtkTextTagJv) _GtkTextTagN)8 PR) GtkTextTagPrivateK)_GtkTextTagPrivate)d))d(GtkTextBufferB) _GtkTextBufferN,*8 PR+ GtkScrolledWindow-E* _GtkScrolledWindow1y*3K'5*GtkScrolledWindowPrivate.*_GtkScrolledWindowPrivatey*,*+GTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALGtkPolicyType*GtkTextMark;E+ _GtkTextMarkEw+8 G segmentJ GtkTextBufferPrivateK+_GtkTextBufferPrivatew+)d(2+:s,GTK_TEXT_WINDOW_PRIVATEGTK_TEXT_WINDOW_WIDGETGTK_TEXT_WINDOW_TEXTGTK_TEXT_WINDOW_LEFTGTK_TEXT_WINDOW_RIGHTGTK_TEXT_WINDOW_TOPGTK_TEXT_WINDOW_BOTTOMGtkTextWindowTypeD+GtkTextViewn, _GtkTextViewr,8 t&x,GtkTextViewPrivateo,_GtkTextViewPrivate,, key_press_eventl>Q-! l&!m&"od("1 p+#set_cursor_if_appropriate-! -$x2$y2%tags%tagp"d(%hovering>&%tag)%page2'motion_notify_event>p@^/( &(&)x2)y2*Q-@k/+-8+~-8+s-8,--8--%9.---p9/@.--9--90)@91tD"B2@9.1tw1ts2@:.1ts2y@C:/1tw1t22@s:(/1ts2@:=/1tv2@C:X/1tw1t20̣@s:1ts0֢@:1tw1t11t1t3insert_linkУ@041 +94+:5text2:6page27tag)^:2@;A01ts1t01tX"B1t S"B1tI"B1t11t02/@;;h01tv1tD"B1t0S@e;1ts1tw1tu1t  1tv1t03show_page%`@241 %+|:5page&2:8(d(/@17tagA);2@;411ts1t01t5$B1t  1t02@e;g11ts1tw1t<$B1t  1t02,@;11ts1tw0A@/1Ps1Rw1Q-$B1t12@;11ts1tc"B1t02@ <11ts1tw1t02l@;21ts1tw1td"B1t  2@/F21Ps1Rw1Q"B1t32@;s21ts1tw1t"B1t  2@/21Ps1Rw1Q"B1t20Υ@;1ts1tw1t"B1t  3follow_if_linkS@^34 S&/;4T+[;7tagsV|;7tagpV;/@'37tag[);7page\2;2)@9h31tD"B27@F<}31tu0>@01Rv2@:31tR0F@:1tw'event_after>P@=y5( &6ev)startd(~)endd(8d(91 + <7ex <7eyd<)x2~)y2~:(}48&P/@49&<2@F<41t2@p<41tv1ts2@<41tv2ʦ@<41ts2,@:D51t1t11t ~1t ~1t~1t~2O@9a51t1ts0]@21P1Rs;-@_;6<$-@5@5.:--E-<2§@F<51t2̧@<61tv2ܧ@=!61tv1ts0@21P1Rs?do_hypertext&@W^96do_widget&8 &dM/A@B97view&<7sw&<91 +<2M@A=61t2]@j=61t<2n@A=61t2~@j=71t2@=&71t02@=<71t@@=2Ψ@ >c71t 1t 2@@>71t$BAt1t dM1t01t02@>71t$B2-@>71t0@2@>2D@>71ts1t22t@@> 81ts1t$B1t@1t 01t01t02@@>[81ts1t$B1tP@1t 01t01t02ԩ@@>81ts1t$B1tp@1t 01t01t02ܩ@F<81ts2@!?81t01t02 @O?81tv1t11t12@?81tv2)@?91tv1ts25@0091Pw1R10=@?1tv@@?@@?@5@@)hovering_over_link>pM)hand_cursor?%lM)regular_cursor?%hMBg_object_get_data '9OCgtk_text_view_get_iter_at_location:-+22Dgtk_text_iter_get_tagsC:)Bgtk_text_view_get_window%s:-s,Egdk_window_set_cursor :?%Cg_slist_free2:Egtk_text_view_window_to_buffer_coords;-s,22  Bgtk_text_buffer_create_tago);;+FEg_object_set_data *e;OCgtk_text_buffer_insert_with_tags;++2)FCgtk_text_buffer_insert;++2Cgtk_text_buffer_set_text <+2Egtk_text_buffer_get_iter_at_offsetF<++2Dgtk_text_view_get_bufferϰ+p<-Bgtk_text_buffer_get_selection_bounds><+++Dgtk_text_iter_get_offsetw2<)Bgtk_text_buffer_get_insertA+=+Egtk_text_buffer_get_iter_at_markA=+++Bgtk_widget_get_displayE%j=&Dgdk_cursor_new_for_display?%=E%*%Dgtk_window_new&=(Bgtk_widget_get_screenK%=&Egtk_window_set_screen >&K%Egtk_window_set_default_size@>&22Bg_signal_connect_data N>'8Cgtk_window_set_title>&Cgtk_container_set_border_width>E'\Ggtk_text_view_newȞ&Egtk_text_view_set_wrap_modee!?-%Dgtk_scrolled_window_new&O?^(^(Cgtk_scrolled_window_set_policy?*++Cgtk_container_add?E'&Egtk_widget_show_all?&Bgtk_widget_get_visible`>?&Egtk_widget_destroy@&Hgtk_widget_show&(oLGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddeniconview.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demoP@~ccharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intguint32&gint64, guint64-long long unsigned intgssize:gsize;gchar.glong0gint1gboolean2gulong60guint7gfloat94floatgdouble:LdoublegpointerMGDestroyNotifyW|VGQuark$rGError* _GError , domain. code/ message0 GData$  _GDataGDir% _GDir CG_FILE_TEST_IS_REGULARG_FILE_TEST_IS_SYMLINKG_FILE_TEST_IS_DIRG_FILE_TEST_IS_EXECUTABLEG_FILE_TEST_EXISTSGFileTestI& long doubleGType ~GValue  _GValue j/ g_type m data zOGTypeClass B_GTypeClass hg_type GTypeInstance ~_GTypeInstance g_class / pOv_int qv_uint rv_long sv_ulong t v_int64 uv_uint64 vv_float w&v_double x=v_pointer yV_$GClosure Jo _GClosure  Smeta_marshal_nouse Sn_guards Sn_fnotifiers S n_inotifiers Sin_inotify Sfloating Sderivative_flag Sin_marshal Sis_invalid S marshal ) data V notifiers X GClosureNotifyData K _GClosureNotifyData  data V notify GCallback VGClosureNotify _ #V#_/S#VV  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags ^GObject  _GObject  g_type_instance h S qdata GInitiallyUnowned GdkScreen~* _GdkScreenGdkPixbufG _GdkPixbufVGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkOrientationYY GTK_SELECTION_NONEGTK_SELECTION_SINGLEGTK_SELECTION_BROWSEGTK_SELECTION_MULTIPLEGtkSelectionMode GTK_SHADOW_NONEGTK_SHADOW_INGTK_SHADOW_OUTGTK_SHADOW_ETCHED_INGTK_SHADOW_ETCHED_OUTGtkShadowType1 9 GTK_SORT_ASCENDINGGTK_SORT_DESCENDINGGtkSortType< GtkAdjustment" _GtkAdjustment6A  8f : GtkWidget.R _GtkWidget~  f  GtkWindow0 _GtkWindow5 bin7{ f 9 GtkWidgetPrivateB _GtkWidgetPrivateA  ~ GtkContainer. _GtkContainer2> widget4A f 7o GtkContainerPrivate/Y _GtkContainerPrivate>  GtkBin. _GtkBin2 \ 4 f 7 GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate. _GtkWindowPrivate r@ GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu GtkAdjustmentPrivate-q _GtkAdjustmentPrivateU  GtkBox/ _GtkBox3 \ 5 f 8 GtkBoxPrivate0 _GtkBoxPrivate GtkTreeIter' _GtkTreeIter]_ stamp_{ `V user_data2aV user_data3bV GtkTreePath(r _GtkTreePathGtkTreeModel* _GtkTreeModel _  GtkTreeSortable: _GtkTreeSortableGtkTreeIterCompareFuncS     V GtkListStore(: _GtkListStore,i .f 1 GtkListStorePrivate) _GtkListStorePrivatei6GtkIconView) _GtkIconViewO Q f TGtkIconViewPrivate+ _GtkIconViewPrivateGtkToolItem)5 _GtkToolItem-c /{ f 2GtkToolItemPrivate+} _GtkToolItemPrivatec"GtkToolButton' _GtkToolButton + -"f 0GtkToolButtonPrivate) _GtkToolButtonPrivateGtkScrolledWindow-; _GtkScrolledWindow1o\ 3{ f 5GtkScrolledWindowPrivate. _GtkScrolledWindowPrivateo" GTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALGtkPolicyTypeGtkToolbar@: _GtkToolbarDg\ F f HGtkToolbarPrivateA _GtkToolbarPrivateg( & COL_PATHCOL_DISPLAY_NAMECOL_PIXBUFCOL_IS_DIRECTORYNUM_COLSclose_windowP@L8`@w@@sort_func^@model^ a_ b`  { aV !is_dir_ac`!is_dir_bcd!name_adh!name_bdl"rete=#@"$ts$t$t3$t `$t1$th$t #@`$ts$t$t3$t d$t1$tl$t #F@u$ts#P@ $ts\@ fill_store/@L% /-="dir1Y="name2w=!iter3 P&ҫ@,"pathA="display_nameA="is_dirB=#@( O$ts$t0#@K j$tu$t4#.@r $ts$t $t0$t 0$t0#@@ $tw$tP#@ $tw$tP$t0$t u$t1$ts$t3$tL$t 2$t( #@ $tu'@ $ts#@ A$tw#@![$t0$t0#ȫ@J!p$tv#@J!$tv'Ĭ@p!$tvitem_activatedЬ@ tree_path  { V( >!pathX!iter `!is_dir\#@!I$ts$tv$t#%@$ts$tv$t0$t X$t3$t\$t :@ #J@$Ps#_@!$t1q@ home_clickedԀ@HDitemԘ { V( צ<>@ @!@!#@:$Ps)ȭ@!up_clickedЭ@aitem { V( ¦O>"dir_nameØn>@"@ #@$Pv)1@!*O !+__FUNCTION__!O ,-k (.-k +!$ /create_storeK- 0do_iconview @@do_widget &@d"sw >(  >1 S"vbox >"tool_bar >"home_button?2"@@3@4%B5X)61?5p<6Q?#t@="Z$t%B$t0#@="x$t%B$t0#ʲ@q"$t0$tv%B$t+$t %B$t%B'@q"$t0$tv%B$t($t %B$tj%B7& @g*8 @g6?e?@"#6@"?$t4$t@$t@$tD#X@"j$ts$t@$t0$t 0'p@0#$ts$t $t0#@l#$t0#@#$t $t #Ǯ@#$tخ@##@$$t%B#"@8$'$t%B$tP@$t 0$t0$t0#C@y$A$t1$t0#V@$V$ts[@$#@$$ts$tv$t0$t 0$t0#@ %$t0$t0#@4%$t;%B@U%#̯@%$t1#@%$t?%B#@%$t1# @!$t0#$@&8$tv$t #8@ %R$t0$t0#F@4%j$tE%B#R@U%$tw#b@%$tw$t1#r@%$tw$tK%B#@%$tw$t1#@&$tv$tw$t #@@&$t0$t0#@n&,$tu$t3#԰@&M$tu$t1$t1#@${$ts$tu$t1$t 1$t0#@!$t%B#w@$Ps#@&$ts#@'$tv$t3#@$ts#ʱ@8$!$tS%B$tЭ@$t s$t0$t0#@8$]$tw$tS%B$t@$t s$t0$t0#@;'x$tv$t1#@k'$tv$t2#B@8$$tv$t[%B$tЬ@$t s$t0$t0#N@$$tu$tv'V@'$tvX@'i@@'!window |M!file_pixbufxM!folder_pixbuftM9 M:up_buttonM;gtk_widget_destroy ;g_object_unref V;gtk_tree_model_getl  <=g_utf8_collate!M >g_free E( V?g_build_filenameK <?g_file_test_utf8r ?g_filename_to_utf8_utf8" >gtk_list_store_append  >gtk_list_store_setU  <>gtk_list_store_clear!?g_dir_open_utf88J!?g_dir_read_name_utf8<p!>g_dir_close0!=gtk_tree_model_get_iter7!   ;gtk_widget_set_sensitiveU! @g_get_home_dir%Z?g_strdup#ؘ"?g_path_get_dirname="=gdk_pixbuf_new_from_resourceq";g_assertion_message_expr$$"@gdk_pixbuf_get_type?gtk_list_store_newC"<>gtk_tree_sortable_set_default_sort_func0#  Vf>gtk_tree_sortable_set_sort_column_idl#  ?gtk_window_new #@ ;gtk_window_set_default_size# =gtk_widget_get_screenS# ;gtk_window_set_screen$ S>gtk_window_set_title8$ =g_signal_connect_data  y$VV?gtk_box_newP $>gtk_container_add$u  @gtk_toolbar_newc >gtk_box_pack_startT % ?gtk_tool_button_newQ4% ?libintl_gettext&U%>gtk_tool_button_set_labelW%>gtk_tool_button_set_use_underline\%>gtk_tool_button_set_icon_namef%>gtk_tool_item_set_is_important|&>gtk_toolbar_insertf@&?gtk_scrolled_window_new n&  >gtk_scrolled_window_set_shadow_type& >gtk_scrolled_window_set_policy&?gtk_icon_view_new_with_modelw ' >gtk_icon_view_set_selection_mode;' >gtk_icon_view_set_text_columnk'>gtk_icon_view_set_pixbuf_column';gtk_widget_grab_focus#' =gtk_widget_get_visible`' Agtk_widget_show_all OGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddeniconview_edit.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo@Ghcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intguint32&gint64,guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong6/guint7gfloat9%floatgdouble:=doublegpointerMGDestroyNotifyWms~G GData$ _GData long double GType~ GValue _GValuej  g_typem dataz* GTypeClass_GTypeClassCg_type GTypeInstanceY_GTypeInstanceg_class p*v_intqv_uintr v_longsv_ulongtv_int64uv_uint64vv_floatwv_doublex.v_pointeryG:#GClosureJJ _GClosuren .meta_marshal_nouse.n_guards.n_fnotifiers. n_inotifiers.in_inotify.floating.derivative_flag.in_marshal.is_invalid. marshal dataG notifiers3 GClosureNotifyDataK _GClosureNotifyData dataG notifyGCallbackVGClosureNotify_G: . GG nhG_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags9GObject  _GObject  g_type_instance C . qdata GInitiallyUnowned GdkRGBA u _GdkRGBA %? red '. green (. blue ). alpha *.GdkScreen ~P _GdkScreen zGDK_COLORSPACE_RGBGdkColorspace \GdkPixbuf  _GdkPixbuf? VGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientation Y wGTK_SELECTION_NONEGTK_SELECTION_SINGLEGTK_SELECTION_BROWSEGTK_SELECTION_MULTIPLE GtkSelectionMode GtkWidget. _GtkWidget  ; GtkWindow0 _GtkWindow5 bin7  9] GtkWidgetPrivateB" _GtkWidgetPrivate GtkContainer.[ _GtkContainer2 widget4 7 GtkContainerPrivate/ _GtkContainerPrivate G GtkBin. _GtkBin2 container4G  7, GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate.J _GtkWindowPrivate2 r GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeuc GtkTreeIter' _GtkTreeIter] stamp_ user_data`G user_data2aG user_data3bG GtkTreePath(, _GtkTreePathGtkTreeModel*N _GtkTreeModel:   GtkCellRendererP _GtkCellRendererU  W Z GtkCellRendererPrivateQ _GtkCellRendererPrivate o GtkListStore( _GtkListStore,>  .} 1o GtkListStorePrivate)Y _GtkListStorePrivate> GtkCellLayout% _GtkCellLayoutGtkCellLayoutDataFunc4     ] i Gu GtkCellRendererText' _GtkCellRendererText+3  -o  0r GtkCellRendererTextPrivate(U _GtkCellRendererTextPrivate3  GtkIconView) _GtkIconViewO  QG  T GtkIconViewPrivate+ _GtkIconViewPrivate   %COL_TEXTNUM_COLScreate_store&Lstore(editedQ@iicellQx path_stringRtextSdataTG modelV] ? iterW `pathXc ?!@"t !$@9"t!6@h&"tv"tw"ts!Z@W"tv"tw"t0"t "t #b@"tsset_cell_color0p@Bcell_layout0 cell1 tree_model2] iter3i  data4G text6L color7Ppixel8q?pixbuf9~ ?!@U"t"t "t0"t L"t !@ j"tP$J@.!v@B"t0"t1"t8"t H"tH!@v"tv"ts!@"t"t%B"tv"t 0#@"tv%fill_store<&storeiter text<i~L#'do_iconview_edite5 @do_widgete5 (@5icon_viewi5 ? storejVrendererk @)/@w`* N@+,@,&P-2!յ@"tv!@2"tv"tw#@"tv"tw"t0"t u"t )%@v+.>N@#@!"t1"t@!&@F"t0!<@f"t$M@!b@"t%B!@"t%B/t"t M"t0"t0!@,"tv!"@A"tv!2@M\"ts"t1!B@w"ts"t0!R@"ts"t2!b@"ts"t1$g@!}@6"ts"tv"t1!@h "ts"tv"tp@"t 0"t0$@!@65"ts"tv"t1!ܶ@`"tv"t%B"t1"t 0!@"tv"t&B"t@"t s"t0"t0!,@"ts"tv"t&B"t 0"t0#=@"ts$ش@$$@M$@n window 5 M0gtk_icon_view_get_model}] 9 0gtk_tree_path_new_from_stringc h~1gtk_tree_model_get_iter7] i c 2gtk_list_store_setUi 32gtk_tree_path_freec 4gtk_tree_model_getl ] i 30gdk_rgba_parse >.~2g_freeEBG0gdk_pixbuf_new ~ vz4gdk_pixbuf_fill 4~ q4g_object_set G~34g_object_unref G2gtk_list_store_clear2gtk_list_store_append!i 0gtk_list_store_newCF30gtk_window_new5 f 1gtk_widget_get_screen5 4gtk_window_set_screenA 2gtk_window_set_titleA ~1g_signal_connect_dataG~Gh0gtk_icon_view_new_with_modelw5 M] 2gtk_icon_view_set_selection_modeЀ w2gtk_icon_view_set_item_orientation 2gtk_icon_view_set_columns 4gtk_icon_view_set_reorderable  5gtk_cell_renderer_pixbuf_new@ 2gtk_cell_layout_pack_startrh  2gtk_cell_layout_set_cell_data_func   GW5gtk_cell_renderer_text_newE 2gtk_cell_layout_set_attributes~  32gtk_container_add$ 5 1gtk_widget_get_visible`M5 4gtk_widget_destroyn5 6gtk_widget_show_all5 ?)RGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenimages.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demoP@ 0lcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intguint32&gint64, guint64-long long unsigned intgssize:gsize;gchar.glong0gint1gboolean2guchar4=gulong6(guint7gfloat9:floatgdouble:RdoublegpointerMrGQuark$jGError*_GError ,domain.}code/message0w GData$ _GDataGList%_GList '5 )\next*5prev+5A P \GSourceFunc;i long doubleGType ~GValue _GValue jg_type m zGTypeClass _GTypeClass g_type GTypeInstance _GTypeInstance Fg_class FX pv_int qv_uint rv_long sv_ulong tv_int64 uyv_uint64 vv_float w,v_double xCv_pointer y\]GClosure J _GClosure 0 meta_marshal_nouse n_guards n_fnotifiers  n_inotifiers in_inotify floating derivative_flag in_marshal is_invalid marshal  \notifiers  GClosureNotifyData KJ_GClosureNotifyData  \notify GCallback VGClosureNotify _ \   L  R \ \0 )G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject M_GObject g_type_instance   qdata oGInitiallyUnowned M>G_RESOURCE_LOOKUP_FLAGS_NONEGResourceLookupFlagsGCancellable& _GCancellable/9 1> 4 GIconfF _GIconGInputStreamjb_GInputStream/ 1> 4 9NGInputStreamPrivate- _GInputStreamPrivateGCancellablePrivate- _GCancellablePrivate" GdkScreen~8 _GdkScreenGdkPixbufU _GdkPixbufGdkPixbufLoader4x _GdkPixbufLoader5 7> :\ a ' J GTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINEGtkAlignP  GTK_ICON_SIZE_INVALIDGTK_ICON_SIZE_MENUGTK_ICON_SIZE_SMALL_TOOLBARGTK_ICON_SIZE_LARGE_TOOLBARGTK_ICON_SIZE_BUTTONGTK_ICON_SIZE_DNDGTK_ICON_SIZE_DIALOGGtkIconSize* c GTK_MESSAGE_INFOGTK_MESSAGE_WARNINGGTK_MESSAGE_QUESTIONGTK_MESSAGE_ERRORGTK_MESSAGE_OTHERGtkMessageType V GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkOrientationYz ? GTK_SHADOW_NONEGTK_SHADOW_INGTK_SHADOW_OUTGTK_SHADOW_ETCHED_INGTK_SHADOW_ETCHED_OUTGtkShadowType GtkWidget.f _GtkWidget   GtkWindow0 _GtkWindow5 bin7 9GtkWidgetPrivateB _GtkWidgetPrivateU   GtkContainer. _GtkContainer2R widget4U 7 GtkContainerPrivate/m _GtkContainerPrivateR  GtkBin. _GtkBin2 4 7 GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate.  _GtkWindowPrivate rTGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu"2GTK_DIALOG_MODALGTK_DIALOG_DESTROY_WITH_PARENTGTK_DIALOG_USE_HEADER_BARGtkDialogFlags6iGtkMisc._GtkMisc2widget4U 7;GtkMiscPrivate/* _GtkMiscPrivateGtkLabel0Q_GtkLabel6}misc8 ;GtkLabelPrivate1 _GtkLabelPrivate}AGtkBox/_GtkBox3 5 8GtkBoxPrivate0 _GtkBoxPrivateGtkImage/$_GtkImage[Pmisc] `yGtkImagePrivate0g _GtkImagePrivatePGtkFrame ._GtkFrame 2bin 4 7GtkFramePrivate / _GtkFramePrivateGtkButton!._GtkButton!2,bin!5 !7WGtkButtonPrivate!/D _GtkButtonPrivate,GtkToggleButton"-t_GtkToggleButton "1button"4 "6GtkToggleButtonPrivate". _GtkToggleButtonPrivate]D #VuGTK_BUTTONS_NONEGTK_BUTTONS_OKGTK_BUTTONS_CLOSEGTK_BUTTONS_CANCELGTK_BUTTONS_YES_NOGTK_BUTTONS_OK_CANCELGtkButtonsType#]toggle_sensitivity_callback0P@X`togglebutton0 user_data1\ 3 list45l@tmp55@ f@!8!t |@!M!tv"@"#@>"cleanup_callback@tobject$ \ շ@W"!t0"@""@""@"%progressive_timeoutG0@{0& G\' I ()bytes_readT@*bufU0}*errorVi}+@s' \ S(, w A @"!t2!t3!t 2"@# *@#!ts!tG&B-t!t 0!t0!t0"7@".I@\#!ts+@,  'A @"J!t2!t3!t 2!tP&B"@# @#!ts!tG&B-t!t 0!t0!t0 '@\#!ts"4@"(B,  EA"K@" @"!t2!t3!t 2!tP&B"@# @#0!ts!tG&B-t!t 0!t0!t0.@\#!ts v@z#l!tw!t !t 0!tv @#!tw!ts!t v @#!t0!tv"N@" q@W"!tv" @"/*errori}(8z,  cA T@"*!t2!t3!t 2!t&B"b@# @#h!ts!tG&B-t!t 0!t0!t0.@\#!ts @$!ti&B!t0!t} @W"!t0"Ǻ@""̺@N$ @#!t&B!t@!t !t0!t0.<@#!t&B!t@!t !t0!t0@0progressive_updated_callback-@571loader- 1x.1y/1width0 1height1& 2\, 4 A)pixbuf5A @k$!tv ˼@$!ts ׼@$-!tv!ts#@"0progressive_prepared_callback@91loader & \)pixbufA,  A @$!t @ %!ts!tժz#)@$2start_progressive_loading3  4do_imagesI 0@U!do_widgetI frameK BvboxL sB5 M BlabelN BbuttonO 0CgiconPNC6@- 7 W @-%!t!t0@!tw.@`%!tu'B"G@%"X@%"u@% @%:!t0 @&P!t"@?& Ľ@h&q!t&B @#!t&B-t!t M!t0!t0 .@#!t&B!t@!t 0!t0!t0 C@&!t8 W@&!t1!t8 i@& !ts!t8 z@&5!ts @'I!t0 @%'h!tv!t&B @L'!ts!tv!t0!t 0!t0 Ⱦ@'!t0 ھ@'!tv!t1 @'!tv!t3 @'!tv!t3 @L')!ts!tv!t0!t 0!t0 2@(G!t&B!t6 >@&\!tv J@'p!t0 \@%'!tv!t&B @L'!ts!tv!t0!t 0!t0 @'!t0 @'!tv!t1 @'!tv!t3 @'"!tv!t3 @L'P!ts!tv!t0!t 0!t0 @P(h!t&B @&}!tv @'!t0 @%'!tv!t'B <@L'!ts!tv!t0!t 0!t0 H@'!t0 Z@' !tv!t1 j@'(!tv!t3 z@'C!tv!t3 @L'q!ts!tv!t0!t 0!t0 @}(!t0'B @(!t6 @&!tv @'!t0 @%'!tv!tT'B @L' !ts!tv!t0!t 0!t0 @'' !t0 &@'B !tv!t1 6@'] !tv!t3 F@'x !tv!t3 j@L' !ts!tv!t0!t 0!t0 v@( !t0 @& !tv!tw @) !t'B @L'!!ts!tv!t0!t 0!t0.@#!tv!t'B!tP@!t s!t0!t0*window M*pixbuf_loader M*load_timeoutM*image_streamM8gtk_container_get_children5! 8gtk_toggle_button_get_active"Y" 9gtk_widget_set_sensitiveU>" :g_list_free3W" 58gdk_pixbuf_loader_closed" c9g_object_unref " \;g_source_remove" 8gtk_message_dialog_new#c #   c u l<:g_error_freeD# i;g_signal_connect_data \# \ l  \  )9gtk_widget_showz# 8g_input_stream_readt#     c8gdk_pixbuf_loader_write[#   c8g_input_stream_close$   c8g_resources_open_stream$fN$   c=gdk_pixbuf_loader_newS 8gtk_image_get_pixbuf$ ;g_object_ref \$ \:gtk_image_set_from_pixbuf$  8gdk_pixbuf_loader_get_pixbufb % 9gdk_pixbuf_fill4-%  j8gdk_threads_add_timeout%D`%  P \9g_source_set_name_by_id%  ;gtk_widget_get_visible`% 9gtk_widget_destroy% 9gtk_widget_show_all% 8gtk_window_new & T;gtk_widget_get_screen ?& 9gtk_window_set_screenh&  :gtk_window_set_title&  l:gtk_container_set_border_width& 8gtk_box_newP & :gtk_container_add' 8gtk_label_new] %' l:gtk_label_set_markuppL'  l:gtk_box_pack_startT'    8gtk_frame_new U ' l:gtk_frame_set_shadow_type k'  ? 9gtk_widget_set_halign;'  9gtk_widget_set_valignB(  8gtk_image_new_from_icon_name P( l 8gtk_image_new_from_resourcev }( l8g_themed_icon_new_with_default_fallbacks&4( 8gtk_image_new_from_gicon (  8gtk_image_new_from_pixbufx ) >gtk_toggle_button_new_with_mnemonic"O lVGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddeninfobar.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo @eqcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64, guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong6/guint7gfloat9floatgdouble:.doublegpointerMNYGData$g_GDataZ long double GType~ GValue _GValuej g_typem dataz GTypeClass _GTypeClass g_type GTypeInstance _GTypeInstanceG g_classGYpv_intqv_uintrv_longsv_ulongtv_int64uqv_uint64vv_floatwv_doublexv_pointery8^#GClosureJ _GClosure26 meta_marshal_nousen_guardsn_fnotifiers n_inotifiersin_inotifyfloatingderivative_flagin_marshalis_invalid marshal data8 notifiers GClosureNotifyDataKL _GClosureNotifyData data8 notifyGCallbackVSGClosureNotify_8MS882,G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags _GObject  g_type_instance 6  qdata oGInitiallyUnowned AGBinding /_GBinding `)G_BINDING_DEFAULTG_BINDING_BIDIRECTIONALG_BINDING_SYNC_CREATEG_BINDING_INVERT_BOOLEANGBindingFlags fDGdkScreen ~Z_GdkScreenI GTK_MESSAGE_INFOGTK_MESSAGE_WARNINGGTK_MESSAGE_QUESTIONGTK_MESSAGE_ERRORGTK_MESSAGE_OTHER GtkMessageType l V7GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientation YGtkWidget ._ _GtkWidget 1  GtkWindow 0 _GtkWindow5 bin7 1 9 GtkWidgetPrivateB_GtkWidgetPrivateNGtkContainer. _GtkContainer2K widget4N1 7| GtkContainerPrivate/f _GtkContainerPrivateK  GtkBin. _GtkBin2 ' 4 1 7 GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate. _GtkWindowPrivate rM GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu 2 GTK_DIALOG_MODALGTK_DIALOG_DESTROY_WITH_PARENTGTK_DIALOG_USE_HEADER_BARGtkDialogFlags6b L GTK_RESPONSE_NONEGTK_RESPONSE_REJECT~GTK_RESPONSE_ACCEPT}GTK_RESPONSE_DELETE_EVENT|GTK_RESPONSE_OK{GTK_RESPONSE_CANCELzGTK_RESPONSE_CLOSEyGTK_RESPONSE_YESxGTK_RESPONSE_NOwGTK_RESPONSE_APPLYvGTK_RESPONSE_HELPuGtkDialogc _GtkDialog m windowo1 r, GtkDialogPrivated _GtkDialogPrivate GtkBox/@ _GtkBox3i ' 5 1 8 GtkBoxPrivate0~ _GtkBoxPrivatei GtkInfoBarPrivate4 _GtkInfoBarPrivateGtkInfoBar6 _GtkInfoBar9 parent;2 1 >   GtkMessageDialog-' _GtkMessageDialog$1Z  3 1 6 GtkMessageDialogPrivate.y _GtkMessageDialogPrivateZ VGTK_BUTTONS_NONEGTK_BUTTONS_OKGTK_BUTTONS_CLOSEGTK_BUTTONS_CANCELGTK_BUTTONS_YES_NOGTK_BUTTONS_OK_CANCELGtkButtonsType] 2  on_bar_response @Ginfo_bar response_id user_data8dialogaC_@t3t0t 1t'Bu@tst'Btv@T4tst'B tt st0t2!@!@"do_infobar)@do_widget)frame+Cbar,Cvbox-Dvbox2.=Dlabel/[Dactions0Dbutton1D#@#@#@&@'t0t04@A;t0E@aQt#V@k@rt'B@Tt'B tt Mt0t0@t8@t1t0@ tv#@.@Ftvtwt0t 0t0@z9twt0#@Qt(B-@ftwQ@Ftut0t 0t0]@t7(B@*tutG(Btwt ?(Bt1@ tstu#@.@F.tvtwt0t 0t0@zItwt1@atP(B@vtw@Ftut0t 0t0@t(B6@*tutG(Btwt ?(Bt1B@ tstuN@ft(Bf@:t t0x@Utwt1@Ttwt'Bt @t0t0@Ftvtwt0t 0t0@ztwt2@t(B@tw@F'tut0t 0t0#@?t(BI@*ututG(Btwt ?(Bt1U@ tstu#Z@.@Ftvtwt0t 0t0@ztwt3@t(B@tw@F7tut0t 0t0@Ot)B@*tutG(Btwt ?(Bt1@ tstu# @.3@Ftvtwt0t 0t0C@ztwt4O@ t)BY@ tw}@FGtut0t 0t0@_tT)B@*tutG(Btwt ?(Bt1@ tstu@tZ)B@Ftvtwt0t 0t8@t1t8@,tvt8@ Htwtv+@`td)BO@Ftvt0t 0t0W@ts${@Ftvtst0t 0t0%window M>k_message_dialog_newc H'(gtk_message_dialog_format_secondary_text~T8H')g_signal_connect_data8H8,*gtk_widget_show_all*gtk_widget_hide)gtk_widget_get_visible`*gtk_widget_destroy>k_box_newPA7>k_window_newaM )gtk_widget_get_screenf*gtk_window_set_screenf(gtk_window_set_titleH(gtk_container_set_border_width  (gtk_container_add. +gtk_info_bar_newV(gtk_box_pack_startTz2(gtk_info_bar_set_message_typez >k_label_new]H>k_info_bar_get_content_area_ >k_toggle_button_new_with_labelM*H&g_object_bind_property {f8H8H)&libintl_gettext>>k_info_bar_new_with_buttonsYH'(gtk_info_bar_set_show_close_button ,gtk_frame_newUHxXGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenlinks.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo@tcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64, guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong6'guint7gfloat9floatgdouble:&doublegpointerMFQGData$__GDataR long double GType~ GValue _GValuej g_typem| dataz GTypeClass _GTypeClass g_type| GTypeInstance _GTypeInstance? g_class?Qpv_intqv_uintrv_longsv_ulongtv_int64uiv_uint64vwv_floatwv_doublexv_pointery0VGClosureJ _GClosure*E meta_marshal_nousen_guardsn_fnotifiers n_inotifiersin_inotifyfloatingderivative_flagin_marshalis_invalid marshal data0 notifiers GClosureNotifyDataKD _GClosureNotifyData} data0 notifyGCallbackVKGClosureNotify_0EK00*$G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags _GObject } g_type_instance E  qdata gGInitiallyUnowned 9GdkScreen ~_GdkScreen 6GTK_MESSAGE_INFOGTK_MESSAGE_WARNINGGTK_MESSAGE_QUESTIONGTK_MESSAGE_ERRORGTK_MESSAGE_OTHER GtkMessageType GtkWidget .^ _GtkWidget  parent_instance }@  GtkWindow 0 _GtkWindow5 bin7@ 9& GtkWidgetPrivate B_GtkWidgetPrivateMGtkContainer.$ _GtkContainer2V widget4M@ 7GtkContainerPrivate/q_GtkContainerPrivateVGtkBin. _GtkBin2 container4@ 7GtkBinPrivate/_GtkBinPrivateGtkWindowPrivate. _GtkWindowPrivater^ GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu, 2 GTK_DIALOG_MODALGTK_DIALOG_DESTROY_WITH_PARENTGTK_DIALOG_USE_HEADER_BARGtkDialogFlags6s GtkMisc. _GtkMisc2 widget4M@ 7E GtkMiscPrivate/4 _GtkMiscPrivate GtkLabel0[ _GtkLabel6 misc8 @ ; GtkLabelPrivate1 _GtkLabelPrivate K V? GTK_BUTTONS_NONEGTK_BUTTONS_OKGTK_BUTTONS_CLOSEGTK_BUTTONS_CANCELGTK_BUTTONS_YES_NOGTK_BUTTONS_OK_CANCELGtkButtonsType] activate_link labeluri@data0dialogparentresponse_cb @ dialog  response_id  data 0!@"#U @L $o $| $ %@/ &| pE& E&o E'@( E( E)@ "t)@/ "t2"t0"t 1"t)B)@x "ts"t1)@ "ts*@@"ts"t*B"t@"t 0"t0"t0*@"t"t)B+do_links2P@N do_widget2,label4E-e@"-v@-@K)@i "t0)@ "t-@)@ "t&*B)@ "t<)-@;"t,*B.t"t M"t0"t0)9@2S"t4*B)K@Qn"ts"t1){@"ts"t+B"t@"t 0"t0"t0)@|"ts*@K"ts/window/M0gtk_widget_destroy 1gtk_widget_get_toplevel /2gtk_message_dialog_new_with_markupkx  6? @30gtk_window_set_modalL 0gtk_window_presentp 1g_signal_connect_data0@}0$2g_strcmp0q"1gtk_widget_get_visible `K0gtk_widget_show i2gtk_window_new^ 1gtk_widget_get_screen 0gtk_window_set_screen 4gtk_window_set_title @4gtk_container_set_border_width22gtk_label_new]Q@4gtk_label_set_use_markups| 5gtk_container_addp3[GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenlistbox.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo@V wcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned chargint8bsigned charguint8Dgint16 short intguint16!guint32&gint64, guint64-long long unsigned intgssize:gsize;gchar.gshort/glong0gint1gboolean24gulong6/guint7gfloat9yfloatgdouble:doublegpointerM gconstpointerNGDestroyNotifyW  GBytes$ _GBytesGPtrArray'7 _GPtrArray5e pdata7k len8^ GQuark$GError* _GError , domain.q code/4 0eGData$ _GDataGDateTimec _GDateTimeGSList %  _GSList '7 x ) next *74Oe long double&GType ~GValue  _GValue j g_type m x zGTypeClass _GTypeClass g_type GTypeInstance _GTypeInstance Dg_class DGClassInitFunc iGInstanceInitFunc { G_TYPE_FLAG_ABSTRACTG_TYPE_FLAG_VALUE_ABSTRACT GTypeFlags   pv_int q4v_uint r^v_long s'v_ulong tPv_int64 uv_uint64 vv_float wkv_double xv_pointer y# G_PARAM_READABLEG_PARAM_WRITABLEG_PARAM_READWRITEG_PARAM_CONSTRUCTG_PARAM_CONSTRUCT_ONLYG_PARAM_LAX_VALIDATIONG_PARAM_STATIC_NAME G_PARAM_PRIVATE G_PARAM_STATIC_NICKG_PARAM_STATIC_BLURBG_PARAM_EXPLICIT_NOTIFYG_PARAM_DEPRECATEDxGParamFlags GParamSpec  _GParamSpec(   name  flags հ value_type ւ owner_type ׂ _nick e _blurb e qdata U ^ param_id ^$GClosure J _GClosure  w meta_marshal_nouse w n_guards w n_fnotifiers w  n_inotifiers w in_inotify w floating w derivative_flag w in_marshal w is_invalid w  marshal M  x ƛ notifiers | GClosureNotifyData K _GClosureNotifyData x  notify  GCallback VGClosureNotify _1 7 G G S w G ^^  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject _GObject   w  qdataUGObjectClass! _GObjectClassD<: g_type_class>construct_propertiesA7constructorEC set_propertyI get_propertyM disposeQ finalizeR dispatch_properties_changedTd notifyXz constructed\ $flags_(pdummyb ,GInitiallyUnowned GInitiallyUnownedClass! GObjectConstructParam _GObjectConstructParamm pspecovaluep   ^    ^ $   = ^= q $ ^  ^^ I z  j  # G_RESOURCE_LOOKUP_FLAGS_NONEGResourceLookupFlags  @cairo_t| _cairo_cairo_rectangle_intXxywidthheight cairo_rectangle_int_t cairo_region_t  _cairo_regionGdkRectangleNXGdkAtomV _GdkAtomGdkDevicex _GdkDeviceGdkDragContexty _GdkDragContextGdkScreen~* _GdkScreenGdkWindowG _GdkWindowGdkEventAny{f_GdkEventAny C X $  UGdkEventExpose|_GdkEventExpose$(C X $ Uarea  region!$count"4 GdkEventVisibility}B_GdkEventVisibility4C 6X 7$ 8Um 9Q GdkEventMotion~_GdkEventMotion@TaC VX W$ XU Y xZy[axes\$ m ]^$is_hint^(_ _$, `0! `8GdkEventButtonw_GdkEventButton@*C X $ U  xyaxes$ m ^$Q ^(_ $, 0! 8GdkEventTouch?_GdkEventTouchHC X $ U  xyaxes$ m ^$sequence$(emulating_pointer@,_ $0 8! @GdkEventScroll'_GdkEventScrollPC X $ U  xym ^ direction  $_  $(  0!  8delta_x @delta_y HGdkEventKey_GdkEventKey(/C 1X 2$ 3U 4 m 5^keyval6^length74string8ehardware_keycode9 group:q"is_modifier;^$GdkEventFocus_GdkEventFocus s1C uX v$ wUinx GdkEventCrossingI_GdkEventCrossingHXC ZX [$ \Usubwindow]$  ^x_y`  a(! b0modec"8detaild!<focuse@@m f^DGdkEventConfigure/_GdkEventConfigureC X $ Ux4 y4width4height4GdkEventProperty_GdkEventProperty+C X $ Uatom  m ^GdkEventSelectionD_GdkEventSelection C X $ U  targetH  requestor$GdkEventOwnerChange_GdkEventOwnerChange C X $ Uowner$ reason$  selection_timeGdkEventProximity_GdkEventProximityC X $ U  _ $GdkEventDND_GdkEventDNDRC SX T$ UUcontextV$  X Y! YGdkEventWindowState_GdkEventWindowStateC X $ Uchanged_mask # new_window_state!#GdkEventSetting,_GdkEventSettingC  X  $  Uaction $ name GdkEventGrabBroken_GdkEventGrabBroken9$C :X ;$ <Ukeyboard=@ implicit>@grab_window?$GdkEventSequence< _GdkEventSequenceGdkEvent__GdkEventP C !anyS!expose!visibility(!motion Q a!touch*!scroll!key!crossing1!focus_change!configure H  +!owner_change!proximity!dnd!window_state!setting!grab_brokenO"GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_EVENT_LAST)GdkEventTypeOZQ GDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCUREDGdkVisibilityState^l GDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTHGdkScrollDirectionrl !GDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWNGdkNotifyType "GDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCHGdkCrossingMode!#GDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOWGDK_WINDOW_STATE_FOCUSEDGDK_WINDOW_STATE_TILEDGdkWindowState"$GDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETEDGdkSettingAction#$GDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSEGdkOwnerChange)$6|$GdkPixbuf$ _GdkPixbufS%GTK_DIR_TAB_FORWARDGTK_DIR_TAB_BACKWARDGTK_DIR_UPGTK_DIR_DOWNGTK_DIR_LEFTGTK_DIR_RIGHTGtkDirectionType$&GTK_ICON_SIZE_INVALIDGTK_ICON_SIZE_MENUGTK_ICON_SIZE_SMALL_TOOLBARGTK_ICON_SIZE_LARGE_TOOLBARGTK_ICON_SIZE_BUTTONGTK_ICON_SIZE_DNDGTK_ICON_SIZE_DIALOGGtkIconSizek%u&GTK_TEXT_DIR_NONEGTK_TEXT_DIR_LTRGTK_TEXT_DIR_RTLGtkTextDirection2&V&GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkOrientationY&'GTK_STATE_NORMALGTK_STATE_ACTIVEGTK_STATE_PRELIGHTGTK_STATE_SELECTEDGTK_STATE_INSENSITIVEGTK_STATE_INCONSISTENTGTK_STATE_FOCUSEDGtkStateType&S(GTK_DRAG_RESULT_SUCCESSGTK_DRAG_RESULT_NO_TARGETGTK_DRAG_RESULT_USER_CANCELLEDGTK_DRAG_RESULT_TIMEOUT_EXPIREDGTK_DRAG_RESULT_GRAB_BROKENGTK_DRAG_RESULT_ERRORGtkDragResult'9(GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTHGTK_SIZE_REQUEST_WIDTH_FOR_HEIGHTGTK_SIZE_REQUEST_CONSTANT_SIZEGtkSizeRequestMode=i(bS*GTK_STATE_FLAG_NORMALGTK_STATE_FLAG_ACTIVEGTK_STATE_FLAG_PRELIGHTGTK_STATE_FLAG_SELECTEDGTK_STATE_FLAG_INSENSITIVEGTK_STATE_FLAG_INCONSISTENTGTK_STATE_FLAG_FOCUSED GTK_STATE_FLAG_BACKDROPGTK_STATE_FLAG_DIR_LTRGTK_STATE_FLAG_DIR_RTLGTK_STATE_FLAG_LINKGTK_STATE_FLAG_VISITEDGTK_STATE_FLAG_CHECKEDGtkStateFlagsp(GtkAdjustment"~* _GtkAdjustment6* } 8: f :IM GtkSelectionData)* _GtkSelectionDataGtkStyle+* _GtkStyleGtkTooltip-+ _GtkTooltipGtkWidget.$+ _GtkWidgetP+ } : f A GtkWidgetPath/e+ _GtkWidgetPathGtkWindow0+ _GtkWindow5+ bin7J f 9K@6ATK_ROLE_INVALIDATK_ROLE_ACCEL_LABELATK_ROLE_ALERTATK_ROLE_ANIMATIONATK_ROLE_ARROWATK_ROLE_CALENDARATK_ROLE_CANVASATK_ROLE_CHECK_BOXATK_ROLE_CHECK_MENU_ITEMATK_ROLE_COLOR_CHOOSER ATK_ROLE_COLUMN_HEADER ATK_ROLE_COMBO_BOX ATK_ROLE_DATE_EDITOR ATK_ROLE_DESKTOP_ICON ATK_ROLE_DESKTOP_FRAMEATK_ROLE_DIALATK_ROLE_DIALOGATK_ROLE_DIRECTORY_PANEATK_ROLE_DRAWING_AREAATK_ROLE_FILE_CHOOSERATK_ROLE_FILLERATK_ROLE_FONT_CHOOSERATK_ROLE_FRAMEATK_ROLE_GLASS_PANEATK_ROLE_HTML_CONTAINERATK_ROLE_ICONATK_ROLE_IMAGEATK_ROLE_INTERNAL_FRAMEATK_ROLE_LABELATK_ROLE_LAYERED_PANEATK_ROLE_LISTATK_ROLE_LIST_ITEMATK_ROLE_MENU ATK_ROLE_MENU_BAR!ATK_ROLE_MENU_ITEM"ATK_ROLE_OPTION_PANE#ATK_ROLE_PAGE_TAB$ATK_ROLE_PAGE_TAB_LIST%ATK_ROLE_PANEL&ATK_ROLE_PASSWORD_TEXT'ATK_ROLE_POPUP_MENU(ATK_ROLE_PROGRESS_BAR)ATK_ROLE_PUSH_BUTTON*ATK_ROLE_RADIO_BUTTON+ATK_ROLE_RADIO_MENU_ITEM,ATK_ROLE_ROOT_PANE-ATK_ROLE_ROW_HEADER.ATK_ROLE_SCROLL_BAR/ATK_ROLE_SCROLL_PANE0ATK_ROLE_SEPARATOR1ATK_ROLE_SLIDER2ATK_ROLE_SPLIT_PANE3ATK_ROLE_SPIN_BUTTON4ATK_ROLE_STATUSBAR5ATK_ROLE_TABLE6ATK_ROLE_TABLE_CELL7ATK_ROLE_TABLE_COLUMN_HEADER8ATK_ROLE_TABLE_ROW_HEADER9ATK_ROLE_TEAR_OFF_MENU_ITEM:ATK_ROLE_TERMINAL;ATK_ROLE_TEXT<ATK_ROLE_TOGGLE_BUTTON=ATK_ROLE_TOOL_BAR>ATK_ROLE_TOOL_TIP?ATK_ROLE_TREEATK_ROLE_TREE_TABLEATK_ROLE_UNKNOWNATK_ROLE_VIEWPORTATK_ROLE_WINDOWATK_ROLE_HEADERATK_ROLE_FOOTERATK_ROLE_PARAGRAPHATK_ROLE_RULERATK_ROLE_APPLICATIONATK_ROLE_AUTOCOMPLETEATK_ROLE_EDITBARATK_ROLE_EMBEDDEDATK_ROLE_ENTRYATK_ROLE_CHARTATK_ROLE_CAPTIONATK_ROLE_DOCUMENT_FRAMEATK_ROLE_HEADINGATK_ROLE_PAGEATK_ROLE_SECTIONATK_ROLE_REDUNDANT_OBJECTATK_ROLE_FORMATK_ROLE_LINKATK_ROLE_INPUT_METHOD_WINDOWATK_ROLE_TABLE_ROWATK_ROLE_TREE_ITEMATK_ROLE_DOCUMENT_SPREADSHEETATK_ROLE_DOCUMENT_PRESENTATIONATK_ROLE_DOCUMENT_TEXTATK_ROLE_DOCUMENT_WEBATK_ROLE_DOCUMENT_EMAILATK_ROLE_COMMENTATK_ROLE_LIST_BOXATK_ROLE_GROUPINGATK_ROLE_IMAGE_MAPATK_ROLE_NOTIFICATIONATK_ROLE_INFO_BARATK_ROLE_LEVEL_BARATK_ROLE_TITLE_BARATK_ROLE_BLOCK_QUOTEATK_ROLE_AUDIOATK_ROLE_VIDEOATK_ROLE_DEFINITIONATK_ROLE_ARTICLEATK_ROLE_LANDMARKATK_ROLE_LOGATK_ROLE_MARQUEEATK_ROLE_MATHATK_ROLE_RATINGATK_ROLE_TIMERATK_ROLE_DESCRIPTION_LISTATK_ROLE_DESCRIPTION_TERMATK_ROLE_DESCRIPTION_VALUEATK_ROLE_STATICATK_ROLE_MATH_FRACTIONATK_ROLE_MATH_ROOTATK_ROLE_SUBSCRIPTATK_ROLE_SUPERSCRIPTATK_ROLE_LAST_DEFINEDAtkRolee+y6ATK_LAYER_INVALIDATK_LAYER_BACKGROUNDATK_LAYER_CANVASATK_LAYER_WIDGETATK_LAYER_MDIATK_LAYER_POPUPATK_LAYER_OVERLAYATK_LAYER_WINDOWAtkLayerP6AtkObject7_AtkObject$7  descriptione nameeaccessible_parent7role@6relation_set7layer6 AtkRelationSet7 _AtkRelationSet+7 - relations/| 771D8GTK_WIDGET_HELP_TOOLTIPGTK_WIDGET_HELP_WHATS_THISGtkWidgetHelpType48GtkWidgetPrivateBu8 _GtkWidgetPrivateGtkWidgetClassC8"_GtkWidgetClassk&Ak mS activate_signalq^Ddispatch_child_properties_changedtAHdestroyyALshowzAPshow_all{AThide|AXmap}A\unmap~A`realizeAdunrealizeAhsize_allocateAlstate_changedApstate_flags_changedBtparent_set)Bxhierarchy_changed)B|style_setEBdirection_changed[Bgrab_notifyqBchild_notifyBdrawBget_request_modeBget_preferred_heightBget_preferred_width_for_heightBget_preferred_widthBget_preferred_height_for_widthBmnemonic_activate Cgrab_focusAfocus%Cmove_focus;Ckeynav_failed%CeventUCbutton_press_eventuCbutton_release_eventuCscroll_eventCmotion_notify_eventCdelete_eventCdestroy_eventCkey_press_eventCkey_release_eventCenter_notify_eventDleave_notify_eventDconfigure_event5Dfocus_in_eventUDfocus_out_eventUDmap_eventCunmap_eventCproperty_notify_eventuD#selection_clear_eventD#selection_request_eventD#selection_notify_eventD#proximity_in_eventD #proximity_out_eventD#visibility_notify_eventD#window_state_eventD#damage_eventE#grab_broken_event5E #selection_get[E$#selection_receivedvE(#drag_beginE,#drag_endE0#drag_data_getE4#drag_data_deleteE8#drag_leaveE<#drag_motionE@#drag_drop ED#drag_data_received$FH#drag_failedCFL#popup_menuXFP#show_help$rFT#get_accessible)FX#screen_changed+F\#can_activate_accel-F`#composited_changed1Ad#query_tooltip3Fh#compute_expand9Gl#adjust_size_request=!Gp#adjust_size_allocationAKGt#style_updatedHAx#touch_eventJkG|#get_preferred_height_and_baseline_for_widthMG#adjust_baseline_requestSB#adjust_baseline_allocationVG#queue_draw_regionXG$f ]G$s `$ aGtkWidgetClassPrivateDCA _GtkWidgetClassPrivateGtkAllocationTGtkCallback^AAAA+]8AA^^ AAAAAAA[AAAA'ABAS*B)BAAB?BA?B*/B[BAu&KBqBA@aBBAwB@BAvB(BABBA==BBA4==B@ CA@B@%CAS%C;CAS%+C@UCAAC@oCAoCa[C@CAC{C@CACC@CACSC@CACC@DAD1C@/DA/DD@ODAOD;D@oDAoD[D@DAD+{D@DADD@DAD(D@DADD@EAED@/EA/EEUEAUE^^*;EvEAUE^aEEA$|EEA$UE^^EEA$^E@EA$44^E$FA$44UE^^E@CFA$S(*F@XFAIF@rFAD8^F7FAxFFA$F@FA^F@FA44@F*FGA  F!GA&==GKGA&===='G@eGAeG*QGGA4====qGGA=GGAGG |G&Au+GtkContainer.G _GtkContainer2!H 4+ f 7JGtkContainerPrivate/K k @RH(O E(^ F( G( H2KGtkWindowPrivate.K _GtkWindowPrivateKr*LGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeuKGtkMisc.NL _GtkMisc2xL 4+ f 7LGtkMiscPrivate/L _GtkMiscPrivatexLGtkLabel0L _GtkLabel6L misc8?L f ; MGtkLabelPrivate1L _GtkLabelPrivateLLGtkAdjustmentPrivate-2M _GtkAdjustmentPrivateMi*GtkBox /cM _GtkBox 3M ( 5G f 8MGtkBoxPrivate 0M _GtkBoxPrivateMGtkImage!/M _GtkImage![M misc!]?L f !`NGtkImagePrivate!0 N _GtkImagePrivateMGtkButton".3N _GtkButton"2_N bin"5J f "7NGtkButtonPrivate"/wN _GtkButtonPrivate_N"N$GtkLinkButton#*N _GtkLinkButton #4N } #7"N f #9OGtkLinkButtonPrivate#,N _GtkLinkButtonPrivateNNGtkListBox$)2O _GtkListBox$/SO } $1GGtkListBoxRow$,hO _GtkListBoxRow$bO } $dJGtkListBoxRowClass$-O%_GtkListBoxRowClass$lO k $nWK&activate$rP(O $w(^ $x OSOPPPGtkListBoxSortFunc$3P9P4RPPPGtkRevealer%%eP _GtkRevealer%1P } %2JGtkScrolledWindow&-P _GtkScrolledWindow&1P ( &3J f &5QGtkScrolledWindowPrivate&.P _GtkScrolledWindowPrivatePP&xQGTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALGtkPolicyType&QUMMRPGtkMessageQ _GtkMessage8$gR & id(^ sender_name) sender_nick* +  , reply_to-^( resent_by., n_favorites/0 n_reshares04GtkMessageClass~R _GtkMessageClassD3R k 5 GtkMessageRowR _GtkMessageRow8R :SO f VE3n@LhgW4ts4t,B3@hW4ts4t,B4t03@hW4ts4t*,B4t03@hW4ts4t6,B4t03@hW4ts4tB,B4t03"@h X4ts4tS,B4t03F@hEX4ts4tg,B4t03j@hjX4ts4ty,B4t03@hX4ts4t,B4t03@hX4ts4t,B4t03@hX4ts4t,B4t03@hX4ts4t,B4t03@h#Y4ts4t,B4t03B@hHY4ts4t,B4t03Z@hqY4ts4t,B4tp@3r@hY4ts4t,B4t@5@h4ts4t-B4t@3@@gY4ts5^@g4ts4tM?gtk_message_row_state_flags_changed@CZ2 A.previous_state_flagsS*@f TFAflagsS*-F3@iZ4tsB@Di-gtk_message_row_update@u\CrowU@F@f TaFAtvFAsFB @niB!@niB5@niBI@i3[@i6[4tv4t-B3l@niK[4tw3t@i`[4tw3@i[4tv4t-B3@ni[4tv3@i[4tvB@Di3@j[4t+-B3@"j[4tv3@i[4tvB@Di3@j\4t?-B3(@"j*\4tv30@i?\4tvBK@DiBc@IjB@pj5@j4t^-B4t5-favorite_clicked@\.rowU2Q N@f TF9@Z4P-reshare_clicked@2].rowְU2Q אN@f ٤TG9@Z4P-gtk_message_row_expand@i]CrowU+G@f ¤TLGAexpand@jGB@j3,@j]4tv3E@Ij]4tm-B5c@Ij4th-B-expand_clickedp@&^.rowϰU2Q АN9v@2]4P6row_activated.@ z^0listbox.O0row.P9@2]4PDgtk_message_get_typeY@i_E Yi_MFX^G@5@/k4tM=@T@2 YGH@_5@Yk4tM3@}k._4tt-B5@k4tP4tD4t @4t84t@4t0Dgtk_message_row_get_type@`E i_MFp_G@50@/k4tM=4@n@2 GF`5@Yk4tM4ts3@@}k)`4t-BBG@k3{@ko`4ts4t 4t 0@4tL4t@4t05@l4ts4t8+gtk_message_newT`,str :msgT)gtk_message_parsefa,msgfT,strf :strvh :iiIgtk_message_row_newU`HS`b@Sc<`H<`HR>`H>`%I3@Glb4t04t:3@Glb4t04t:3@jlb4tu3)@lb4tu4t-B4t03E@Glb4t04t:BS@lBa@lBo@l3@Gl.c4t04t:3@GlHc4t04t:B@l5@l4tT4t07a@"cc<#aI=@">/aI3@lc4tX4t05@Z4PuB@lB@mB@3m3.@Qmd4t-B4t 4t 4t 04t03?@m+d4t03P@mAd4tBa@m3v@nbd4t-B3@5nd4t 4t X3@ind4t-BTt4t M4t04t03@nd4t14t<3@nd4ts3@nd4t-B3@o e4ts4t04t 04t033@Co:e4t04t03M@qo[e4tv4t24t13q@oe4ts4tv4t14t 14t0Bv@o3@ne4tv4tw3@oe4tw4t@4tw4t 03@oe4tw4t03@in0f4tw4t-B4t@4t 04t04t03@5pEf4ts3@Wpif4t-B4t04t03@p}f4t03,@lf4t-B4t0BI@z^BR@n_3@3mf4tu3@nf4tw4tu5@jl4t\Uavatar_pixbuf_other NMEX  AMUgtk_message_parent_classYMUGtkMessage_private_offsetY4MUgtk_message_row_parent_classMUGtkMessageRow_private_offset4MVg_type_class_peek_parent gWg_type_class_adjust_private_offset %h=Wgtk_widget_init_templateLhAWgtk_widget_class_set_template_from_resourcehVWgtk_widget_class_bind_template_child_fullhV@Wgtk_widget_class_bind_template_callback_fulliV Vgtk_widget_get_state_flagsRS*DiAWgtk_widget_set_visible]niA@Xgtk_label_set_textaiMYg_date_time_new_from_unix_utctviVg_date_time_formateivXg_free'EjYg_strdup_printf(e"jZXgtk_label_set_markuppIjMXgtk_button_set_label"{pjNXgtk_image_set_from_pixbuf!jQNXgtk_image_set_from_icon_name!jQ&Ygtk_revealer_get_reveal_child%B@jQXgtk_revealer_set_reveal_child%D/kQ@Yg_once_init_enter)@RkRkXk[Xg_once_init_leave)}kRkYg_intern_static_string@kVg_type_register_static_simple k^J^a\gtk_list_box_row_get_type$Vg_type_add_instance_private 4GlVstrtol*jl  Wg_strfreev(l[Vg_strsplit( [l4Yg_strdup(elVg_object_newlZVgtk_widget_get_visible`@mAWgtk_widget_destroy3mAWgtk_widget_showQmAVgdk_pixbuf_new_from_resource_at_scaleNm @IYgtk_window_newAm*LVgtk_widget_get_screen$mAWgtk_window_set_screennG$Xgtk_window_set_title5nGWgtk_window_set_default_sizeinG44Vg_signal_connect_dataPn   Ygtk_box_new PAn&4Xgtk_container_addn%JAYgtk_label_new]AoXgtk_box_pack_start TCoQA@@^Ygtk_scrolled_window_new&AqoOMOMXgtk_scrolled_window_set_policy&oQxQxQ]gtk_list_box_new$-AWgtk_list_box_set_sort_func$oOPWgtk_list_box_set_activate_on_single_click$#5pO@Wgtk_widget_show_allWpAYg_resources_lookup_data+jpp  I^g_bytes_get_data,:pCq`GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenflowbox.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo@vS~charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64, guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong6)guint7gfloat9floatgdouble:(doublegpointerMHSGData$a_GDataT long double GType~ GValue _GValuej g_typem~ dataz GTypeClass _GTypeClass g_type~ GTypeInstance _GTypeInstanceA g_classASpv_intqv_uintrv_longsv_ulongtv_int64ukv_uint64vyv_floatwv_doublexv_pointery2XGClosureJ _GClosure, meta_marshal_nousen_guardsn_fnotifiers n_inotifiersin_inotifyfloatingderivative_flagin_marshalis_invalid marshal data2 notifiers GClosureNotifyDataKF _GClosureNotifyData data2 notifyGCallbackVMGClosureNotify_2GM22,&G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags _GObject  g_type_instance   qdata iGInitiallyUnowned ;cairo_t |_cairoGdkRGBA u _GdkRGBA % red ' green ( blue ) alpha *GdkScreen ~'_GdkScreen JGTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINEGtkAlign P? GTK_SELECTION_NONEGTK_SELECTION_SINGLEGTK_SELECTION_BROWSEGTK_SELECTION_MULTIPLE GtkSelectionMode GtkAdjustment"G _GtkAdjustment6w 8 : GtkWidget. _GtkWidget  " GtkWindow0 _GtkWindow5 bin7  9> GtkWidgetPrivateB _GtkWidgetPrivatewGtkContainer.B _GtkContainer2t widget4w 7 GtkContainerPrivate/ _GtkContainerPrivatet . GtkBin. _GtkBin2  4.  7 GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate.+ _GtkWindowPrivate rv GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeuD GtkAdjustmentPrivate- _GtkAdjustmentPrivate 2 GtkFlowBox, _GtkFlowBox2  4.  GtkScrolledWindow-' _GtkScrolledWindow1[  3  5 GtkScrolledWindowPrivate.{ _GtkScrolledWindowPrivate[   GTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALGtkPolicyType draw_color@? drawingarea crcolor_namergbaP@1 tst,@V tts 8@t!color_swatch_new   "color B#button" #area" $do_flowbox/ @@6 do_widget/ %scrolled1 I%flowbox1 Icolors2 j&i J' @i^( 4J)@i* GJ* eJ+@+@@tvt.Bt@t wt0t05@/tvtHtHA@CKtstv I@gts+k@+|@+@@t0@t+@9@bt.B@t t X=@t .B,tt Mt0t0Q@.t0t0o@Otst2t1+t@!@9stwt1@btwtN@twt0@Ctstw@CtsY@Ctjts l@gtjB-window  M.gdk_rgba_parse >V9B/gdk_cairo_set_source_rgba( 0cairo_paint 1gtk_button_new` 1gtk_drawing_area_newH 2g_signal_connect_data2B2&0gtk_widget_set_size_requestC /gtk_container_addg  0gtk_widget_show_all 2gtk_widget_get_visible` 0gtk_widget_destroy 0gtk_widget_show .gtk_window_new v 2gtk_widget_get_screen39 0gtk_window_set_screenb( 3/gtk_window_set_title( B0gtk_window_set_default_size( .gtk_scrolled_window_new   /gtk_scrolled_window_set_policy!   1gtk_flow_box_newv 0gtk_widget_set_valignBb /gtk_flow_box_set_max_children_per_line 3gtk_flow_box_set_selection_mode 8,cGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenlist_store.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo@[\charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned chargint8esigned charguint8Ggint16 short intguint16!guint32&gint64,guint64-long long unsigned intgsize;gchar.gshort/glong0gint1gboolean2)gulong62guint7gfloat9nfloatgdouble:doublegpointerMGData$_GData 5 GSourceFunc long double GType~ GValue' _GValuejS g_typem  zs GTypeClassf_GTypeClassg_type  GTypeInstance_GTypeInstanceg_classSpsv_intq)v_uintrSv_longsv_ulongtEv_int64uv_uint64vv_floatw`v_doublexwv_pointery&GClosureJ _GClosure umeta_marshal_nouseun_guardsun_fnotifiersu n_inotifiersuin_inotifyufloatinguderivative_flaguin_marshaluis_invalidu marshalK Ɛ notifiersz GClosureNotifyDataK _GClosureNotifyData  notifyGCallbackVGClosureNotify_/5E  EQu E  S   S G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject  _GObject  g_type_instance  u qdata GInitiallyUnowned _cairo_rectangle_int x y width height  cairo_rectangle_int_t 0 cairo_region_t _cairo_regionGdkRectangle NGdkAtom V_GdkAtomGdkDevice x _GdkDeviceGdkDragContext y._GdkDragContextGdkScreen ~P_GdkScreenGdkWindow m_GdkWindowGdkEventAny {_GdkEventAny     XGdkEventExpose |_GdkEventExpose$ N     Xarea  region !count ") GdkEventVisibility }h _GdkEventVisibility 4  6  7 8X) 9} GdkEventMotion ~ _GdkEventMotion@ T  V  W XX Y x Zwy [waxes \ ) ]S$is_hint ^(A _, `w0 `w8GdkEventButton  _GdkEventButton@ S     X  x wy waxes  ) S$button S(A , w0 w8GdkEventTouch h _GdkEventTouchH :     X  x wy waxes  ) S$sequence (emulating_pointer 5,A 0 w8 w@GdkEventScroll P _GdkEventScrollP      X  x wy w) S direction $A ( w0 w8delta_x w@delta_y wHGdkEventKey 0 _GdkEventKey( /  1  2 3X 4 ) 5Skeyval 6Slength 7)string 8hardware_keycode 9 group :t"is_modifier ;S$GdkEventFocus _GdkEventFocus sZ u  v wXin x GdkEventCrossing r_GdkEventCrossingH X? Z  [ \Xsubwindow ]  ^x _wy `w  aw( bw0mode c8detail d<focus e5@) fSDGdkEventConfigure X_GdkEventConfigure     Xx ) y )width )height )GdkEventProperty _GdkEventProperty T    Xatom   ) SGdkEventSelection m_GdkEventSelection     X  target 8  requestor GdkEventOwnerChange _GdkEventOwnerChange     Xowner  reason   selection_time GdkEventProximity _GdkEventProximity $    X  A GdkEventDND 7_GdkEventDND R S  T UXcontext V  X Y YGdkEventWindowState _GdkEventWindowState >    Xchanged_mask  new_window_state !GdkEventSetting U_GdkEventSetting     Xaction < name  GdkEventGrabBroken _GdkEventGrabBroken 9M :  ; <Xkeyboard =5 implicit >5grab_window ?GdkEventSequence e_GdkEventSequenceGdkEvent _GdkEventP   any yexpose visibility N motion  button  touch S scroll : key  crossing Zfocus_change  configure ?8  Towner_change proximity dnd $window_state setting >grab_broken x  " GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_EVENT_LAST) GdkEventType O  Z}GDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCURED GdkVisibilityState ^  lGDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTH GdkScrollDirection r  GDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWN GdkNotifyType   GDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCH GdkCrossingMode   GDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOWGDK_WINDOW_STATE_FOCUSEDGDK_WINDOW_STATE_TILED GdkWindowState   <GDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETED GdkSettingAction   GDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSE GdkOwnerChange U\wM? V3GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientationY GTK_SHADOW_NONEGTK_SHADOW_INGTK_SHADOW_OUTGTK_SHADOW_ETCHED_INGTK_SHADOW_ETCHED_OUT GtkShadowTypeJGtkAdjustment" _GtkAdjustment6 8 :X! GtkWidget." _GtkWidgetN   GtkWindow0_ _GtkWindow5 bin7K  9 GtkWidgetPrivateB_GtkWidgetPrivateNGtkContainer. _GtkContainer2 widget4 7? GtkContainerPrivate/) _GtkContainerPrivate GtkBin.Y _GtkBin2  4 7 GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate. _GtkWindowPrivate r!GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu GtkAdjustmentPrivate-A!_GtkAdjustmentPrivate%!GtkBox/r! _GtkBox3! 5 8!GtkBoxPrivate0!_GtkBoxPrivate!GtkTreeIter'! _GtkTreeIter]/" stamp_) ` user_data2a user_data3b GtkTreePath(B"_GtkTreePathGtkTreeModel*d"_GtkTreeModelP"/"!GtkCellRendererP" _GtkCellRendererU" W Z# GtkCellRendererPrivateQ"_GtkCellRendererPrivate""GtkTreeViewColumn)*# _GtkTreeViewColumnT^# V X%$ GtkTreeViewColumnPrivate+~#_GtkTreeViewColumnPrivate8$GTK_TREE_VIEW_COLUMN_GROW_ONLYGTK_TREE_VIEW_COLUMN_AUTOSIZEGTK_TREE_VIEW_COLUMN_FIXEDGtkTreeViewColumnSizing<##^#GtkListStore(?$ _GtkListStore,n$" . 1$ GtkListStorePrivate)$_GtkListStorePrivaten$GtkTreeView=$ _GtkTreeViewC$" E H%GtkTreeViewPrivate?%_GtkTreeViewPrivate$$GtkCellRendererToggle&>% _GtkCellRendererToggle*v%" ," /%GtkCellRendererTogglePrivate'%_GtkCellRendererTogglePrivatev%!%GtkScrolledWindow-% _GtkScrolledWindow1& 3K  5M&GtkScrolledWindowPrivate.2&_GtkScrolledWindowPrivate&%&GTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALGtkPolicyTypeY&d!+$!"' fixed"' number'' severity description 5SBug&'COLUMN_FIXEDCOLUMN_NUMBERCOLUMN_SEVERITYCOLUMN_DESCRIPTIONCOLUMN_PULSECOLUMN_ICONCOLUMN_ACTIVECOLUMN_SENSITIVENUM_COLUMNS"window_closed5@;0(#widget#event$ %@$2&spinner_timeout85@($ 8'iter:!`'pulse;S\(fixed_toggledp@)#cell%#path_str$ )models"J'iter!`)pathy"J'fixed5\*@F2()+t*@u2K)+ts+tv+tw*@2{)+ts+tv+t0+t \+t *@2)+ts+tv+t0+t ,@2+tw-create_modelSs"*.iU).storeV&.iterW!/.icon_nameg.sensitiveh50add_columnsa*1/ %.renderer #.column$.models"2do_list_store@1#do_widget3@;1)vboxJ)labelJ)swJ4/ 4K5)@+67)RK7)K8)P9+7)K7*K*u@3M++tv+tw,@2+tv+tw+t0+t1+t2+t 3+t(4+t,0+t05+t4H+t86+t<0+t7+t ,D@>3+t8+tD+tL+t @+t@+tL+t@+tD+t D:*U@*&]/;**S  ȡM'model s"ġM'timeout SM,'2& > %2JB1?g_source_remove5F2 S@gtk_tree_path_new_from_stringy"u2 ?gtk_tree_model_get_iter752 s" " y"Agtk_tree_model_getl2 s" "BCgtk_list_store_setU2 & "BCgtk_tree_path_free3 y"Cgtk_list_store_append>3 & "@gtk_list_store_newC&c3 )B@gtk_tree_view_get_models"3 %Dgtk_cell_renderer_toggle_newC #?g_signal_connect_data E3      @gtk_tree_view_column_new_with_attributeso$14  #BCgtk_tree_view_column_set_sizingc4 $ $Cgtk_tree_view_column_set_fixed_width4 $ )?gtk_tree_view_append_column)4 % $Dgtk_cell_renderer_text_newE #Cgtk_tree_view_column_set_sort_column_id)5 $ )Dgtk_cell_renderer_spinner_newA #Dgtk_cell_renderer_pixbuf_new@ #@gtk_window_new5 !?gtk_widget_get_screen5 Agtk_window_set_screen5  Cgtk_window_set_title 6  Cgtk_container_set_border_width;6 E S@gtk_box_newP]6 3 )Cgtk_container_add6 E @gtk_label_new ]6 Cgtk_box_pack_startT6 &  5 5 S@gtk_scrolled_window_new7 ^! ^!Cgtk_scrolled_window_set_shadow_type87 S& Cgtk_scrolled_window_set_policyn7 S& & &@gtk_tree_view_new_with_modelҶ7 s"Agtk_tree_view_set_search_column7 % )Ag_object_unref 7 Agtk_window_set_default_size 8  ) )?gtk_widget_get_visible`5I8 Agtk_widget_show_allk8 Agtk_widget_destroy8 Eg_timeout_add.S S  fGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenmenus.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo@charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64, guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong6-guint7gfloat9floatgdouble:,doublegpointerMLWGData$e_GDataGSList%{ _GSList' data)6 next*mX long double GType~ GValue _GValuej  g_typem dataz+ GTypeClass _GTypeClassD g_type GTypeInstanceZ _GTypeInstance g_class p+v_intqv_uintrv_longsv_ulongtv_int64uov_uint64v}v_floatwv_doublexv_pointery6;!GClosureJK _GClosureo` /meta_marshal_nouse/n_guards/n_fnotifiers/ n_inotifiers/in_inotify/floating/derivative_flag/in_marshal/is_invalid/ marshal data6 notifiers4 GClosureNotifyDataK _GClosureNotifyData data6 notifyGCallbackVQGClosureNotify_6; /66o iG_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags :GObject  _GObject  g_type_instance D` / qdata GInitiallyUnowned GdkScreen ~_GdkScreen VZGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientation Y nGTK_PACK_DIRECTION_LTRGTK_PACK_DIRECTION_RTLGTK_PACK_DIRECTION_TTBGTK_PACK_DIRECTION_BTTGtkAccelGroup B _GtkAccelGroup ]' parent _~[ `` GtkAccelGroupPrivate DC_GtkAccelGroupPrivate'GtkWidget.w _GtkWidget parent_instance[  GtkWindow0 _GtkWindow5 bin7 [ 99 GtkWidgetPrivateB _GtkWidgetPrivatefGtkContainer.= _GtkContainer2o widget4f[ 7 GtkContainerPrivate/ _GtkContainerPrivateo ) GtkBin. _GtkBin2 H 4) [ 7 GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate.& _GtkWindowPrivate rq GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu? GtkMenuShell. _GtkMenuShell2 H 4) [ 7 GtkMenuShellPrivate0 _GtkMenuShellPrivate  GtkBox/ _GtkBox3= H 5) [ 8b GtkBoxPrivate0R _GtkBoxPrivate= GtkMenuItem-{ _GtkMenuItem1 bin3 [ 6 GtkMenuItemPrivate/ _GtkMenuItemPrivate h GtkCheckMenuItem. _GtkCheckMenuItem 25 menu_item4h [ 7n GtkCheckMenuItemPrivate/T _GtkCheckMenuItemPrivate5 GtkOrientable) _GtkOrientableGtkRadioMenuItem. _GtkRadioMenuItem$2 check_menu_item4 [ 7) GtkRadioMenuItemPrivate/ _GtkRadioMenuItemPrivate   t change_orientationA buttonA menubarB parentD orientationEZcreate_menu! @/depth!L menu# BM!R $ oM group%M"buf&/@ i'M j'4N#@$.@]%tw%tKB%t%t v$:@y%tu%tw$D@4%ts$V@c%t%ts$^@%ts$l@ %P$x@%ts$@%ts%t0$@ %P&@%ts?!'A @0(\ (j )y N) N*(\ +j N,-y - &8@%tv%tKB%t2$@"%tv$@J%tw$@z%tw%t1s&@%tv%tKB%t0%t 0.do_menusU @@p/do_widgetU  boxW N box1X O box2Y 2O buttonZ PO0@ menubar^ O menu_ O!R ` O accel_groupaZ P$@ %t0$@#%t#@$@D%tKB$ @Cv%t#KB1t%t ̡M%t0%t0#@# @$5@%t0$I@%t0%t0$\@%ts$d@%ts$x@%t1%t0$@%ts%tw$@+%tw#@C$@[b%tw%ts%t0%t 1%t0$@w%ts$@ %P2$@%t+KB$@%tv%tu$@c%ts%tv$@%tv$@%t6KB$@ %P3$@/%tv$+@cK%ts%tv$3@`%tv$?@x%t:KB$K@ %P4$W@%tv$c@c%ts%tv$k@%tv$@%t1%t:$@%tv%t:$@[4%tw%tv%t0%t 1%t0$@I%tv$@a%t>KB$@C%tw%tCKB%t@%t s%t0%t0$@[%tv%tw%t1%t 1%t0$#@%tw$/@%tKKB$b@C'%ts%tCKB1t%t0%t2$@[U%tv%ts%t1%t 1%t0$@p%ts%t1$@%ts&@%ts#X@<#i@e#@"windowR ̡M2gtk_menu_new 3sprintf{45gtk_radio_menu_item_new_with_labelO 4F5gtk_radio_menu_item_get_group]c/ 6gtk_menu_shell_append]  7gtk_widget_show 6gtk_menu_item_set_submenux  7gtk_widget_set_sensitiveU 7g_object_set "6F43gtk_widget_get_parent J 5gtk_orientable_get_orientation9Zz; 6gtk_orientable_set_orientation6; Z5gtk_window_new q 3gtk_widget_get_screen 7gtk_window_set_screen# 6gtk_window_set_titleC# F3g_signal_connect_data 6F6i2gtk_accel_group_new Z6gtk_window_add_accel_group# Z6gtk_container_set_border_width 5gtk_box_newP Z6gtk_container_addC  2gtk_menu_bar_newI 6gtk_box_pack_startT5  5gtk_menu_item_new_with_labelt F5gtk_button_new_with_labelb F7gtk_widget_set_can_default& 7gtk_widget_grab_default-< 3gtk_widget_get_visible`e 8gtk_widget_destroy |iGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenoffscreen_window.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo@7doubleintfloatcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charlong long unsigned int long doublegint8signed charguint8`gint16 short intguint16!guint32&gint64,(guint64-qgsize;gchar.gshort/glong0gint1gboolean2\gulong6Kguint7gfloat9gdouble:gpointerM24GPtrArray' _GPtrArray5  pdata7& len842 GData$@ _GDataGSList%V _GSList' data) next*H\ :SG_LOG_FLAG_RECURSIONG_LOG_FLAG_FATALG_LOG_LEVEL_ERRORG_LOG_LEVEL_CRITICALG_LOG_LEVEL_WARNINGG_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFOG_LOG_LEVEL_DEBUGG_LOG_LEVEL_MASK|GLogLevelFlagsH3GType~%GValue _GValue j g_type mu data z}GTypeClass_GTypeClassg_typeuGTypeInstance_GTypeInstance8g_class8GClassInitFunciGInstanceInitFuncouG_TYPE_FLAG_ABSTRACTG_TYPE_FLAG_VALUE_ABSTRACT GTypeFlags p}v_int q\v_uint rv_long sOv_ulong txv_int64 uv_uint64 vv_float wv_double xv_pointer y?  G_PARAM_READABLEG_PARAM_WRITABLEG_PARAM_READWRITEG_PARAM_CONSTRUCTG_PARAM_CONSTRUCT_ONLYG_PARAM_LAX_VALIDATIONG_PARAM_STATIC_NAME G_PARAM_PRIVATE G_PARAM_STATIC_NICKG_PARAM_STATIC_BLURBG_PARAM_EXPLICIT_NOTIFYG_PARAM_DEPRECATEDxGParamFlags GParamSpec  _GParamSpec( s  name  flags դ value_type u owner_type u _nick  _blurb  qdata i ݆ param_id ކ$GClosure J _GClosure  m meta_marshal_nouse m n_guards m n_fnotifiers m  n_inotifiers m in_inotify m floating m derivative_flag m in_marshal m is_invalid m  marshal C  data ư notifiers r GClosureNotifyData K _GClosureNotifyData data  notify  GCallback V,GClosureNotify _' - = = yI m =   G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags x GObject _GObject    m  qdata i_GObjectClassD < g_type_class >construct_properties Aconstructor E% set_property I get_property M dispose Q finalize R dispatch_properties_changed TF notify X\ constructed \ $flags _%(pdummy bb ,GInitiallyUnowned GInitiallyUnownedClass  GObjectConstructParam p _GObjectConstructParam m pspec osvalue p   s    s     u S  @  @ s+ \  sL r ?hcairo_t| _cairocairo_surface_t _cairo_surface_cairo_rectangle_intxy 1  cairo_rectangle_int_t x  cairo_region_t F _cairo_regionGdkRectangleNGdkAtomVx~ _GdkAtomGdkCursorv _GdkCursorGdkVisualw _GdkVisualGdkDevicex _GdkDeviceGdkDragContexty _GdkDragContextGdkScreen~ _GdkScreenGdkWindow4 _GdkWindowGDK_EXPOSURE_MASKGDK_POINTER_MOTION_MASKGDK_POINTER_MOTION_HINT_MASKGDK_BUTTON_MOTION_MASKGDK_BUTTON1_MOTION_MASK GDK_BUTTON2_MOTION_MASKGDK_BUTTON3_MOTION_MASKGDK_BUTTON_PRESS_MASKGDK_BUTTON_RELEASE_MASKGDK_KEY_PRESS_MASKGDK_KEY_RELEASE_MASKGDK_ENTER_NOTIFY_MASK GDK_LEAVE_NOTIFY_MASKGDK_FOCUS_CHANGE_MASKGDK_STRUCTURE_MASKGDK_PROPERTY_CHANGE_MASKGDK_VISIBILITY_NOTIFY_MASKGDK_PROXIMITY_IN_MASKGDK_PROXIMITY_OUT_MASK GDK_SUBSTRUCTURE_MASKGDK_SCROLL_MASKGDK_TOUCH_MASKGDK_SMOOTH_SCROLL_MASKGDK_ALL_EVENTS_MASKGdkEventAny{_GdkEventAny , 5" &  GdkEventExpose|_GdkEventExpose$, 5" & area U region!&count"\ GdkEventVisibility}_GdkEventVisibility4, 65" 7& 8 9" GdkEventMotion~_GdkEventMotion@T, V5" W& XT Y xZy[axes\&  ]$is_hint^( _', `0Y `8GdkEventButton_GdkEventButton@, 5" & T  xyaxes&  $ ( ', 0Y 8GdkEventTouch_GdkEventTouchHn, 5" & T  xyaxes&  $sequence '(emulating_pointerh, '0 8Y @GdkEventScroll_GdkEventScrollPQ, 5" & T  xy  direction )#$  '(  0Y  8delta_x @delta_y HGdkEventKeyd_GdkEventKey(/-, 15" 2& 3T 4  5keyval6length7\string8 hardware_keycode9 group:"is_modifier;$GdkEventFocusB_GdkEventFocus s, u5" v& winx GdkEventCrossing_GdkEventCrossingHXs, Z5" [& \subwindow]& T ^x_y`  a(Y b0modec$8detaild#<focuseh@ fDGdkEventConfigure_GdkEventConfigure, 5" & x\ y\ \1 \GdkEventProperty_GdkEventProperty, 5" & atomi T  GdkEventSelection_GdkEventSelection *, 5" & 8 i targetiiT requestor&GdkEventOwnerChangeE_GdkEventOwnerChange , 5" & owner& reason&8 iT selection_timeGdkEventProximity_GdkEventProximityS, 5" & T   'GdkEventDNDf_GdkEventDNDR, S5" T& UcontextV' T X YAY YAGdkEventWindowState_GdkEventWindowStatem, 5" & changed_mask % new_window_state!%GdkEventSetting_GdkEventSetting,  5"  &  action h& name 9GdkEventGrabBroken_GdkEventGrabBroken9|, :5" ;& <keyboard=h implicit>hgrab_window?&GdkEventSequence _GdkEventSequenceGdkEvent_GdkEventP, 5" any expose visibility motion  touch scrolln keyQ crossing focus_change- configures8  owner_change* proximity dndS window_state settingm grab_broken"5"GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_EVENT_LAST)GdkEventTypeO Z"GDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCUREDGdkVisibilityState^J"l)#GDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTHGdkScrollDirectionr"#GDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWNGdkNotifyTypeD#$GDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCHGdkCrossingMode#%GDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOWGDK_WINDOW_STATE_FOCUSEDGDK_WINDOW_STATE_TILEDGdkWindowState$h&GDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETEDGdkSettingAction &&GDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSEGdkOwnerChange&#/|GdkWindowAttr(,'_GdkWindowAttr8f8(titleh event_maski\xj\yj\  k\1 l\wclassme(visualn+window_typeo) cursorp+$wmclass_nameq (wmclass_classr ,override_redirectsh0type_hinttv+4 7e(GDK_INPUT_OUTPUTGDK_INPUT_ONLYGdkWindowWindowClass:8( N)GDK_WINDOW_ROOTGDK_WINDOW_TOPLEVELGDK_WINDOW_CHILDGDK_WINDOW_TEMPGDK_WINDOW_FOREIGNGDK_WINDOW_OFFSCREENGDK_WINDOW_SUBSURFACEGdkWindowTypeV( k)GDK_WA_TITLEGDK_WA_XGDK_WA_YGDK_WA_CURSORGDK_WA_VISUAL GDK_WA_WMCLASSGDK_WA_NOREDIRGDK_WA_TYPE_HINT v+GDK_WINDOW_TYPE_HINT_NORMALGDK_WINDOW_TYPE_HINT_DIALOGGDK_WINDOW_TYPE_HINT_MENUGDK_WINDOW_TYPE_HINT_TOOLBARGDK_WINDOW_TYPE_HINT_SPLASHSCREENGDK_WINDOW_TYPE_HINT_UTILITYGDK_WINDOW_TYPE_HINT_DOCKGDK_WINDOW_TYPE_HINT_DESKTOPGDK_WINDOW_TYPE_HINT_DROPDOWN_MENUGDK_WINDOW_TYPE_HINT_POPUP_MENU GDK_WINDOW_TYPE_HINT_TOOLTIP GDK_WINDOW_TYPE_HINT_NOTIFICATION GDK_WINDOW_TYPE_HINT_COMBO GDK_WINDOW_TYPE_HINT_DND GdkWindowTypeHint˶) ,GTK_DIR_TAB_FORWARDGTK_DIR_TAB_BACKWARDGTK_DIR_UPGTK_DIR_DOWNGTK_DIR_LEFTGTK_DIR_RIGHTGtkDirectionType+ m,GTK_TEXT_DIR_NONEGTK_TEXT_DIR_LTRGTK_TEXT_DIR_RTLGtkTextDirection*,V,GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkOrientationY,}-GTK_STATE_NORMALGTK_STATE_ACTIVEGTK_STATE_PRELIGHTGTK_STATE_SELECTEDGTK_STATE_INSENSITIVEGTK_STATE_INCONSISTENTGTK_STATE_FOCUSEDGtkStateType,K.GTK_DRAG_RESULT_SUCCESSGTK_DRAG_RESULT_NO_TARGETGTK_DRAG_RESULT_USER_CANCELLEDGTK_DRAG_RESULT_TIMEOUT_EXPIREDGTK_DRAG_RESULT_GRAB_BROKENGTK_DRAG_RESULT_ERRORGtkDragResult-9.GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTHGTK_SIZE_REQUEST_WIDTH_FOR_HEIGHTGTK_SIZE_REQUEST_CONSTANT_SIZEGtkSizeRequestMode=a.bK0GTK_STATE_FLAG_NORMALGTK_STATE_FLAG_ACTIVEGTK_STATE_FLAG_PRELIGHTGTK_STATE_FLAG_SELECTEDGTK_STATE_FLAG_INSENSITIVEGTK_STATE_FLAG_INCONSISTENTGTK_STATE_FLAG_FOCUSED GTK_STATE_FLAG_BACKDROPGTK_STATE_FLAG_DIR_LTRGTK_STATE_FLAG_DIR_RTLGTK_STATE_FLAG_LINKGTK_STATE_FLAG_VISITEDGTK_STATE_FLAG_CHECKEDGtkStateFlagsp.GtkRequisition(w0 _GtkRequisition{0 }\1 ~\GtkSelectionData)0 _GtkSelectionDataGtkStyle+0 _GtkStyleGtkStyleContext,1 _GtkStyleContext+A1 parent_object- j .S GtkTooltip-S1 _GtkTooltipGtkWidget.q1 _GtkWidget1 parent_instance j G GtkWidgetPath/1 _GtkWidgetPathGtkWindow01 _GtkWindow5 2 bin7Qj 9R <ATK_ROLE_INVALIDATK_ROLE_ACCEL_LABELATK_ROLE_ALERTATK_ROLE_ANIMATIONATK_ROLE_ARROWATK_ROLE_CALENDARATK_ROLE_CANVASATK_ROLE_CHECK_BOXATK_ROLE_CHECK_MENU_ITEMATK_ROLE_COLOR_CHOOSER ATK_ROLE_COLUMN_HEADER ATK_ROLE_COMBO_BOX ATK_ROLE_DATE_EDITOR ATK_ROLE_DESKTOP_ICON ATK_ROLE_DESKTOP_FRAMEATK_ROLE_DIALATK_ROLE_DIALOGATK_ROLE_DIRECTORY_PANEATK_ROLE_DRAWING_AREAATK_ROLE_FILE_CHOOSERATK_ROLE_FILLERATK_ROLE_FONT_CHOOSERATK_ROLE_FRAMEATK_ROLE_GLASS_PANEATK_ROLE_HTML_CONTAINERATK_ROLE_ICONATK_ROLE_IMAGEATK_ROLE_INTERNAL_FRAMEATK_ROLE_LABELATK_ROLE_LAYERED_PANEATK_ROLE_LISTATK_ROLE_LIST_ITEMATK_ROLE_MENU ATK_ROLE_MENU_BAR!ATK_ROLE_MENU_ITEM"ATK_ROLE_OPTION_PANE#ATK_ROLE_PAGE_TAB$ATK_ROLE_PAGE_TAB_LIST%ATK_ROLE_PANEL&ATK_ROLE_PASSWORD_TEXT'ATK_ROLE_POPUP_MENU(ATK_ROLE_PROGRESS_BAR)ATK_ROLE_PUSH_BUTTON*ATK_ROLE_RADIO_BUTTON+ATK_ROLE_RADIO_MENU_ITEM,ATK_ROLE_ROOT_PANE-ATK_ROLE_ROW_HEADER.ATK_ROLE_SCROLL_BAR/ATK_ROLE_SCROLL_PANE0ATK_ROLE_SEPARATOR1ATK_ROLE_SLIDER2ATK_ROLE_SPLIT_PANE3ATK_ROLE_SPIN_BUTTON4ATK_ROLE_STATUSBAR5ATK_ROLE_TABLE6ATK_ROLE_TABLE_CELL7ATK_ROLE_TABLE_COLUMN_HEADER8ATK_ROLE_TABLE_ROW_HEADER9ATK_ROLE_TEAR_OFF_MENU_ITEM:ATK_ROLE_TERMINAL;ATK_ROLE_TEXT<ATK_ROLE_TOGGLE_BUTTON=ATK_ROLE_TOOL_BAR>ATK_ROLE_TOOL_TIP?ATK_ROLE_TREEATK_ROLE_TREE_TABLEATK_ROLE_UNKNOWNATK_ROLE_VIEWPORTATK_ROLE_WINDOWATK_ROLE_HEADERATK_ROLE_FOOTERATK_ROLE_PARAGRAPHATK_ROLE_RULERATK_ROLE_APPLICATIONATK_ROLE_AUTOCOMPLETEATK_ROLE_EDITBARATK_ROLE_EMBEDDEDATK_ROLE_ENTRYATK_ROLE_CHARTATK_ROLE_CAPTIONATK_ROLE_DOCUMENT_FRAMEATK_ROLE_HEADINGATK_ROLE_PAGEATK_ROLE_SECTIONATK_ROLE_REDUNDANT_OBJECTATK_ROLE_FORMATK_ROLE_LINKATK_ROLE_INPUT_METHOD_WINDOWATK_ROLE_TABLE_ROWATK_ROLE_TREE_ITEMATK_ROLE_DOCUMENT_SPREADSHEETATK_ROLE_DOCUMENT_PRESENTATIONATK_ROLE_DOCUMENT_TEXTATK_ROLE_DOCUMENT_WEBATK_ROLE_DOCUMENT_EMAILATK_ROLE_COMMENTATK_ROLE_LIST_BOXATK_ROLE_GROUPINGATK_ROLE_IMAGE_MAPATK_ROLE_NOTIFICATIONATK_ROLE_INFO_BARATK_ROLE_LEVEL_BARATK_ROLE_TITLE_BARATK_ROLE_BLOCK_QUOTEATK_ROLE_AUDIOATK_ROLE_VIDEOATK_ROLE_DEFINITIONATK_ROLE_ARTICLEATK_ROLE_LANDMARKATK_ROLE_LOGATK_ROLE_MARQUEEATK_ROLE_MATHATK_ROLE_RATINGATK_ROLE_TIMERATK_ROLE_DESCRIPTION_LISTATK_ROLE_DESCRIPTION_TERMATK_ROLE_DESCRIPTION_VALUEATK_ROLE_STATICATK_ROLE_MATH_FRACTIONATK_ROLE_MATH_ROOTATK_ROLE_SUBSCRIPTATK_ROLE_SUPERSCRIPTATK_ROLE_LAST_DEFINEDAtkRolee 2yM=ATK_LAYER_INVALIDATK_LAYER_BACKGROUNDATK_LAYER_CANVASATK_LAYER_WIDGETATK_LAYER_MDIATK_LAYER_POPUPATK_LAYER_OVERLAYATK_LAYER_WINDOWAtkLayer<AtkObjectp=_AtkObject$>parent description  name accessible_parentW>role<relation_set]>layerM= AtkRelationSet> _AtkRelationSet+W> parent- relations/o ^=> 1>GTK_WIDGET_HELP_TOOLTIPGTK_WIDGET_HELP_WHATS_THISGtkWidgetHelpType4c>GtkWidgetPrivateB> _GtkWidgetPrivateGtkWidgetClassC>!_GtkWidgetClasskG m5 activate_signalqDdispatch_child_properties_changedtHHdestroyy*HLshowz*HPshow_all{*HThide|*HXmap}*H\unmap~*H`realize*Hdunrealize*Hhsize_allocateFHlstate_changed\Hpstate_flags_changedrHtparent_setHxhierarchy_changedH|style_setHdirection_changedHgrab_notifyHchild_notifyHdrawIget_request_modeIget_preferred_height0Iget_preferred_width_for_heightPIget_preferred_width0Iget_preferred_height_for_widthPImnemonic_activatejIgrab_focus*HfocusImove_focusIkeynav_failedIeventIbutton_press_eventIbutton_release_eventIscroll_eventImotion_notify_eventJdelete_event4Jdestroy_event4Jkey_press_eventTJkey_release_eventTJenter_notify_eventtJleave_notify_eventtJconfigure_eventJfocus_in_eventJfocus_out_eventJmap_event4Junmap_event4Jproperty_notify_eventJ"selection_clear_eventJ"selection_request_eventJ"selection_notify_eventJ"proximity_in_eventK "proximity_out_eventK"visibility_notify_event4K"window_state_eventTK"damage_eventtK"grab_broken_eventK "selection_getK$"selection_receivedK("drag_beginK,"drag_endK0"drag_data_getL4"drag_data_deleteK8"drag_leave+L<"drag_motionTL@"drag_drop TLD"drag_data_receivedLH"drag_failedLL"popup_menuLP"show_help$LT"get_accessible)LX"screen_changed+L\"can_activate_accel-M`"composited_changed1*Hd"query_tooltip3EMh"compute_expand9`Ml"adjust_size_request=Mp"adjust_size_allocationAMt"style_updatedH*Hx"touch_eventJM|"get_preferred_height_and_baseline_for_widthMM"adjust_baseline_requestS0I"adjust_baseline_allocationV N"queue_draw_regionX+N#j ]1N# `,# a,GtkWidgetClassPrivateDG _GtkWidgetClassPrivateGtkAllocationTUGtkCallback^GGGG`1>HG@ H*HGH@HG@HG0H\HG}-LHrHGK0bHHGGxHHGH0HHGm,HHGhHHGsHhIG#H.IGI0IGIPIG\6IhjIGhVIhIG,pIIG,IhIGIhIGIIhIGInIhJGJIh.JG.JJhNJGNJQ:JhnJGnJZJhJGJszJhJGJ-JhJGJJhJGJJhKGKJh.KG.KKhNKGNK:KhnKGnKZKhKGKzKKGK0KKGKKKG'KLG'KK+LG'LhTLG'\\1LLG'\\KZLhLG'K.LhLGLhLG>LW>LGLLG+LhMGMh?MG\\h?MA1M`MGr r KMMG,fMMG,MhMGMMMG\M NGM NG N&N/NG1GtkContainer.QN _GtkContainer2N 4`1j 7PGtkContainerPrivate/N _GtkContainerPrivateGtkContainerClass0N$_GtkContainerClassKP M>%addQP%removeSP%check_resizeUP%forallVP%set_focus_childZP%child_type\P%composite_name]Q%set_child_property_;Q%get_child_propertyd`Q%get_path_for_childiQ&_handle_border_widtho%_gtk_reserved1r,%_gtk_reserved2s,%_gtk_reserved3t,%_gtk_reserved4u,%_gtk_reserved5v,' w,' x,%_gtk_reserved8y,NPPG=NPPPPPPhGPuPPP QPGQ;QPGsQ`QPGsAQzQzQPG1fQGtkBin.Q _GtkBin2Q 4=Nj 7QGtkBinPrivate/Q _GtkBinPrivateQGtkWindowPrivate.R _GtkWindowPrivateQ rKRGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeuRGtkBox/nR _GtkBox3R 5=Nj 8RGtkBoxPrivate0R _GtkBoxPrivateRRUGtkStyleContextPrivate)R _GtkStyleContextPrivateR0GtkRange. S _GtkRange2KS 4`1j 6tSGtkRangePrivate/bS _GtkRangePrivateKSSGtkScale.S _GtkScale2S range4Sj 7SGtkScalePrivate/S _GtkScalePrivateSS`Ra0GtkRotatedBinT _GtkRotatedBin(_T =N childG & angle GtkRotatedBinClassyT$_GtkRotatedBinClassT N( g%U) gP*include_internalshh*callbackiG*callback_dataj+binl%U, ;U -. nS;U?+U/gtk_rotated_bin_removeSU) SP) TG+binV%U+was_visibleWh/gtk_rotated_bin_addCU) CP) DG+binF%U0o uGV*binu%U*anglev, WVo -. x-+__instx+__txu+__rxhWV?GV1gtk_rotated_bin_init@V2bin%U3@Zp4t4t15gtk_rotated_bin_child_type8u@W6 8P7bin:%U8@p5gtk_rotated_bin_damageh@0|W6 G9eventnK:@peW4t3@p4t04t01to_childD @X;binD%U)PxKP>yKP>xrK4Q?yrK^>cLGQ>sLfQ>wMQ>hMQ:K@prX4tP:[@qX4tP3r@(q4t`1offscreen_window_from_parent@!HY@ &'R@ ;R@ ORZRK3ZRL(@MnZ`NyZRNZSNZSNZSNZSNZSNZSNZoT:7@p[4t:G@q \4t3^@(q4t`5gtk_rotated_bin_drawh@G6_6 G9cr#Obin%UTP &'UOs:UOcYUOwlUOhUQ d^Osurface)VR G`CE@UqC@~q:@(q]4t`:@p+]4tX:@qD]4tX:_@qY]4tv:@q|]4tv4t P:@q]4tv:@q]4tv4t PC@qC@!r:*@Hr^4tv4t P4t P4t X:2@zr^4tv:J@rR^4tv4tw4t P4t P3R@r4tv:&@py^4ts:2@r^4tv:\@r^4tvC{@qC@!r:@s^4ts:@Fs_4tv4t 4t 4t X4t P3@s4ts4tvSgtk_rotated_bin_size_request`@ V`T G$VT S[VObin%U$VR` a0hOsVOcVOwVOhVP WC@Uq:@p`4t:@q)`4t:@s>`4ts3[@s4th4t0Sgtk_rotated_bin_get_preferred_heightp@$`6 G9minimum9naturalR a0h3@6_4P4RhSgtk_rotated_bin_get_preferred_width@${a6 G9minimum9naturalR a0h3@6_4P4RhSgtk_rotated_bin_size_allocate@dZc6 G6 @HObin%UWP XWOw\WOh\WOsWOcXQ8bR` a0HR GP:O@pbb4t:_@q|b4t:~@sb4tH4t0:@tb4ts:@Ftb4tPC@rt:@tb4ts4tw:@sb4ts:@tc4tsC+@Uq:6@p/c4ts3V@rt4tv4t4t u4tUgtk_rotated_bin_unrealize,@@?c6 ,GObin.%UKX:[@tc4t0Cf@u1gtk_rotated_bin_realize@(g< G>bin%UjX= G>context SXV &X?attributes'Wattributes_mask\,V X=` a000X@(dR G3@(q4t:@0ud4ts4t1:@(qd4ts4t:@se4ts:@[ue4ts:@u2e4ts:@uGe4ts:,@uce4tw4t,::@ ve4ts4tv:F@te4tv4ts:r@4ve4tv4tXKB4t@@4t s4t04t0C@Uq:@uve4tsC@v:@uf4tw4t,:@t/f4tsC@v:@vMf4tv:@4vf4tlKB4t@4t s4t04t0:G@4vf4txKB4t@4t s4t04t0:O@sf4ts:]@.wf4tw4tv:l@.wf4twCw@bwYT@@gKTXKTYKT9YKTXYNTYM UCLBX@igNUYX@gKTYKTYZTKTYL@[TM UCLBA@w404CLB4KB\@4 Y@U@WhJ`UJlUNxUZNUJZQPdh]lUK`UtZ^P[xU[U:5@UqYh4tv8G@w:@Uqyh4tsC@wYUP@_-iJUJUNUZX@* iJUKUZL@*[U:@vh4t3@w4t4ts3{@!x4t04t@4tKB_gtk_rotated_bin_get_typeAu@Nj?g_define_type_id__volatileANjСMQhi`@3@?x4tСML@W>g_define_type_idAuZX@i3+@ix4tСM:@x j4tKBC@x3@x4ts4t 4t @@4t(4t@4t0%Dgtk_rotated_bin_class_initjEklassjHwidget_classjHcontainer_classj_T>N1gtk_rotated_bin_class_intern_initA@@k2klassAaSjp@AkKvjZLp@NjZNjZ:@!y_k4t@4t04t0C@-iC@p:@Kyk4tKB3@ry4tv4tw:R@yk4ts3p@y4ts4tءM_gtk_rotated_bin_newG @lC(@-i38@ z4t0YU@@slJUJUMV)LBXP@#l[VLP@NV[N,V8[N8VK[CU@-i3o@0z4tsQlKU^[KUq[^MV)LB8@w:@wl4ts8@bzSscale_changed2@#Um9range2zS9bin3%U:@zBm4t3@U4tbdo_offscreen_window;G@o9do_widget;GXB@oObin?G[Ovbox?G[Oscale?G[P ?G[:N@zm4t0:_@uvn4tCp@z:@z/n4tKB:@4van4t LBct4t ԡM4t04t0:@!{un4t::@R{n4t14t0: @t{n4t04t 4t -DT!?4t {Gz?:@{n4tw4t0:)@{ o4tLBC0@k:^@4vNo4tw4tLB4t@4t s4t04t0:o@|co4tv:@'|o4tv4tw4t04t 04t0:@'|o4tv4ts4t14t 14t03@|4ts4tuC@UqC@[|C5@||?gtk_rotated_bin_parent_classAܡM?GtkRotatedBin_private_offsetA\ءMR 8GԡMdgtk_widget_set_has_windowepGhegtk_widget_get_typeyufgtk_widget_get_window&pGdgdk_window_invalidate_rectp&Rhgsinqgcos(qdgtk_widget_get_allocationUqG@Hfgtk_widget_get_visible`h~qGfgdk_offscreen_window_get_surface2)q&dcairo_translate+q#dcairo_rotate1q#fgdk_window_get_height!!r&fgdk_window_get_widthHr&dcairo_rectangle~zr#dcairo_clipr#dcairo_set_source_surfacer#)dcairo_paintr#fgtk_cairo_should_draw_windowhs#&fgtk_widget_get_style_context# SFsGhgtk_render_background8s S#hgtk_container_propagate_drawsPG#ggtk_container_get_border_widthsPdgtk_widget_get_preferred_sizetGSSfgtk_widget_get_realizedrhFtGdgtk_widget_size_allocatertG@Hdgdk_window_move_resize)t&\\\\dgtk_widget_set_allocationtGttGdgdk_window_set_user_data?u&dgdk_window_destroy0u&dgtk_widget_set_realizedo[uGhfgtk_widget_get_eventse\uGfgtk_widget_get_visual+uGfgtk_widget_get_parent_window&uGfgdk_window_new&v&v\'dgtk_widget_set_window4vG&fg_signal_connect_data xuv   fgtk_widget_get_screen+vGggdk_screen_get_root_window 4&v+dgtk_widget_set_parent_windowvG&dgdk_offscreen_window_set_embedder4.w&&dgtk_style_context_set_backgroundbw S&dgdk_window_showw&hg_return_if_fail_warning|wdgtk_widget_queue_resizewGdgtk_widget_unparentwGdgtk_widget_set_parent!xGGhg_loge?xSigg_once_init_enter!hbxbxhxjhg_once_init_leave!xbx%gg_intern_static_string"@xkgtk_container_get_typeufg_type_register_static_simpleu!yu>Ugg_cclosure_new = Ky  fg_signal_lookup Kryudg_signal_override_class_closure yu= fg_type_class_peek_parentydg_type_class_adjust_private_offset zfg_object_new 0zuifg_type_check_instance_is_aihbzudgdk_window_geometry_changed9z&ggtk_range_get_valuezzSggtk_window_newGzKRdgtk_window_set_screenz7N+hgtk_window_set_title!{7Nhgtk_container_set_border_widthR{Pggtk_box_newPGt{,\ggtk_scale_new_with_rangeTG{,hgtk_scale_set_draw_value^{Shggtk_button_new_with_label#bG|hgtk_container_add'|PGhgtk_box_pack_startT[|SGhhdgtk_widget_destroy||Glgtk_widget_show_allGg}oGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenoffscreen_window2.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo@ doublefloatintcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned chargint8signed charguint8agint16 short intguint16!guint32&gint64,)guint64-long long unsigned intgsize;gchar.gshort/glong0gint1gboolean2Cgulong6Lguint7gfloat9gdouble:gpointerMGPtrArray' _GPtrArray5 pdata7  len8m GData$' _GDataGSList%= _GSList'h data) next*h/C ::G_LOG_FLAG_RECURSIONG_LOG_FLAG_FATALG_LOG_LEVEL_ERRORG_LOG_LEVEL_CRITICALG_LOG_LEVEL_WARNINGG_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFOG_LOG_LEVEL_DEBUGG_LOG_LEVEL_MASK|GLogLevelFlagsHt long doubleGType~ GValue _GValue j g_type mk data zsGTypeClass_GTypeClassg_typekGTypeInstance_GTypeInstance.g_class.GClassInitFunciGInstanceInitFuncek{{G_TYPE_FLAG_ABSTRACTG_TYPE_FLAG_VALUE_ABSTRACT GTypeFlagsyy psv_int qCv_uint rmv_long s6v_ulong t_v_int64 uv_uint64 vv_float wzv_double xv_pointer y@  G_PARAM_READABLEG_PARAM_WRITABLEG_PARAM_READWRITEG_PARAM_CONSTRUCTG_PARAM_CONSTRUCT_ONLYG_PARAM_LAX_VALIDATIONG_PARAM_STATIC_NAME G_PARAM_PRIVATE G_PARAM_STATIC_NICKG_PARAM_STATIC_BLURBG_PARAM_EXPLICIT_NOTIFYG_PARAM_DEPRECATEDxGParamFlags GParamSpec  _GParamSpec( i  name Խ flags ՚ value_type k owner_type k _nick  _blurb  qdata P m param_id m$GClosure J _GClosure  c meta_marshal_nouse c n_guards c n_fnotifiers c  n_inotifiers c in_inotify c floating c derivative_flag c in_marshal c is_invalid c  marshal 9  data Ɨ notifiers h GClosureNotifyData K _GClosureNotifyData data  notify  GCallback VGClosureNotify _ # 3 3 o? c 3 mm  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags n GObject _GObject   c  qdata P_GObjectClassD < g_type_class >construct_properties Ahconstructor E set_property I get_property M dispose Q finalize R dispatch_properties_changed T< notify XR constructed \ $flags _ (pdummy bX ,GInitiallyUnowned GInitiallyUnownedClass GObjectConstructParam f _GObjectConstructParam m pspec oivalue p   mi    mi     km I  6  m6 i! R  iB h @n Ocairo_t| _cairocairo_surface_t _cairo_surface _cairo_matrix0 xx yx xy yy x0 y0(cairo_matrix_tķ cairo_pattern_t= _cairo_pattern_cairo_rectangle_intxy cairo_rectangle_int_tMy  &cairo_region_t  _cairo_regionGdkRectangleNGdkAtomV _GdkAtomGdkCursorv6 _GdkCursorGdkVisualwS _GdkVisualGdkDevicexp _GdkDeviceGdkDragContexty _GdkDragContextGdkScreen~ _GdkScreenGdkWindow _GdkWindowMGDK_EXPOSURE_MASKGDK_POINTER_MOTION_MASKGDK_POINTER_MOTION_HINT_MASKGDK_BUTTON_MOTION_MASKGDK_BUTTON1_MOTION_MASK GDK_BUTTON2_MOTION_MASKGDK_BUTTON3_MOTION_MASKGDK_BUTTON_PRESS_MASKGDK_BUTTON_RELEASE_MASKGDK_KEY_PRESS_MASKGDK_KEY_RELEASE_MASKGDK_ENTER_NOTIFY_MASK GDK_LEAVE_NOTIFY_MASKGDK_FOCUS_CHANGE_MASKGDK_STRUCTURE_MASKGDK_PROPERTY_CHANGE_MASKGDK_VISIBILITY_NOTIFY_MASKGDK_PROXIMITY_IN_MASKGDK_PROXIMITY_OUT_MASK GDK_SUBSTRUCTURE_MASKGDK_SCROLL_MASKGDK_TOUCH_MASKGDK_SMOOTH_SCROLL_MASKGDK_ALL_EVENTS_MASKGdkEventAny{`_GdkEventAny #"U' rGdkEventExpose|_GdkEventExpose$"#"U'rarea  region!'count"C GdkEventVisibility}<_GdkEventVisibility4#6"U7'8r9L# GdkEventMotion~_GdkEventMotion@T[#V"UW'XrY xZy[axes\' ]m$is_hint^(\_',`0`8GdkEventButtonq_GdkEventButton@'#"U'r xyaxes' m$buttonm(\',08GdkEventTouch<_GdkEventTouchH#"U'r xyaxes' m$sequence'(emulating_pointerO,\'08@GdkEventScroll$_GdkEventScrollP#"U'r xym direction #$\ '( 0 8delta_x @delta_y HGdkEventKey_GdkEventKey(/#1"U2'3r4 5mkeyval6mlength7Cstring8hardware_keycode9 group:"is_modifier;m$GdkEventFocus_GdkEventFocus s.#u"Uv'wrinx GdkEventCrossingF_GdkEventCrossingHX#Z"U['\rsubwindow]' ^x_y` a(b0modec}%8detaild}$<focuseO@fmDGdkEventConfigure,_GdkEventConfigure#"U'rxC yCCCGdkEventProperty_GdkEventProperty##"U'ratom mGdkEventSelection<_GdkEventSelection #"U'rU targetLrequestor'GdkEventOwnerChange_GdkEventOwnerChange |#"U'rowner' reason'Uselection_timeGdkEventProximity_GdkEventProximity#"U'r \'GdkEventDND_GdkEventDNDR|#S"UT'UrcontextV' XY(Y(GdkEventWindowState_GdkEventWindowState #"U'rchanged_mask & new_window_state!&GdkEventSetting$_GdkEventSetting# "U ' raction  ' name :GdkEventGrabBroken_GdkEventGrabBroken9#:"U;'<rkeyboard=O implicit>Ograb_window?'GdkEventSequence4 _GdkEventSequenceGdkEventW_GdkEventP#" anyM expose visibility" motion button[ touch' scroll key crossing. focus_change configureLU# owner_change proximity| dnd window_state| setting  grab_brokenG""GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_EVENT_LAST)GdkEventTypeOZL#GDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCUREDGdkVisibilityState^"l#GDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTHGdkScrollDirectionrg#}$GDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWNGdkNotifyType#}%GDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCHGdkCrossingMode$&GDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOWGDK_WINDOW_STATE_FOCUSEDGDK_WINDOW_STATE_TILEDGdkWindowState% 'GDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETEDGdkSettingAction&'GDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSEGdkOwnerChange$'_|GdkWindowAttr('_GdkWindowAttr8f(titlehevent_maskiCxjCyjC kClCwclassm)visualn2,window_typeo) cursorp8,$wmclass_nameq(wmclass_classr,override_redirectsO0type_hintt,4 7)GDK_INPUT_OUTPUTGDK_INPUT_ONLYGdkWindowWindowClass:( N)GDK_WINDOW_ROOTGDK_WINDOW_TOPLEVELGDK_WINDOW_CHILDGDK_WINDOW_TEMPGDK_WINDOW_FOREIGNGDK_WINDOW_OFFSCREENGDK_WINDOW_SUBSURFACEGdkWindowTypeV$) kY*GDK_WA_TITLEGDK_WA_XGDK_WA_YGDK_WA_CURSORGDK_WA_VISUAL GDK_WA_WMCLASSGDK_WA_NOREDIRGDK_WA_TYPE_HINT ,GDK_WINDOW_TYPE_HINT_NORMALGDK_WINDOW_TYPE_HINT_DIALOGGDK_WINDOW_TYPE_HINT_MENUGDK_WINDOW_TYPE_HINT_TOOLBARGDK_WINDOW_TYPE_HINT_SPLASHSCREENGDK_WINDOW_TYPE_HINT_UTILITYGDK_WINDOW_TYPE_HINT_DOCKGDK_WINDOW_TYPE_HINT_DESKTOPGDK_WINDOW_TYPE_HINT_DROPDOWN_MENUGDK_WINDOW_TYPE_HINT_POPUP_MENU GDK_WINDOW_TYPE_HINT_TOOLTIP GDK_WINDOW_TYPE_HINT_NOTIFICATION GDK_WINDOW_TYPE_HINT_COMBO GDK_WINDOW_TYPE_HINT_DND GdkWindowTypeHintY*B% ,GTK_DIR_TAB_FORWARDGTK_DIR_TAB_BACKWARDGTK_DIR_UPGTK_DIR_DOWNGTK_DIR_LEFTGTK_DIR_RIGHTGtkDirectionTypeD, -GTK_ICON_SIZE_INVALIDGTK_ICON_SIZE_MENUGTK_ICON_SIZE_SMALL_TOOLBARGTK_ICON_SIZE_LARGE_TOOLBARGTK_ICON_SIZE_BUTTONGTK_ICON_SIZE_DNDGTK_ICON_SIZE_DIALOGGtkIconSize, -GTK_TEXT_DIR_NONEGTK_TEXT_DIR_LTRGTK_TEXT_DIR_RTLGtkTextDirection-V1.GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkOrientationY-.GTK_STATE_NORMALGTK_STATE_ACTIVEGTK_STATE_PRELIGHTGTK_STATE_SELECTEDGTK_STATE_INSENSITIVEGTK_STATE_INCONSISTENTGTK_STATE_FOCUSEDGtkStateTypeH./GTK_DRAG_RESULT_SUCCESSGTK_DRAG_RESULT_NO_TARGETGTK_DRAG_RESULT_USER_CANCELLEDGTK_DRAG_RESULT_TIMEOUT_EXPIREDGTK_DRAG_RESULT_GRAB_BROKENGTK_DRAG_RESULT_ERRORGtkDragResult.(70GTK_SIZE_GROUP_NONEGTK_SIZE_GROUP_HORIZONTALGTK_SIZE_GROUP_VERTICALGTK_SIZE_GROUP_BOTHGtkSizeGroupMode-/90GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTHGTK_SIZE_REQUEST_WIDTH_FOR_HEIGHTGTK_SIZE_REQUEST_CONSTANT_SIZEGtkSizeRequestMode=P0b:2GTK_STATE_FLAG_NORMALGTK_STATE_FLAG_ACTIVEGTK_STATE_FLAG_PRELIGHTGTK_STATE_FLAG_SELECTEDGTK_STATE_FLAG_INSENSITIVEGTK_STATE_FLAG_INCONSISTENTGTK_STATE_FLAG_FOCUSED GTK_STATE_FLAG_BACKDROPGTK_STATE_FLAG_DIR_LTRGTK_STATE_FLAG_DIR_RTLGTK_STATE_FLAG_LINKGTK_STATE_FLAG_VISITEDGTK_STATE_FLAG_CHECKEDGtkStateFlagsp0GtkRequisition(f2 _GtkRequisition{2}C~CGtkSelectionData)2 _GtkSelectionDataGtkStyle+2 _GtkStyleGtkStyleContext,2 _GtkStyleContext+03 parent_object- .T GtkTooltip-B3 _GtkTooltipGtkWidget.`3 _GtkWidget3 I GtkWidgetPath/3 _GtkWidgetPathGtkWindow03 _GtkWindow53 bin7iS9S |>ATK_ROLE_INVALIDATK_ROLE_ACCEL_LABELATK_ROLE_ALERTATK_ROLE_ANIMATIONATK_ROLE_ARROWATK_ROLE_CALENDARATK_ROLE_CANVASATK_ROLE_CHECK_BOXATK_ROLE_CHECK_MENU_ITEMATK_ROLE_COLOR_CHOOSER ATK_ROLE_COLUMN_HEADER ATK_ROLE_COMBO_BOX ATK_ROLE_DATE_EDITOR ATK_ROLE_DESKTOP_ICON ATK_ROLE_DESKTOP_FRAMEATK_ROLE_DIALATK_ROLE_DIALOGATK_ROLE_DIRECTORY_PANEATK_ROLE_DRAWING_AREAATK_ROLE_FILE_CHOOSERATK_ROLE_FILLERATK_ROLE_FONT_CHOOSERATK_ROLE_FRAMEATK_ROLE_GLASS_PANEATK_ROLE_HTML_CONTAINERATK_ROLE_ICONATK_ROLE_IMAGEATK_ROLE_INTERNAL_FRAMEATK_ROLE_LABELATK_ROLE_LAYERED_PANEATK_ROLE_LISTATK_ROLE_LIST_ITEMATK_ROLE_MENU ATK_ROLE_MENU_BAR!ATK_ROLE_MENU_ITEM"ATK_ROLE_OPTION_PANE#ATK_ROLE_PAGE_TAB$ATK_ROLE_PAGE_TAB_LIST%ATK_ROLE_PANEL&ATK_ROLE_PASSWORD_TEXT'ATK_ROLE_POPUP_MENU(ATK_ROLE_PROGRESS_BAR)ATK_ROLE_PUSH_BUTTON*ATK_ROLE_RADIO_BUTTON+ATK_ROLE_RADIO_MENU_ITEM,ATK_ROLE_ROOT_PANE-ATK_ROLE_ROW_HEADER.ATK_ROLE_SCROLL_BAR/ATK_ROLE_SCROLL_PANE0ATK_ROLE_SEPARATOR1ATK_ROLE_SLIDER2ATK_ROLE_SPLIT_PANE3ATK_ROLE_SPIN_BUTTON4ATK_ROLE_STATUSBAR5ATK_ROLE_TABLE6ATK_ROLE_TABLE_CELL7ATK_ROLE_TABLE_COLUMN_HEADER8ATK_ROLE_TABLE_ROW_HEADER9ATK_ROLE_TEAR_OFF_MENU_ITEM:ATK_ROLE_TERMINAL;ATK_ROLE_TEXT<ATK_ROLE_TOGGLE_BUTTON=ATK_ROLE_TOOL_BAR>ATK_ROLE_TOOL_TIP?ATK_ROLE_TREEATK_ROLE_TREE_TABLEATK_ROLE_UNKNOWNATK_ROLE_VIEWPORTATK_ROLE_WINDOWATK_ROLE_HEADERATK_ROLE_FOOTERATK_ROLE_PARAGRAPHATK_ROLE_RULERATK_ROLE_APPLICATIONATK_ROLE_AUTOCOMPLETEATK_ROLE_EDITBARATK_ROLE_EMBEDDEDATK_ROLE_ENTRYATK_ROLE_CHARTATK_ROLE_CAPTIONATK_ROLE_DOCUMENT_FRAMEATK_ROLE_HEADINGATK_ROLE_PAGEATK_ROLE_SECTIONATK_ROLE_REDUNDANT_OBJECTATK_ROLE_FORMATK_ROLE_LINKATK_ROLE_INPUT_METHOD_WINDOWATK_ROLE_TABLE_ROWATK_ROLE_TREE_ITEMATK_ROLE_DOCUMENT_SPREADSHEETATK_ROLE_DOCUMENT_PRESENTATIONATK_ROLE_DOCUMENT_TEXTATK_ROLE_DOCUMENT_WEBATK_ROLE_DOCUMENT_EMAILATK_ROLE_COMMENTATK_ROLE_LIST_BOXATK_ROLE_GROUPINGATK_ROLE_IMAGE_MAPATK_ROLE_NOTIFICATIONATK_ROLE_INFO_BARATK_ROLE_LEVEL_BARATK_ROLE_TITLE_BARATK_ROLE_BLOCK_QUOTEATK_ROLE_AUDIOATK_ROLE_VIDEOATK_ROLE_DEFINITIONATK_ROLE_ARTICLEATK_ROLE_LANDMARKATK_ROLE_LOGATK_ROLE_MARQUEEATK_ROLE_MATHATK_ROLE_RATINGATK_ROLE_TIMERATK_ROLE_DESCRIPTION_LISTATK_ROLE_DESCRIPTION_TERMATK_ROLE_DESCRIPTION_VALUEATK_ROLE_STATICATK_ROLE_MATH_FRACTIONATK_ROLE_MATH_ROOTATK_ROLE_SUBSCRIPTATK_ROLE_SUPERSCRIPTATK_ROLE_LAST_DEFINEDAtkRolee3y0?ATK_LAYER_INVALIDATK_LAYER_BACKGROUNDATK_LAYER_CANVASATK_LAYER_WIDGETATK_LAYER_MDIATK_LAYER_POPUPATK_LAYER_OVERLAYATK_LAYER_WINDOWAtkLayer>AtkObjectS?_AtkObject$?parent description nameaccessible_parent:@role|>relation_set@@layer0? AtkRelationSet@ _AtkRelationSet+:@ parent- relations/e A?? 1@GTK_WIDGET_HELP_TOOLTIPGTK_WIDGET_HELP_WHATS_THISGtkWidgetHelpType4F@GtkWidgetPrivateB@ _GtkWidgetPrivateGtkWidgetClassC@!_GtkWidgetClasskhIcm+ activate_signalqmDdispatch_child_properties_changedtIHdestroyy JLshowz JPshow_all{ JThide| JXmap} J\unmap~ J`realize Jdunrealize Jhsize_allocate)Jlstate_changed?Jpstate_flags_changedUJtparent_setkJxhierarchy_changedkJ|style_setJdirection_changedJgrab_notifyJchild_notifyJdrawJget_request_modeJget_preferred_heightKget_preferred_width_for_height3Kget_preferred_widthKget_preferred_height_for_width3Kmnemonic_activateMKgrab_focus JfocusgKmove_focus}Kkeynav_failedgKeventKbutton_press_eventKbutton_release_eventKscroll_eventKmotion_notify_eventKdelete_eventLdestroy_eventLkey_press_event7Lkey_release_event7Lenter_notify_eventWLleave_notify_eventWLconfigure_eventwLfocus_in_eventLfocus_out_eventLmap_eventLunmap_eventLproperty_notify_eventL"selection_clear_eventL"selection_request_eventL"selection_notify_eventL"proximity_in_eventL "proximity_out_eventL"visibility_notify_eventM"window_state_event7M"damage_eventWM"grab_broken_eventwM "selection_getM$"selection_receivedM("drag_beginM,"drag_endM0"drag_data_getM4"drag_data_deleteM8"drag_leaveN<"drag_motion7N@"drag_drop 7ND"drag_data_receivedfNH"drag_failedNL"popup_menuNP"show_help$NT"get_accessible)NX"screen_changed+N\"can_activate_accel-N`"composited_changed1 Jd"query_tooltip3(Oh"compute_expand9COl"adjust_size_request=cOp"adjust_size_allocationAOt"style_updatedH Jx"touch_eventJO|"get_preferred_height_and_baseline_for_widthMO"adjust_baseline_requestSK"adjust_baseline_allocationVO"queue_draw_regionXP#]P#%`#4aGtkWidgetClassPrivateDI _GtkWidgetClassPrivateGtkAllocationTGtkCallback^IIIIO3@IIm6 I JIJ#JI#JIJ?JI./JUJI:2EJkJII[JJIJ2qJJI-JJIOJJIiJOJIJ0JIJKInnJ3KICnnKOMKIO9KOgKI,SK}KI,mKOKIKOKIK[KOKIKKOKIKKOLILMKO1LI1LLOQLIQL.=LOqLIqL]LOLIL}LOLILLOLIL#LOLIL|LOMIM"LO1MI1M|MOQMIQM=MOqMIqM]MMIMmm2}MMIMmMMI'MMI'MmmMNI'mMO7NI'CCmNfNI'CCMmm=NONI'/lNONINONI@N:@NINNI>,NONImNO"OICCO"O03NCOIs s .OcOI1.nnIOOI1.nnnniOOOIO'OOICnnnnOOInOPIP POhI3GtkContainer.4P _GtkContainer2cP4O37}RGtkContainerPrivate/~P _GtkContainerPrivateGtkContainerClass0P$_GtkContainerClassK}RcM@%addQR%removeSR%check_resizeUR%forallVR%set_focus_childZR%child_type\R%composite_name]R%set_child_property_S%get_child_propertydCS%get_path_for_childicS&_handle_border_widtho%_gtk_reserved1r%_gtk_reserved2s%_gtk_reserved3t%_gtk_reserved4u%_gtk_reserved5v'%w'4x%_gtk_reserved8ycPRRI PRRRRRROIRkRRRRRIRSRImiRCSRImi$S]S]SRI3ISGtkBin.wS _GtkBin2S4 P7SGtkBinPrivate/S _GtkBinPrivateSGtkWindowPrivate.S _GtkWindowPrivateS r.TGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeuSGtkBox/QT _GtkBox3zT5 P8TGtkBoxPrivate0T _GtkBoxPrivatezTTGtkStyleContextPrivate)T _GtkStyleContextPrivateT2GtkSizeGroup&U _GtkSizeGroup*6U, /gU GtkSizeGroupPrivate'QU _GtkSizeGroupPrivate6UTCTP2GtkMirrorBinU _GtkMirrorBinU P childI_'GtkMirrorBinClassU$_GtkMirrorBinClassVcP(to_childA_V)binA_V*B* C)x_outDeV)y_outEeVU(to_parentLV)binL_V*pM*(N)x_outOeV)y_outPeV+p*PW,*R-include_internals+O-callback,I-callback_data-.bin/_V/__FUNCTION__`Wp0._g_boolean_var_1`W@PW1gtk_mirror_bin_removeW,R,I.bin_V.was_visibleO1gtk_mirror_bin_addW,R,I.bin _V2offscreen_window_to_parent@X3_'3p3( 3CeV3LeV4bin_V5kV@6}V6V6V6V 6V2offscreen_window_from_parent@rY3U'3C3L 3peV3(eV4bin_V5V@6#V6QV6DV69V 6.V2gtk_mirror_bin_inito@Y4bino_V7'@ip8t8t19gtk_mirror_bin_child_typek0@Z3R:bin_V;F@peventQM?_@puZ8t7w@p8t08t0cr@bin_V \AU'J\B^@surface]\Cmatrix@mask{\A\D@ qD@6qD@iq? @q[8ts8tu8t 8t ?@q[8ts?J@q\8tw8t 8t 8t 333333?8t ??f@%r8\8tw8t 8t ?@Prm\8tw8t $8t ?@r\8ts8tw?@q\8ts8tu8t 8t?@r\8t 8t8t ? @rX]8tv8t 8t 8t 8t 8t$ ?@@r]8tv8t 8t 8t 8t 8t$ {Gz??n@r ^8tv8t 8t 8t 8t ?@r^^8tv8t ?8t 8t 8t ?@r^8tv8t 8t 8t 8t 8t$ ?@3s^8ts8tv7@Qs8tv?@p_8tv?@us_8ts?@us+_8tsD@iqD@s?@sR_8tv?D@s_8ts8t 8t 8t 8t 7_@;t8tv8tsEgtk_mirror_bin_size_request8p@ps`F8I\F9yU\@bin;_V\G<P2hA?=m%]D@ q?@ot[`8tv7@t8th8t0Egtk_mirror_bin_get_preferred_heightX@$a=XI>minimumYn>naturalZnG\P2h7@_8P8RhEgtk_mirror_bin_get_preferred_widthL@$a=LI>minimumMn>naturalNnGPP2h7 @_8P8RhEgtk_mirror_bin_size_allocated@@B3c=dI=4e#J@bing_V8]@whCy]@hhC]A?im]BbGzP2HG{IP?@tab8tH8t0?@tvb8ts?@tb8tP7}@+u8tw?[@dub8ts8tv?c@otb8ts?w@tb8tsD@ q?"@pc8ts7N@+u8t8t8t 8tuHgtk_mirror_bin_unrealize@?c3IIbin_V/^?@uc8t0D@u9pick_offscreen_child{'@Dd3_{'3|3 } 4bin~_V:child_areaI`IxN^Iyb^D@ q7@u8t`2gtk_mirror_bin_realizep@(g3IIbin_Vv^J4IIcontextT^KU'^:attributes'Lattributes_maskC,K?m^JP200Mp@(:eJםI7@u8t?@vUe8ts8t1?@ure8ts8t?@ote8ts?@Ave8ts?@ive8ts?@ve8ts?@ve8tw8t,?*@ve8ts8tv?6@uf8tv8ts?b@wVf8tv8tpLB8t@8t s8t08t0Dy@ q?@[wtf8tsD@w?@vf8tw8t,?@uf8tsD@w?@wf8tv?@wg8tLB8t@8t s8t08t0?7@w6g8tLB8t@8t s8t08t0??@sKg8ts?M@xgg8tw8tv?\@x|g8twDg@HxNV@@hhOV^OV%_OVE_OVd_PW_QWMBM@gP6W_M@UhOV_OV_RVOV`S@TWQWMBU@fx808MB8LBV@8 NeW@Wi6W6WPW `PWV`BhWWOW`XTWTW?%@ qh8tv;7@x?@ qh8tsD@xNW@@_i6W6WPW`Mp@*i6WOW`Sp@*TW?@wpi8t7@x8t8ts7k@y8t08t@8tLBYgtk_mirror_bin_get_type>k@j:g_define_type_id__volatile>jMB(jZ@7@%y8tMS@WIg_define_type_id>k`M Aoj7AOy8tM?@syj8tLBD@y7 Ay8ts8t 8t 0A8tL8t@8t0 (gtk_mirror_bin_class_initW+k)klassW+k[widget_classY1k[container_classZ7kU@P2gtk_mirror_bin_class_intern_init>0AOl4klass>\j`A>lOjaS`APjaPka?Azk8tP@8t08t0DAiDAp?A1zl8tLB7AXz8tv8tw?BAz3l8ts7`Az8ts8tMYgtk_mirror_bin_newuIAlDAi7(Az8t0]do_offscreen_window2I0ARp>do_widgetIMAo@binI&a@vboxI:a@hboxIXa@entryIva@applybuttonIa@backbuttonIa@groupmUa?A{wm8t0?A[wm8tDA6{?A_{m8tLB?Awm8tMB^t8t M8t08t0?A{m8t:?#A{n8t18t0D*AOl?:A{+n8t2?PA{En8t08t6DWA{?mA|ln8tMB8t4?yAF|n8tv?Aj|n8tw8tvDA|?Aj|n8tw8t\?A|n8tMBDA|?Aj|o8tw8tX?AF|o8tu?A|Do8tu8tw8t18t 18t0?AF|`o8tw8ts?(A|o8ts8tv8t08t 08t0?PA|o8ts8t\8t18t 18t07xA|8ts8tX8t08t 08t0DHA qDYA+}DuAL}:gtk_mirror_bin_parent_class>M:GtkMirrorBin_private_offset>CMGUIM_gtk_widget_set_has_windowepIO`gtk_widget_get_typeykagtk_widget_get_window'pI_gdk_window_invalidate_rect q'TOagtk_widget_get_visible`O6qIagdk_offscreen_window_get_surface2iq'agdk_window_get_height!q'_cairo_set_source_surfaceq_cairo_paintq_cairo_matrix_init rr_cairo_matrix_scale Prr_cairo_matrix_translate rr_cairo_transform4rrracairo_pattern_create_linear r_cairo_pattern_add_color_stop_rgba 3s_cairo_maskQs_cairo_pattern_destroy usagtk_cairo_should_draw_windowOs'agdk_window_get_widths'agtk_widget_get_style_context#TsIbgtk_render_background8;tTbgtk_container_propagate_drawotRIcgtk_container_get_border_widthmtR_gtk_widget_get_preferred_sizetIyUyUagtk_widget_get_realizedrOtI_gtk_widget_size_allocate+uI#J_gdk_window_move_resize)du'CCCC_gtk_widget_set_allocationuIuuI_gdk_window_set_user_data?u'_gdk_window_destroyu'_gtk_widget_get_allocationvI#J_gtk_widget_set_realizedoAvIOagtk_widget_get_eventseCivIagtk_widget_get_visual2,vIagtk_widget_get_parent_window'vIagdk_window_new'v'vC'_gtk_widget_set_windowwI'ag_signal_connect_data _[w   agtk_widget_get_screen>,wIcgdk_screen_get_root_window4'w>,_gtk_widget_set_parent_windowwI'_gdk_offscreen_window_set_embedder4x''_gtk_style_context_set_backgroundHxT'_gdk_window_showfx'bg_return_if_fail_warning|xh h h _gtk_widget_queue_resizexI_gtk_widget_unparentxI_gtk_widget_set_parentyIIbg_loge%y:dcg_once_init_enterOHyHyNyebg_once_init_leavesyHy cg_intern_static_string @yfgtk_container_get_typekag_type_register_static_simplekzkm4mKcg_cclosure_new 3 1z  ag_signal_lookup KmXzk_g_signal_override_class_closure zmk3 ag_type_class_peek_parentz_g_type_class_adjust_private_offsetznag_object_new {kdcgtk_window_newI6{.T_gtk_window_set_screen_{P>,bgtk_window_set_title{Pbgtk_container_set_border_width{Rmcgtk_box_newPI{1.Ccgtk_size_group_newAmU{70fgtk_button_new!`Icgtk_image_new_from_icon_name"IF|-bgtk_container_addj|RIbgtk_size_group_add_widgetM|mUIfgtk_entry_new#Iclibintl_gettext$:|h cgtk_button_new_with_label!bI|bgtk_box_pack_startT+}sUIOOm_gtk_widget_destroyL}Iggtk_widget_show_allIcuGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenoverlay.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demoAF͕charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64, guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong6)guint7gfloat9floatgdouble:(doublegpointerMHSGData$a_GDataT long double GType~ GValue _GValuej g_typem~ dataz GTypeClass _GTypeClass g_type~ GTypeInstance _GTypeInstanceA g_classASpv_intqv_uintrv_longsv_ulongtv_int64ukv_uint64vyv_floatwv_doublexv_pointery2XGClosureJ _GClosure,|meta_marshal_nousen_guardsn_fnotifiers n_inotifiersin_inotifyfloatingderivative_flagin_marshalis_invalid marshal data2 notifiers GClosureNotifyDataKF _GClosureNotifyData data2 notifyGCallbackVMGClosureNotify_2GM22,&G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags _GObject  g_type_instance |  qdata iGInitiallyUnowned ;GdkScreen ~_GdkScreen JGTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINEGtkAlign PGtkAdjustment "D _GtkAdjustment 6t 8 : GtkWidget . _GtkWidget GtkWindow 0 _GtkWindow5 bin79; GtkWidgetPrivateB_GtkWidgetPrivatetGtkContainer.? _GtkContainer2q widget4t7GtkContainerPrivate/_GtkContainerPrivateq+GtkBin. _GtkBin24+7 GtkBinPrivate/_GtkBinPrivateGtkWindowPrivate.( _GtkWindowPrivate rs GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeuA GtkAdjustmentPrivate - _GtkAdjustmentPrivate /GtkOverlay' _GtkOverlay+ parent-/6 GtkOverlayPrivate)" _GtkOverlayPrivate  GtkScrolledWindow-[ _GtkScrolledWindow1 35 GtkScrolledWindowPrivate. _GtkScrolledWindowPrivate B 3 GTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALGtkPolicyType do_overlay AFdo_widget window MAviewaswboverlay,bentryJblabelcA t0A t!A+A%A t  t `AYs tXMB"t t M t0 t0uA t`MBA t0!AA  t0 t0A9 tv t1 t1Ao tv ts!AAo$ ts tvAo9 ts!AA^ ts tvAy tv t2"A tv t2.A; thMB@A tv t2PA tv t2\A ts tvlAZ tv tD|A4 tv tDAO tv t5Aj tv t5!AA tv t1A tv t2A ts tvA; thMBA tv t1A tv t2 A/ ts tvAZJ tv tD)Ae tv tD9A tv t5IA tv t5!NA`A tv t2pA tv t1|A ts tvA; thMBA) tv t2AD tv t1A` ts tvAZ{ tv tDA tv tDA tv t5A tv t5!A A tv t1A  tv t1)A' ts tv5A;? thMBGAZ tv t1WAu tv t1cA ts tvsAZ tv tDA tv tDA tv t5A tv t5!AA! tv t2A< tv t3AX ts tvA;p thMBA tv t2A tv t3A ts tv AZ tv tD0A tv tD@A tv t5PA. tv t5!UAgAR tv t1wAm tv t3A ts tvA; thMBA tv t1A tv t3A ts tvAZ tv tDA) tv tDAD tv t5A_ tv t5! A A tv t3$ A tv t10 A ts tv< A; thMBN A tv t3^ A tv t1j A$ ts tvz AZ? tv tD AZ tv tD Au tv t5 A tv t5! A A tv t3 A tv t2 A ts tv A; thMB A tv t3 A9 tv t2 AU ts tv' AZp tv t:7 A tv t:G A tv t5W A tv t5!\ An A tv t3~ A tv t3 A ts tv A;4 thMB AO tv t3 Aj tv t3 A ts tv# A ts!A5!A^!A$gtk_window_news %gtk_widget_get_screen>k_window_set_screen%%>k_window_set_default_sizeY%%g_signal_connect_data2B2&'gtk_window_set_title%B'gtk_container_set_border_width(gtk_text_view_new$gtk_scrolled_window_new9  'gtk_scrolled_window_set_policyo 3 3 'gtk_container_add(gtk_overlay_newR(gtk_entry_new'gtk_overlay_add_overlayT< >k_widget_set_halign;>k_widget_set_valignB;$gtk_label_new]ZB>k_widget_set_margin_startQ>k_widget_set_margin_endV>k_widget_set_margin_top[>k_widget_set_margin_bottom`>k_widget_show_all5%gtk_widget_get_visible`^>k_widget_destroy)gtk_widget_show2wGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenpanes.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo Acharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64, guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong6'guint7gfloat9floatgdouble:&doublegpointerMFQGData$__GDataR long double GType~ GValue _GValuej g_typem| dataz GTypeClass _GTypeClass g_type| GTypeInstance _GTypeInstance? g_class?Qpv_intqv_uintrv_longsv_ulongtv_int64uiv_uint64vwv_floatwv_doublexv_pointery0VGClosureJ _GClosure*meta_marshal_nousen_guardsn_fnotifiers n_inotifiersin_inotifyfloatingderivative_flagin_marshalis_invalid marshal data0 notifiers GClosureNotifyDataKD _GClosureNotifyData} data0 notifyGCallbackVKGClosureNotify_0EK00*$G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags _GObject } g_type_instance   qdata gGInitiallyUnowned 9GdkScreen ~_GdkScreen VGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientation Y ~GTK_SHADOW_NONEGTK_SHADOW_INGTK_SHADOW_OUTGTK_SHADOW_ETCHED_INGTK_SHADOW_ETCHED_OUT GtkShadowType GtkWidget . _GtkWidget  parent_instance } K GtkWindow 0 _GtkWindow5 bin79d GtkWidgetPrivate B2_GtkWidgetPrivateGtkContainer.k _GtkContainer247GtkContainerPrivate/_GtkContainerPrivateWGtkBin. _GtkBin2 4W73 GtkBinPrivate/# _GtkBinPrivate GtkWindowPrivate.Q _GtkWindowPrivate9 r GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeuj GtkBox/ _GtkBox3 5W8 GtkBoxPrivate0 _GtkBoxPrivate GtkFrame.# _GtkFrame2N bin47w GtkFramePrivate/e _GtkFramePrivateN  GtkButton. _GtkButton2 bin57 GtkButtonPrivate/ _GtkButtonPrivate GtkToggleButton- _GtkToggleButton 1= button4 6t GtkToggleButtonPrivate.[ _GtkToggleButtonPrivate=  GtkGrid( _GtkGrid, /W1 GtkGridPrivate) _GtkGridPrivate GtkPaned, _GtkPaned0! 2W5J GtkPanedPrivate.8 _GtkPanedPrivate!    toggle_resize A EchildEparentEcpanedP cd resizeh shrinkl! A "ts! A "tv!2 A@a "tv"ts"t{MB"t h"ttMB"tl"t0!: Apv "ts!F A "tv"ts!m A "tv"ts!u A "ts# A$ A"tstoggle_shrink- AZ-Echild.Eparent0Exdpaned1P xd2d resize3h shrink3l! A"ts! A"tv! A@"tv"ts"t{MB"t h"ttMB"tl"t0! Ap"ts! A"tv"ts!- A*"tv"ts!5 A?"ts#E A$M A"ts%create_pane_optionsIE` ApanedIP frame_labelJ@label1K@label2L@ child1NE echild2NEeframeOE%Ag&t@NB%A*&t0%-A\&tHNB0t&t PM&t0&t0'aA%A&t0&t0&t8'A!%A&tNB&tA&t 0&t0&t0'A=( Aa&tPA&t0&t 0'VA'gA'~A'A9!'$image_names:`OB$window#0 PM$frame&Z LM$background)Z HM$back_width*DM$back_height*@MZ '$images- M$da00 M$start_time[M1gdk_pixbuf_compositejTTZ Z72gdk_pixbuf_get_widthT2gdk_pixbuf_get_heightT2cos2floor2sin2gdk_rectangle_intersect( I I T 3gdk_pixbuf_copy_areafTZ 2gdk_frame_clock_get_frame_timeO3gtk_widget_queue_draw0 1gdk_cairo_set_source_pixbuf+TAA3cairo_paint  4gdk_pixbuf_new_from_resourceZ @9 2gtk_message_dialog_newc0 }r 3 f  51g_error_freeD4g_signal_connect_data P P13gtk_widget_show0 2gtk_window_new0  4gtk_widget_get_screen>0 3gtk_window_set_screengr 1gtk_window_set_titler 1gtk_window_set_resizabler 3gtk_widget_set_size_request0 2gdk_pixbuf_newZ !"6gtk_drawing_area_newH0 1gtk_container_adda 0 4gtk_widget_add_tick_callback4&0 6 P`4gtk_widget_get_visible`0 3gtk_widget_destroy0 3g_object_unref P7gtk_widget_show_all0 e4GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenpopover.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demoA&charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned chargint8bsigned charguint8Dgint16 short intguint16!guint32&gint64, guint64-long long unsigned intgsize;gchar.gshort/glong0gint1gboolean2&gulong6/guint7gfloat9kfloatgdouble:doublegpointerMGQuark$GError*_GError ,domain.code/&message0  GData$ _GData) long double GType~ GValuea_GValuejg_typemDdataz GTypeClass _GTypeClass g_typeD GTypeInstance _GTypeInstance g_classRRpv_intq&v_uintrPv_longsv_ulongtBv_int64uv_uint64vv_floatw]v_doublextv_pointery#GClosure J_GClosure ] meta_marshal_nouse n_guards n_fnotifiers  n_inotifiers in_inotify floating derivative_flag in_marshal is_invalid marshal data ƍnotifiers ȷ GClosureNotifyData K _GClosureNotifyData Edata notify VGCallback VGClosureNotify _lr PP G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject _GObject Tg_type_instance ] qdata /GInitiallyUnowned  _cairo_rectangle_int  x  y  width  height  cairo_rectangle_int_t s cairo_region_t  _cairo_regionGdkRectangle NGdkAtom V.4 _GdkAtomGdkDevice xO _GdkDeviceGdkDragContext yq _GdkDragContextGdkWindow  _GdkWindowGdkEventAny{ _GdkEventAny )F; UGdkEventExpose| _GdkEventExpose$t )F;U area   region! count"& GdkEventVisibility} _GdkEventVisibility4 6)F7;8Ur9 GdkEventMotion~ _GdkEventMotion@T V)FW;XU6Y xZt y[t axes\ r]P$ is_hint^(_,*`t0x`t8GdkEventButton _GdkEventButton@v )F;U6 xt yt axes rP$P(,*t0xt8GdkEventTouch _GdkEventTouchH] )F;U6 xt yt axes rP$ sequence( emulating_pointer2,0*t8xt@GdkEventScrolls _GdkEventScrollP@ )F;U6 xt ytrP direction $ (* t0x t8 delta_x t@ delta_y tHGdkEventKeyS _GdkEventKey(/1)F2;3U64 r5P keyval6P length7& string8 hardware_keycode9 group:q"is_modifier;P$GdkEventFocus1 _GdkEventFocus s}u)Fv;wU inx GdkEventCrossing _GdkEventCrossingHXbZ)F[;\U subwindow] 6^ x_t y`t *at(xbt0 modec8 detaild< focuse2@rfPDGdkEventConfigure{ _GdkEventConfigure)F;U x& y& width& height&GdkEventProperty  _GdkEventPropertyw)F;U atom 6rPGdkEventSelection _GdkEventSelection )F;U  target6 requestorGdkEventOwnerChange9 _GdkEventOwnerChange )F;U owner reason 6 selection_timeGdkEventProximity _GdkEventProximityG)F;U6 GdkEventDNDZ _GdkEventDNDRS)FT;UU contextV 6X*Y xY GdkEventWindowState _GdkEventWindowStatea)F;U changed_mask  new_window_state!GdkEventSettingx _GdkEventSetting )F ; U action \ name GdkEventGrabBroken _GdkEventGrabBroken9p:)F;;<U keyboard=2 implicit>2 grab_window?GdkEventSequence _GdkEventSequenceGdkEvent_GdkEventP)anyexposevisibilityt motion  touchv scroll] key@ crossing}focus_changeconfigureb wowner_changeproximitydndGwindow_statesettingagrab_broken")GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_EVENT_LAST) GdkEventTypeOZGDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCURED GdkVisibilityState^>lGDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTH GdkScrollDirectionrGDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWN GdkNotifyType8GDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCH GdkCrossingModeGDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOWGDK_WINDOW_STATE_FOCUSEDGDK_WINDOW_STATE_TILED GdkWindowState\GDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETED GdkSettingActionGDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSE GdkOwnerChangeut>p[VMGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientationY uGTK_POS_LEFTGTK_POS_RIGHTGTK_POS_TOPGTK_POS_BOTTOM GtkPositionTypezdGtkBuilder#_GtkBuilder[M]1_! GtkWidget._GtkWidget@MT1 GtkWidgetPrivateB^ _GtkWidgetPrivateGtkAllocationT FqGtkContainer._GtkContainer2417 GtkContainerPrivate/ _GtkContainerPrivateGtkBin.& _GtkBin2U container417z GtkBinPrivate/j _GtkBinPrivateU r GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu    A!GTK_ENTRY_ICON_PRIMARYGTK_ENTRY_ICON_SECONDARYGtkEntryIconPositionD GtkEntryFA!_GtkEntryJl!MM1O!GtkEntryPrivateG! _GtkEntryPrivatel!1!GtkBuilderPrivate)! _GtkBuilderPrivate!GtkButton.!_GtkButton2"bin5 17<"GtkButtonPrivate/)" _GtkButtonPrivate"GtkCalendar1U"_GtkCalendarb"d1f"GtkCalendarPrivate4" _GtkCalendarPrivateB""GtkToggleButton-"_GtkToggleButton 1#4!16>#GtkToggleButtonPrivate.%# _GtkToggleButtonPrivate#"GtkPopover$\#_GtkPopover(#M* 1.#GtkPopoverPrivate&# _GtkPopoverPrivate#J# entry_size_allocate_cbA5$!entryA!"gB"C#popover_posE!$"F##rectG%create_complex_popover#$!parent#!pos$$"&$F&#content&#builder'@&entry_icon_press_cbTAW%'entryT!'icon_posU!'eventV(W )"Y!j*rectZP+'A-M%,ts,tv,tu+3A.i%,tw,tu+;AM.~%,tw-OAk.,ts,tOB,tv&toggle_changed_cb `A%&( D#(" +tA.%,t.A./create_popoverAM&0parent@j0childaj0posj)"j+A.{&,tP+A/&,ts,tw+A9/&,ts,tv+A]/&,ts,t6-AM.,tv&day_selected_cbeA('calendare"(f*recthP1giq`)"jj2eventkk3A/+'A/',ts,ts+;A/',t,t`3A0+A&',P,Q3+A.',tv,tP+AM.',tv-A+0,ts4#AS(5#5#5#6 $7$4k6($8A8(9#Sk9#gk9#zk:A87 $k6$;($`+AH0(,t,tOB+ A-(,t,tv- A.,ts,tv-Aq0,tsf$9X$3l:h!A7q$Ql7|$ol7$l7$l3m!A0+!A0),ts,t PB,t0+!A0*,ts,tPB+!A1*,t\+!A91.*,tu+!AX1C*,tu+!A1X*,tu+!A1n*,t\+!A1*,ts+!A&*,Pv,Ru,Q3+!A1*,tu+"A1*,ts,t,t +"A2*,ts,t1+%"AC2+,ts,t:+5"Ar2++,ts,t:-E"A2,ts,t:38 A23I A13e A2+~ A3s+,t0+ A:3+,t1,tH+ A]/+,tw,tH+ A9/+,tw+ A\3+,tOB?t,t `M,t0,t0+ A3,,tOB+ !A3,,tOB+!A&8,,Ps,Q2+)!A3S,,tv,t0+U!A\3,,ts,tPB,t`A,t v,t0,t0+a!A9/,,tw,ts3f!A0+]"A4,,tv,t0,t$PB+u"A4,,tv,t1,t.PB+"A\3:-,tv,t9PB,tA,t s,t0,t0+"A\3v-,tv,tDPB,tA,t s,t0,t0+"A9/-,tw,tv3"AP4+#A\3-,ts,tRPB,tA,t 0,t0,t0-#A9/,tw,ts@gtk_entry_get_icon_area.!! Agtk_popover_set_pointing_toNM.# @gtk_widget_showk.@g_object_set_data *.mBgtk_toggle_button_get_activeY2.D#@gtk_widget_set_visible].2Bgtk_popover_newA/Agtk_popover_set_positionT9/#Agtk_container_add]/ Agtk_container_set_border_width/ PCgtk_get_current_event@gdk_window_coords_to_parent1/tt@gtk_widget_get_allocation0Cgtk_entry_new@gdk_event_freeH0Dg_object_get_data 'q0mDgtk_widget_is_visibleb20Cgtk_builder_neww@Bgtk_builder_add_from_resource~P0@#Bgtk_builder_get_objectm1@Bgtk_bin_get_childP91#Dg_object_ref X1Dgtk_widget_get_parent1Agtk_container_remove1 @gtk_widget_destroy1@g_object_unref 1@gtk_widget_set_size_request2&&@gtk_widget_set_vexpandC22@gtk_widget_set_margin_startQr2&@gtk_widget_set_margin_endV2&@gtk_widget_set_margin_bottom`2&Dgtk_widget_get_visible`22@gtk_widget_show_all3Bgtk_window_new:3 Bgtk_box_newP\3M&Dg_signal_connect_data B3EVBgtk_toggle_button_new_with_labelM3Bgtk_label_new]3Agtk_popover_set_modalZ4#2@gtk_entry_set_icon_from_icon_nameDP4!!Cgtk_calendar_new!GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenprinting.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo0#Aodoublefloatintcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charlong long unsigned int long doublesigned charshort intguint32&gint64, guint64-igsize;gchar.glong0gint1gboolean2gulong6Cguint7gfloat9gdouble:gpointerMgconstpointerNGBytes$_GBytesGQuark$GError* _GError , domain. code/ message0 GData$#_GData7 GType~ GValuel _GValue j g_type mO  z GTypeClass_GTypeClassg_typeO GTypeInstance_GTypeInstanceg_class]#] pv_int qv_uint r8v_long sv_ulong t*v_int64 uv_uint64 vv_float wEv_double xSv_pointer yb(7GClosure J _GClosure  meta_marshal_nouse n_guards n_fnotifiers  n_inotifiers in_inotify floating derivative_flag in_marshal is_invalid  marshal   b notifiers ȿ GClosureNotifyData K _GClosureNotifyData M  b notify ^GCallback VGClosureNotify _tzb8bb8 G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject  _GObject \ g_type_instance    qdata =GInitiallyUnowned  G_RESOURCE_LOOKUP_FLAGS_NONE GResourceLookupFlags uPangoFontDescription(_PangoFontDescriptionPangoLayout _PangoLayoutZ|PANGO_ELLIPSIZE_NONEPANGO_ELLIPSIZE_STARTPANGO_ELLIPSIZE_MIDDLEPANGO_ELLIPSIZE_ENDPangoEllipsizeMode_cairo_t|_cairo+ GTK_MESSAGE_INFOGTK_MESSAGE_WARNINGGTK_MESSAGE_QUESTIONGTK_MESSAGE_ERRORGTK_MESSAGE_OTHER GtkMessageType GTK_UNIT_NONEGTK_UNIT_POINTSGTK_UNIT_INCHGTK_UNIT_MM GtkUnitB GtkWidget. _GtkWidget \ privI GtkWindow0 _GtkWindow5 bin7 priv9g GtkWidgetPrivateB0 _GtkWidgetPrivate   GtkContainer.i _GtkContainer2 widget4 priv7 GtkContainerPrivate/ _GtkContainerPrivate GtkBin. _GtkBin2 container4U priv76 GtkBinPrivate/& _GtkBinPrivate GtkWindowPrivate.T _GtkWindowPrivate< 2 GTK_DIALOG_MODALGTK_DIALOG_DESTROY_WITH_PARENTGTK_DIALOG_USE_HEADER_BARGtkDialogFlags6m V_ GTK_BUTTONS_NONEGTK_BUTTONS_OKGTK_BUTTONS_CLOSEGTK_BUTTONS_CANCELGTK_BUTTONS_YES_NOGTK_BUTTONS_OK_CANCELGtkButtonsType] GtkPrintContext! _GtkPrintContextGtkPrintSettings _GtkPrintSettingsu GtkPrintOperationPrivate. _GtkPrintOperationPrivateGtkPrintOperation/# _GtkPrintOperationxX z  priv} ] GTK_PRINT_OPERATION_RESULT_ERRORGTK_PRINT_OPERATION_RESULT_APPLYGTK_PRINT_OPERATION_RESULT_CANCELGTK_PRINT_OPERATION_RESULT_IN_PROGRESSGtkPrintOperationResultbX pGTK_PRINT_OPERATION_ACTION_PRINT_DIALOGGTK_PRINT_OPERATION_ACTION_PRINTGTK_PRINT_OPERATION_ACTION_PREVIEWGTK_PRINT_OPERATION_ACTION_EXPORTGtkPrintOperationActionu    \ resourcename font_sizeS lines_per_page linesC num_lines num_pagesPrintDataend_print0#A* bl B#A M#A!Z#A\draw_page8`#A}89 "page_nr:;b =l#cr>m#layout?Sm$text_width@X$text_height@\#widthASm#lineBm#iBm#descCn#page_strDEn%}#A&t%#A"&t%#AO]&ts&t &t &t&t%#A&ts&t ?&t ?&t ?%#A&ts%#A&ts&t &t &t %#A"&ts&t ?%$A7&ts%$AM&t%#$AOe&t`PB%1$A&tv&tw =$A%T$A&tv&t %h$A&tv&tw&t\%$AL&ts&t%$Ar&ts&tv%$A(&thPB&t#%$AM&tv&t&t %$Ad&t%%A&tv&t %#%A&tv&tw&t\%S%AL&ts&t@@&t %_%Ar&ts&tv%g%A &tv%v%A#&t%%AO;&tnPB%%AP&tw%%Al&tv&tw%%A&tw%%AL&ts&t &t flB@%A&A&tv&t %M&Ar&tw&tv%b&A6&tw&t %v&A+&tv%&AQ&tv&t %&A`l&tv&t1'&A&tv&tw&t\begin_print&A ben#bytes In#i!n#height"n%&A(&t 'A%F'AK&t0&t0%X'Af&tw&t0%p'A,&txPB&t0%{'AS&tw!'An(do_printingC 'A"do_widgetC o#settings=o[o$error7l)0\*__n*__s #__pb[o''A&t +!)Au#dialogC yo%P)A&tw&t2&t3&t 2&tPB ^)A%)A&ts&tPB,t&t 0&t0&t0')AS&ts 'Aq%(A&tzPB%:(AY&ts&tPB&t&A&t v&t0&t0%f(A&ts&tPB&t`#A&t v&t0&t0%(A&ts&tPB&t0#A&t v&t0&t0%(A&ts&t0%(A&ts&t1%(A "&ts&t1 (AN %(Al T&tv&tPB&tPB%(A p&ts&tv% )A &ts&t0&tw&t l%)A&ts')A&tv-g_freeEb.g_strfreevC/gtk_print_context_get_cairo_context-" /gtk_print_context_get_width2SO .cairo_rectangle~.cairo_set_source_rgb.cairo_fill_preserve.cairo_set_line_width.cairo_stroke/gtk_print_context_create_pango_layoutFO 0pango_font_description_from_string-pango_layout_set_font_description-pango_font_description_free-pango_layout_set_text-pango_layout_get_pixel_sizeL11.cairo_move_toOr-pango_cairo_show_layout/g_strdup_printfڰ1-pango_layout_set_width.g_object_unref b-pango_font_description_set_size6.cairo_rel_move_tor`-pango_layout_set_ellipsizeɍ|/gtk_print_context_get_height4S /floor/g_resources_lookup_data jI1/g_bytes_get_data!:r,I+0g_strsplit CS-g_bytes_unref!DnI-gtk_print_operation_set_n_pages/g_malloc0Nb/gtk_message_dialog_newcC O  + _ 1-g_error_freeD70g_signal_connect_data *SbMb^.gtk_widget_showqC 2gtk_print_operation_new/g_strdupذ-gtk_print_operation_set_use_full_page.gtk_print_operation_set_unit  .gtk_print_operation_set_embed_page_setup0N 2gtk_print_settings_new9-gtk_print_settings_set] -gtk_print_operation_set_print_settings 3gtk_print_operation_run O 1jGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenrevealer.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo)Afcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intguint32&gint64, guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong6*guint7gfloat9 floatgdouble:8doublegpointerMXGQuark$lGError*_GError ,domain.ccode/message0] GData$ _GData  BGSourceFuncq :G_LOG_FLAG_RECURSIONG_LOG_FLAG_FATALG_LOG_LEVEL_ERRORG_LOG_LEVEL_CRITICALG_LOG_LEVEL_WARNINGG_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFOG_LOG_LEVEL_DEBUGG_LOG_LEVEL_MASK|GLogLevelFlagsH  long doubleGType ~GValue _GValue jGg_type mdata zgGTypeClass Z_GTypeClass g_type GTypeInstance _GTypeInstance g_class G   pgv_int qv_uint rv_long sv_ulong tv_int64 u{v_uint64 vv_float wv_double x)v_pointer yBwGClosure J_GClosure  kmeta_marshal_nouse kn_guards kn_fnotifiers k n_inotifiers kin_inotify kfloating kderivative_flag kin_marshal kis_invalid kmarshal Adata Bnotifiers p GClosureNotifyData K_GClosureNotifyData data Bnotify GCallback VGClosureNotify _%+; B ;wGk ;    B B  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags vGObject _GObject g_type_instance  kqdata GInitiallyUnowned GdkScreen~= _GdkScreen,GtkBuilder#a_GtkBuilder[]priv_ GtkWidget._GtkWidget privB GtkWindow0_GtkWindow5 bin7 priv9` OGtkWidgetPrivateB) _GtkWidgetPrivate GtkContainer.b _GtkContainer2 widget4priv7 GtkContainerPrivate/ _GtkContainerPrivate GtkBin. _GtkBin2 container4N priv7/ GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate.M _GtkWindowPrivate5 GtkBuilderPrivate) _GtkBuilderPrivatef GtkRevealer% _GtkRevealer1 2  reveal_one)A dataBname]o o)A6: tQB!)AX)A^ ts t1" *A ts tQB t@*A t 0 t0 t0#change_direction @*A) $ revealedoP*A ts"d*A ts#response_cb0p*A0g dialog0< response_id1data2B!*A'%*AI&do_revealer=< *A do_widget=< 'window?< dM'err@l!*Aj!*AI+A t  t)A t0!+A!&+AC+A' t2QB tln+A/K t0 t4 tHQB+AM_ t0+AXw tSQB+A{ t!+A+A t[QB(t t dM t0 t0"&,A tcQB tp*A t 0 t0 t0'builder pM'count lM'timeouthM)g_strdup_printf]X R*)gtk_builder_get_object& R+gtk_revealer_set_reveal_childD ,g_signal_connect_data  B R  B  )gtk_revealer_get_child_revealedG' ,g_source_removeI -gtk_widget_destroyj < ,gtk_widget_get_visible` < ,g_timeout_add.   B-gtk_widget_show_all < .gtk_builder_neww )gtk_builder_add_from_resource~/ R +g_logeM R  R*+gtk_builder_connect_signals{ B,gtk_widget_get_screenI < /gtk_window_set_screen H I'GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenrotated_text.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo0,A doublefloatintcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intguint32&gint64,$guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong6Mguint7gfloat9gdouble:gpointerMgconstpointerNw}GDestroyNotifyWR  GData$ _GDatagunichar< long double GType~ GValue _GValuej:g_typemzZ GTypeClassM_GTypeClasssg_type GTypeInstance_GTypeInstanceg_class: pZv_intqv_uintr(v_longsv_ulongtv_int64uv_uint64vv_floatw5v_doublexCv_pointeryRjAGClosureJz _GClosure#\meta_marshal_nouse\n_guards\n_fnotifiers\ n_inotifiers\in_inotify\floating\derivative_flag\in_marshal\is_invalid\marshal2Rnotifiersa GClosureNotifyDataK _GClosureNotifyDataRnotifyGCallbackVGClosureNotify_,R,j8\,(RR( G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags gGObject  _GObject g_type_instance s# \qdata GInitiallyUnowned  PangoRectangle &8 _PangoRectangle x y width  PangoLanguage  _PangoLanguagePangoFontDescription ( _PangoFontDescriptionPangoFontMetrics 2 _PangoFontMetricsPangoAttributeC _PangoAttribute eklass start_index(end_index(PangoAttrClassD{_PangoAttrClasstype copy destroy equal8 PangoAttrShapeM_PangoAttrShape8_ attr-" "R,copy_func 0destroy_func~4PangoAttrListnt _PangoAttrList PANGO_ATTR_INVALIDPANGO_ATTR_LANGUAGEPANGO_ATTR_FAMILYPANGO_ATTR_STYLEPANGO_ATTR_WEIGHTPANGO_ATTR_VARIANTPANGO_ATTR_STRETCHPANGO_ATTR_SIZEPANGO_ATTR_FONT_DESCPANGO_ATTR_FOREGROUND PANGO_ATTR_BACKGROUND PANGO_ATTR_UNDERLINE PANGO_ATTR_STRIKETHROUGH PANGO_ATTR_RISE PANGO_ATTR_SHAPEPANGO_ATTR_SCALEPANGO_ATTR_FALLBACKPANGO_ATTR_LETTER_SPACINGPANGO_ATTR_UNDERLINE_COLORPANGO_ATTR_STRIKETHROUGH_COLORPANGO_ATTR_ABSOLUTE_SIZEPANGO_ATTR_GRAVITYPANGO_ATTR_GRAVITY_HINTPangoAttrType  e PangoAttrDataCopyFunc  R b         8   $ PangoContext3^ _PangoContextPangoLayout _PangoLayoutm cairo_t| _cairocairo_pattern_t _cairo_pattern  GdkScreen~ _GdkScreenPangoCairoShapeRendererFuncH$ * D    R V GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientationYJ GtkStyleContext, _GtkStyleContext+ parent_object-. GtkWidget. _GtkWidget?parent_instance GtkWindow0P _GtkWindow5|bin799GtkWidgetPrivateB _GtkWidgetPrivate |?GtkContainer. _GtkContainer264 7-GtkContainerPrivate/ _GtkContainerPrivateGtkBin.G _GtkBin2p47GtkBinPrivate/ _GtkBinPrivatepGtkWindowPrivate. _GtkWindowPrivaterGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeuGtkMisc." _GtkMisc2L64 7sGtkMiscPrivate/b _GtkMiscPrivateLGtkLabel0 _GtkLabel6misc8;GtkLabelPrivate1 _GtkLabelPrivateyGtkBox/ _GtkBox3!58FGtkBoxPrivate06 _GtkBoxPrivate!_ GtkStyleContextPrivate)p _GtkStyleContextPrivateR fancy_shape_renderer0,Acr attr do_path  R !x`!yh"U,A;8#ts#t`#th"m,AqM#ts",Ab#ts",A#ts#t ?#t #t ",A#ts",A#ts#t \#t "-A.#ts#t ?"V-ATl#ts#t ?#t \#t$ \#t, "-AT#ts#t \#t #t$ ?$-A#ts%create_fancy_attr_list_for_layout5L-AW =5 &attrs7Lo&metrics8Wp&ascent9:p'-:"@':"P&p;Xp(P&attrM p"M.A#ts"m.A#tw#tu#t 0#t0$.A/#tv"-AY#ts"-A#ts"-A#tv#t0".A)#ts)<.A& )A.AM $.Ai #ts#tpQB*rotated_text_draw^ .Ao 6^cr_  `R&contextf q+=g 6q&deschD Tq&patternj sq&attrslLq&device_radiusnq&widthoq+or&ip!r,P0Ak'!widthX'\"\0A #ts#tv"p0A #tv#tX#tu"0A#ts#t #t `"0A #ts#tv$0A!#ts#t v/?".A/!<#tv".A`!Q#tv"'/Aq~#ts#t#t "I/A#ts"g/A!#t b#t b#t #t "/A!6#tw#t #t #t #t "/A!#tw#t ?#t #t #t "/A"#ts#tw"/A6"#tv"/Ah"#tw#t0,A#t0#t 0"/A"#tw"0A" #tv#tQB#t "0A"8#ttQB"-0A/#U#tv#tL"50Aj#tv"C0Ac##tv#tw)P0A#"0A##tL"0A##tv"0A##tH$0A##tDJ %do_rotated_text 1Ado_widget,p1A&boxVr&drawing_areatr&labelr+= r&attrsLr"|1A$#t0"1A?$#t)1Ag$"1A$#t}QB"1A$#t X#t ,"2A$"#tQB-t#t tM#t0#t0"2A,%<#t0#t0"+2AN%W#tv#t1"<2Ax%l#tv)A2A%"O2Ax%#tv#ts"W2A%#ts"g2A%#tQB"2A$#ts#tQB#t.A#t 0#t0#t0"2A&#tQB"2Ax%-#tv#ts"2A5&S#ts#t F@"2A[&h#ts"2A}#tv"2Ah"#t0,A#t0#t 0"2A#tv" 3A&#ts#tv$3A##tv)61A&)G1A&)e1A&!windowtM$A .text6QB /cairo_get_current_pointk kk/cairo_translate+ /cairo_scale. /cairo_set_source_rgb /cairo_fill /cairo_move_toO. /cairo_line_toUT /cairo_curve_toX /cairo_close_path 0 I ♥ GTK+1g_utf8_get_char1pango_attr_shape_new_with_data $$$R ~* "/pango_attr_list_insertYL 2pango_layout_get_font_description  2pango_layout_get_context 2pango_context_get_metricsCW> 1pango_font_metrics_get_ascent & W/pango_font_metrics_unref M W3pango_attr_list_newL2strstrV5 4pango_cairo_update_layout   4pango_layout_get_pixel_size  ;;4pango_cairo_show_layout!  /cairo_rotate1/! 1gtk_widget_get_allocated_width`!1gtk_widget_get_allocated_height!1cairo_pattern_create_linear !/cairo_pattern_add_color_stop_rgb " /cairo_set_source6"  1gtk_widget_create_pango_contexth"4pango_cairo_context_set_shape_renderert" R~2pango_layout_new "4pango_layout_set_text" 1pango_font_description_from_string D /#4pango_layout_set_font_descriptionc# 4pango_layout_set_attributes# L/pango_attr_list_unref#L4pango_font_description_free #D /g_object_unref #R/cairo_pattern_destroy $ 2gtk_window_new?$1gtk_widget_get_screenD g$/gtk_window_set_screen$D 4gtk_window_set_title$/gtk_window_set_default_size$1g_signal_connect_data ,%RR2gtk_box_newPN% 4gtk_box_set_homogeneousax% 4gtk_container_add%35gtk_drawing_area_new H1gtk_widget_get_style_context#%/gtk_style_context_add_class&2gtk_label_new]5&4gtk_label_set_angle[&C2gtk_label_get_layoutĎ &4gtk_label_set_attributesf&L1gtk_widget_get_visible` &/gtk_widget_destroy&6gtk_widget_show_all}*GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddensearch_entry.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo 3Addoublecharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned chargint8qsigned charshort intguint16!guint32&gint64,guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2 gulong6>guint7gfloat9Pfloatgdouble:gpointerMGDestroyNotifyWh GData$ _GData hGSourceFunc  long double GType~ GValue& _GValuejRg_typem qzr GTypeClasse_GTypeClassg_type  GTypeInstance_GTypeInstanceg_classRprv_intq v_uintr5v_longsv_ulongt'v_int64uv_uint64vv_floatwBv_doublexYv_pointeryh2GClosureJ _GClosure}tmeta_marshal_nousetn_guardstn_fnotifierst n_inotifierstin_inotifytfloatingtderivative_flagtin_marshaltis_invalidtmarshalJqhnotifiersy GClosureNotifyDataK _GClosureNotifyDataqhnotifyGCallbackVGClosureNotify_.4DhDPtD5hh5 G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags  _GObject g_type_instance } tqdata GInitiallyUnowned &GdkDevice xB _GdkDeviceGdkWindow _ _GdkWindowGdkEventButton _GdkEventButton@ Htype r v  send_event dtime  x Yy Yaxes  state 5$[ 5(device  ,x_root Y0y_root Y8 "r GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_EVENT_LAST) GdkEventType OHNY1 V GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientation Y GtkWidget. _GtkWidget/ Kl GtkWindow0@ _GtkWindow5l bin7/ l9 GtkWidgetPrivateB _GtkWidgetPrivate l k/ GtkContainer. _GtkContainer2 D4 l7# GtkContainerPrivate/ _GtkContainerPrivate  GtkBin.= _GtkBin2f b4 l7 GtkBinPrivate/{ _GtkBinPrivatef GtkWindowPrivate. _GtkWindowPrivate 2GTK_DIALOG_MODALGTK_DIALOG_DESTROY_WITH_PARENTGTK_DIALOG_USE_HEADER_BARGtkDialogFlags6 L!GTK_RESPONSE_NONEGTK_RESPONSE_REJECT~GTK_RESPONSE_ACCEPT}GTK_RESPONSE_DELETE_EVENT|GTK_RESPONSE_OK{GTK_RESPONSE_CANCELzGTK_RESPONSE_CLOSEyGTK_RESPONSE_YESxGTK_RESPONSE_NOwGTK_RESPONSE_APPLYvGTK_RESPONSE_HELPuGtkDialogc2 _GtkDialog m^vo/ lrGtkDialogPrivatedv _GtkDialogPrivate^!GtkMisc. _GtkMisc2D4 l7GtkMiscPrivate/ _GtkMiscPrivateGtkMenuShell. _GtkMenuShell2>b4 l7oGtkMenuShellPrivate0Y _GtkMenuShellPrivate>GtkMenu/ _GtkMenuomenu_shellqltWGtkMenuPrivate1 _GtkMenuPrivateGtkMenuPositionFunc^""+h{GtkMenuDetachFunclAGW "GtkLabel0m _GtkLabel6misc8l;GtkLabelPrivate1 _GtkLabelPrivate]GtkBox/ _GtkBox3b5 l8*GtkBoxPrivate0 _GtkBoxPrivateAmGTK_ENTRY_ICON_PRIMARYGTK_ENTRY_ICON_SECONDARYGtkEntryIconPositionD0GtkEntryF _GtkEntryJKM lOGtkEntryPrivateG _GtkEntryPrivateGtkButton.  _GtkButton26bin5/ l7aGtkButtonPrivate/N _GtkButtonPrivate6GtkMenuItem- _GtkMenuItem1bin3/ l6GtkMenuItemPrivate/ _GtkMenuItemPrivatemGtkNotebook5 _GtkNotebook9*b< l>YGtkNotebookPrivate6D _GtkNotebookPrivate*icon_press_cbposition event qh show_find_button show_cancel_button!search_by_filem 3A5M"itemm #n$@3A#C%ts%t0%tQB&U3A#!search_by_descriptiona`3A5"itema #b$3A#%ts%t0%t4A^#[>g#?*4AA'4AI$%t1$4Ay$%t1%t 5A%t'4Ay$%t?%t@4A%t!activate_cb5AT+r+[g s&5Ah)start_search_feedback5 5A:#q5h'O5A$%t0%td%t5A%t %t`5A!search_progress_done%`5A#%'u5A$%t%t )search_progress5A_#qh'5A%%t,k5AN---- .5A;/*s/>s/Rs/fs'5A>%%t0%t0%t 0%t00create_search_menux 5A#x 1menuz s1item{ s(5Ax%$ 6A%Z%tRB$;6A%%tw%tRB%t3A%t v%t0%t0$G6A%%ts%tw$S6A%%tRB$6A%%tw%tRB%t`3A%t v%t0%t0$6A%"%ts%tw$6A%:%tRB$6A%v%tw%tRB%t 3A%t v%t0%t0$6A%%ts%tw'6A&&%ts!entry_populate_popup6A#"menu""user_datah1item s1search_menu Nt1has_textlt$7AH&K%tw(7As&$7A&i%ts$$7A%%tv%ts$07A%%tSB$:7A&%ts$f7A%%ts%tRB%t3A%t w%t0%t2$r7A% %tv%ts$7A&%ts$7A4%tw$7A&L%t SB$7A&a%ts$7A'}%ts%tw&7A%0do_search_entryӗ 7A5!#"do_widgetӗ 1content_area՗ t1vbox֗ t1hboxח t1labelؗ t2ٗ u2[ڗ 2u1find_buttonۗ Eu1cancel_buttonܗ cu(7A:'(7Ac'(8Ac'(-8A&&$L8A'%tSB$|8A'%tSB%t%t0%t %t0$8A'%t0$8A%%t(SB3t%t 0%t0%t0$8A%@%t1SB%t4A%t M%t0%t0(9A ($9A:(c%t1%t5$D9A\(%tv%ts%t1%t 1%t0$T9A(%ts%t5$`9A(%t0$r9A(%tv%t9SB$9A\( %ts%tv%t0%t 0%t0$9A:(' %t0%t:$9A\(U %ts%tv%t1%t 1%t0$9A(p %tv%t0(9A)$ :A\( %tv%ts%t0%t 0%t0(:A#)$%:A;) %t0$::Ah) %t0$c:A\( %tv%t0%t 0%t0$o:A)!%tKSB$:A%S!%tv%tPSB%t4A%t s%t0%t0$:A)n!%tv%t0$:A&!%tv$:A)!%tXSB$:A%!%tv%tPSB%t4A%t 0%t0%t0$;A)!%tv%t0$;A&"%tv$-;A!"%t0%ts$];A%\"%ts%t_SB%t5A%t 0%t0%t0$;A%"%ts%tRB%t5A%t 0%t0%t0$;A"%ts$;A)"%ts%t0$;A%#%ts%tjSB%t6A%t 0%t0%t0$;A'*#%t (;A`*4v M5menu M5notebook M5search_progress_id5|M5finish_search_id5xM6gtk_entry_set_icon_tooltip_textm#m6gtk_entry_set_placeholder_text7$7gtk_entry_set_text'$8g_source_removeI$57gtk_notebook_set_current_pagey$_ 8g_timeout_add_seconds85$5h8g_timeout_add_full(5$ 5hx6gtk_entry_set_progress_fraction'%Y6gtk_entry_progress_pulse3>%7gtk_menu_popupx%"  h59gtk_menu_new :gtk_menu_item_new_with_mnemonicv %8g_signal_connect_data '%hh7gtk_menu_shell_append]&&u 6gtk_widget_show_allH& :gtk_entry_get_text_lengths&9gtk_separator_menu_item_newK 6gtk_widget_show& 6gtk_widget_set_sensitiveU& :gtk_menu_item_new_with_labelt '7gtk_menu_item_set_submenux:' 8gtk_widget_get_visible`c' 6gtk_widget_destroy' :libintl_gettext,' :gtk_dialog_new_with_buttons ' ;7gtk_window_set_resizable ( :gtk_dialog_get_content_areaϗ :(:gtk_box_newP \(  7gtk_box_pack_startT(e 57gtk_container_set_border_width() 5:gtk_label_new] (7gtk_label_set_markupp)9gtk_search_entry_newD 9gtk_notebook_new 7gtk_notebook_set_show_tabsh)_7gtk_notebook_set_show_borderɗ)_:gtk_button_new_with_labelb ):gtk_notebook_append_page )_  7gtk_menu_attach_to_widget'*" (:gtk_dialog_get_widget_for_response `* guint7gfloat9gdouble:doublegpointerM   GData$_GData : G_LOG_FLAG_RECURSION G_LOG_FLAG_FATAL G_LOG_LEVEL_ERROR G_LOG_LEVEL_CRITICAL G_LOG_LEVEL_WARNING G_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFO G_LOG_LEVEL_DEBUG G_LOG_LEVEL_MASK|GLogLevelFlagsH long double GType~ GValue _GValuej  g_typem dataz+ GTypeClass_GTypeClassDg_type GTypeInstanceZ_GTypeInstanceg_class p+v_intq5v_uintr_v_longs(v_ulongtQv_int64uv_uint64vv_floatwlv_doublexzv_pointery;2GClosureJK _GClosureo/meta_marshal_nouse/n_guards/n_fnotifiers/ n_inotifiers/in_inotify/floating/derivative_flag/in_marshal/is_invalid/ marshal dataƓ notifiers4 GClosureNotifyDataK _GClosureNotifyData data notifyGCallbackVGClosureNotify_; /__o  i G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags : _GObject  g_type_instance D / qdata GInitiallyUnowned ~GBinding /_GBinding  `f G_BINDING_DEFAULT G_BINDING_BIDIRECTIONAL G_BINDING_SYNC_CREATE G_BINDING_INVERT_BOOLEANGBindingFlags f_cairo_rectangle_int x y width height  cairo_rectangle_int_t  cairo_region_t  _cairo_regionGdkRectangle NGdkAtom VA G _GdkAtomGdkDevice xb _GdkDeviceGdkDragContext y _GdkDragContextGdkWindow  _GdkWindowGdkEventAny{ _GdkEventAny  < dGdkEventExpose| _GdkEventExpose$ <darea  region!count"5 GdkEventVisibility} _GdkEventVisibility4 6<78d9 GdkEventMotion~ _GdkEventMotion@T V<WXdY xZzy[zaxes\ ]_$is_hint^(_ ,`z0`z8GdkEventButton _GdkEventButton@ <d xzyzaxes _$_( ,z0z8GdkEventTouch _GdkEventTouchHp <d xzyzaxes _$sequence(emulating_pointerA, 0z8z@GdkEventScroll _GdkEventScrollPS<d xzyz_ direction 0$  ( z0 z8delta_x z@delta_y zHGdkEventKeyf_GdkEventKey(//1<23d4 5_keyval6_length75string8hardware_keycode9 group:"is_modifier;_$GdkEventFocusD_GdkEventFocus su<vwdinx GdkEventCrossing_GdkEventCrossingHXuZ<[\dsubwindow] ^x_zy`z az(bz0modec8detaild<focuseA@f_DGdkEventConfigure_GdkEventConfigure<dx5 y5width5height5GdkEventProperty_GdkEventProperty<datom2 _GdkEventSelection_GdkEventSelection 1<d2 target2 2 requestorGdkEventOwnerChangeL_GdkEventOwnerChange <downer reason2 selection_timeGdkEventProximity_GdkEventProximityZ<d  GdkEventDNDm_GdkEventDNDRS<TUdcontextV XYYGdkEventWindowState_GdkEventWindowStatet<dchanged_mask  new_window_state!GdkEventSetting_GdkEventSetting <  daction o name ,GdkEventGrabBroken_GdkEventGrabBroken9:<;<dkeyboard=A implicit>Agrab_window?GdkEventSequence_GdkEventSequenceGdkEvent_GdkEventP <any expose visibility motion  touch scrollp keyScrossingfocus_change/configureuowner_change1proximitydndZwindow_statesettingtgrab_broken"< GDK_NOTHING GDK_DELETE GDK_DESTROY GDK_EXPOSE GDK_MOTION_NOTIFY GDK_BUTTON_PRESS GDK_2BUTTON_PRESS GDK_DOUBLE_BUTTON_PRESS GDK_3BUTTON_PRESS GDK_TRIPLE_BUTTON_PRESS GDK_BUTTON_RELEASE GDK_KEY_PRESS GDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAP GDK_UNMAP GDK_PROPERTY_NOTIFY GDK_SELECTION_CLEAR GDK_SELECTION_REQUEST GDK_SELECTION_NOTIFY GDK_PROXIMITY_IN GDK_PROXIMITY_OUT GDK_DRAG_ENTER GDK_DRAG_LEAVE GDK_DRAG_MOTION GDK_DRAG_STATUS GDK_DROP_START GDK_DROP_FINISHED GDK_CLIENT_EVENT GDK_VISIBILITY_NOTIFY GDK_SCROLL GDK_WINDOW_STATE GDK_SETTING! GDK_OWNER_CHANGE" GDK_GRAB_BROKEN# GDK_DAMAGE$ GDK_TOUCH_BEGIN% GDK_TOUCH_UPDATE& GDK_TOUCH_END' GDK_TOUCH_CANCEL( GDK_EVENT_LAST) GdkEventTypeOZ GDK_VISIBILITY_UNOBSCURED GDK_VISIBILITY_PARTIAL GDK_VISIBILITY_FULLY_OBSCURED GdkVisibilityState^Ql0 GDK_SCROLL_UP GDK_SCROLL_DOWN GDK_SCROLL_LEFT GDK_SCROLL_RIGHT GDK_SCROLL_SMOOTH GdkScrollDirectionr GDK_NOTIFY_ANCESTOR GDK_NOTIFY_VIRTUAL GDK_NOTIFY_INFERIOR GDK_NOTIFY_NONLINEAR GDK_NOTIFY_NONLINEAR_VIRTUAL GDK_NOTIFY_UNKNOWN GdkNotifyTypeK GDK_CROSSING_NORMAL GDK_CROSSING_GRAB GDK_CROSSING_UNGRAB GDK_CROSSING_GTK_GRAB GDK_CROSSING_GTK_UNGRAB GDK_CROSSING_STATE_CHANGED GDK_CROSSING_TOUCH_BEGIN GDK_CROSSING_TOUCH_END GDK_CROSSING_DEVICE_SWITCH GdkCrossingMode GDK_WINDOW_STATE_WITHDRAWN GDK_WINDOW_STATE_ICONIFIED GDK_WINDOW_STATE_MAXIMIZED GDK_WINDOW_STATE_STICKY GDK_WINDOW_STATE_FULLSCREEN GDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOW GDK_WINDOW_STATE_FOCUSED GDK_WINDOW_STATE_TILED GdkWindowStateo GDK_SETTING_ACTION_NEW GDK_SETTING_ACTION_CHANGED GDK_SETTING_ACTION_DELETED GdkSettingAction GDK_OWNER_CHANGE_NEW_OWNER GDK_OWNER_CHANGE_DESTROY GDK_OWNER_CHANGE_CLOSE GdkOwnerChange zQ n J GTK_ALIGN_FILL GTK_ALIGN_START GTK_ALIGN_END GTK_ALIGN_CENTER GTK_ALIGN_BASELINEGtkAlignPV GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICAL GtkOrientationYGtkWidget. _GtkWidget(  GtkWindow09 _GtkWindow5e bin7"!9!GtkWidgetPrivateB} _GtkWidgetPrivatee ( GtkContainer. _GtkContainer2 47!GtkContainerPrivate/!_GtkContainerPrivate  GtkBin.0! _GtkBin2Y!4 7~!GtkBinPrivate/n!_GtkBinPrivateY!GtkWindowPrivate.!_GtkWindowPrivate! r! GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkWindowTypeu!GtkMisc. " _GtkMisc25"47\"GtkMiscPrivate/K"_GtkMiscPrivate5"GtkLabel0r" _GtkLabel6" misc8!;"GtkLabelPrivate1"_GtkLabelPrivate"b"GtkBox/" _GtkBox3 #5 8/#GtkBoxPrivate0#_GtkBoxPrivate #GtkEditable+H#_GtkEditable5#GtkEntryFl# _GtkEntryJ#MO#GtkEntryPrivateG#_GtkEntryPrivate#\#GtkSearchBar.# _GtkSearchBar1$ parent4"!GtkSearchEntry.$ _GtkSearchEntry1D$ parent3\#$"# search_entry_destroyed($t0'=A/V($tSB'=A0l($t'=AN0($t1' >Ay0($t$t '?>A0($tSB$tA0($t1$t0'f>A1)$tv'v>A41)$tv$t0-{>Ae1'>A0A)$t0$t:'>A1\)$tu$t3'>A1)$tu$ts$t0$t 0$t0->A1'>A1)$tw$ts'>A'2)$tw$t0'>A1)$tw$tu'?A1*$tv$tw$t0$t 0$t0'K?A0I*$tSB$t@=A$t w$t0$t0'W?A^2a*$tSB'{?A1*$tv$t1$t 1$t0'?A}2*$tTB'?A2*$tu$t+TB$tw$t TB$t1'?A1+$tv$tu$t1$t 1$t0'?A0+$t0$t:' @A1L+$tv$tw$t1$t 1$t0'@A41g+$tw$t0''@A^2+$t2TB'9@A2+$tu$t'I@A3+$tu$t6'm@A1+$tw$tu$t1$t 1$t0'y@A^2,$tSB'@A10,$tw$tu$t1$t 1$t0'@A0l,$ts$tSB$t0EA-n>?new_modeA&xDEA)|t ]EAW!create_combo_box`EAM"strings#dystr@y$nEAEAtv%EAtvt0add_row(EA&table(ky&row)y'*y"label_text+"options,#d.ylabel/zEAtEA(tst1EAQtst2EAztst1%FA=twtst0t ut1t11FASt?FAotstvOFA t\tv%wFAtwtvt1t ut1t1!do_sizegroupPFAe"do_widgetPcontent_areaRztableS tVB!tt Mt0t0builder M"gtk_widget_get_visible`  #gtk_widget_destroy  #gtk_widget_show_all$  $gtk_builder_neww%gtk_builder_add_from_resource~t O&g_loge OO'>k_builder_connect_signals ?%gtk_builder_get_object O"gtk_widget_get_screen  #gtk_window_set_screen>  (g_signal_connect_data ?O?zr>GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddentextview.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demoPNALdoublecharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intguint32&gint64,guint64-long long unsigned intgsize;gchar.glong0 gint1gboolean2gulong64guint7gfloat9*floatgdouble:gpointerMXBGQuark$vGError*_GError ,domain.icode/message0] GData$ _GDataw long double GType~ GValue_GValuejIg_typemdatazi GTypeClass\ _GTypeClass g_type GTypeInstance _GTypeInstance g_classI  piv_intqv_uintrv_longsv_ulongtv_int64uv_uint64vv_floatwv_doublex3v_pointeryBy(GClosure J_GClosure & mmeta_marshal_nouse mn_guards mn_fnotifiers m n_inotifiers min_inotify mfloating mderivative_flag min_marshal mis_invalid mmarshal Cdata Bnotifiers r GClosureNotifyData K_GClosureNotifyData data Bnotify GCallback VGClosureNotify _'-=B=yIm=BB G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags xGObject _GObject g_type_instance & mqdata GInitiallyUnowned 4 <PANGO_STYLE_NORMALPANGO_STYLE_OBLIQUEPANGO_STYLE_ITALIC aPANGO_WEIGHT_THINPANGO_WEIGHT_ULTRALIGHTPANGO_WEIGHT_LIGHTPANGO_WEIGHT_SEMILIGHTPANGO_WEIGHT_BOOKPANGO_WEIGHT_NORMALPANGO_WEIGHT_MEDIUMPANGO_WEIGHT_SEMIBOLDPANGO_WEIGHT_BOLDPANGO_WEIGHT_ULTRABOLDPANGO_WEIGHT_HEAVYPANGO_WEIGHT_ULTRAHEAVY ' PANGO_UNDERLINE_NONEPANGO_UNDERLINE_SINGLEPANGO_UNDERLINE_DOUBLEPANGO_UNDERLINE_LOWPANGO_UNDERLINE_ERRORGdkScreen~8 _GdkScreenGdkPixbufU _GdkPixbuf'  GTK_TEXT_DIR_NONEGTK_TEXT_DIR_LTRGTK_TEXT_DIR_RTL GTK_JUSTIFY_LEFTGTK_JUSTIFY_RIGHTGTK_JUSTIFY_CENTERGTK_JUSTIFY_FILLVD GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientationY * GTK_WRAP_NONEGTK_WRAP_CHARGTK_WRAP_WORDGTK_WRAP_WORD_CHARGtkAdjustment" _GtkAdjustment6 8!:3 GtkWidget. _GtkWidget, ! GtkWindow0= _GtkWindow5i bin7& !9 GtkWidgetPrivateB _GtkWidgetPrivate i , GtkContainer. _GtkContainer2 4 !7 GtkContainerPrivate/ _GtkContainerPrivate  GtkBin.4 _GtkBin2] 4 !7 GtkBinPrivate/r _GtkBinPrivate] GtkWindowPrivate. _GtkWindowPrivate r GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeu GtkAdjustmentPrivate- _GtkAdjustmentPrivate  GtkTextChildAnchor-Y _GtkTextChildAnchor7 9segmentp0~0~03~30fgB?8$3(-WA`;)&XA;l$*tXB*t *t 8*t0)HXA;$*ts*tv*t0)dXA9$*ts*tv*tXB*t  )XA;$*ts*tv*tYB*t  *tWB*t0)XA9%%*ts*tv*tYB*t  )XA;b%*ts*tv*tWB*t  *tWB*t0)XA9%*ts*tv*tYB*t  ) YA;%*ts*tv*tWB*t  *tWB*t0)bA<}3*ts*tXB*tv*t ~)FbA:3*tu+bA6*t0*tfVB*t*t fgB*tPgB) RA":3*t0) RA<3*t-1RA=)NRA:4*t *t )RA6L4*tVB@t*t M*t0*t0)RA?=d4*tVB)RAf=x4*t0)RA=4*t1)RAf=4*tw*t5)RAN94*tw-RA=)RA84*tu)RA94*ts)SAB: 5*t0*t0)+SAp:*5*tv*t1*t1)7SA=F5*tw*tv)CSAN9b5*tv*tu)WSAB:|5*t0*t0)qSAp:5*tv*t1*t1)}SA=5*tw*tv)SAN95*tv*t~)ObAq5*P~)XbAq6*P~+`bAn7*tw-QA>-QA:>-QA[>Agtk_text_iter_get_child_anchora6SAgtk_text_iter_forward_char6Bg_assertion_message_expr$$6....Agtk_button_new_with_label#b 6RCg_signal_connect_data 47BRBBgtk_text_view_add_child_at_anchor"On7= Bgtk_widget_show_all7 Dgtk_combo_box_text_new? Egtk_combo_box_text_append_textC7CRAgtk_scale_new%Q 8D 9 Egtk_range_set_range .8-33Bgtk_widget_set_size_requestb8 Agtk_image_new_from_resource&v 8RDgtk_entry_new' Agtk_text_view_get_buffer"ϵ8=Bgtk_text_buffer_get_start_iter9Agtk_text_view_new_with_buffer"ʔ /9Agtk_frame_new(U N9REgtk_container_addr9  Agtk_text_buffer_new9vEgtk_text_buffer_insert9RCgtk_text_buffer_create_child_anchor :Bg_object_unref ":BAgtk_window_new B: Agtk_scrolled_window_new! p:9 9 Egtk_scrolled_window_set_policy!:$$Bg_object_add_weak_pointer :(cBgtk_window_set_default_size; Bgtk_window_presentp(; Cgtk_text_buffer_create_tagoM`;RRFDgtk_icon_theme_get_defaultAgtk_icon_theme_load_icon;R9Bgtk_text_buffer_get_iter_at_offset;Egtk_text_buffer_insert_with_tags_by_nameF<RRFBgtk_text_buffer_insert_pixbuf|<Bgtk_text_buffer_get_bounds<Bgtk_text_buffer_apply_tag_by_name\<RSSCgtk_widget_get_screena = Bgtk_window_set_screen?= a Egtk_window_set_titlef= REgtk_container_set_border_width= Agtk_paned_newQ =D Dgtk_text_view_new"Ȕ Egtk_paned_add1S= Egtk_paned_add2V> Cgtk_widget_get_visible`:> Bgtk_widget_destroy[> Ggtk_widget_show GNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddentextscroll.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demobATcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intgint64,guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong62guint7gfloat9floatgdouble:1doublegpointerMQbGData$p_GData~  ;GSourceFuncxc long double GType~ GValue _GValuej g_typem dataz GTypeClass_GTypeClass8g_type GTypeInstanceN_GTypeInstancexg_classxpv_intqv_uintrv_longsv_ulongtv_int64utv_uint64vv_floatw v_doublex"v_pointery;/&GClosureJ? _GClosurecJ#meta_marshal_nouse#n_guards#n_fnotifiers# n_inotifiers#in_inotify#floating#derivative_flag#in_marshal#is_invalid# marshal data; notifiers( GClosureNotifyDataK} _GClosureNotifyData data; notifyGCallbackV\GClosureNotify_ ; /#  ~   ; ;c ]G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags .GObject  _GObject  g_type_instance 8J # qdata GInitiallyUnowned  V GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientation YGtkAdjustment "L _GtkAdjustment 6|Y 8T : GtkWidget . _GtkWidgetYT' GtkWindow 0 _GtkWindow5 bin7T9C GtkWidgetPrivateB_GtkWidgetPrivate|GtkContainer.G _GtkContainer2y widget4|T7GtkContainerPrivate/_GtkContainerPrivatey3GtkBin. _GtkBin2@43T7 GtkBinPrivate/ _GtkBinPrivateGtkWindowPrivate.0 _GtkWindowPrivate r{ GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkWindowTypeuI GtkAdjustmentPrivate - _GtkAdjustmentPrivate 7GtkBox/ _GtkBox3 @53T8+ GtkBoxPrivate0 _GtkBoxPrivate GtkTextIter@D _GtkTextIter8F1 dummy1L; dummy2M; dummy3N dummy4O dummy5P dummy6Q dummy7R dummy8S dummy9T; dummy10U;$ dummy11V( dummy12W, dummy13Y0 dummy14Z;47 1 GtkTextBufferBQ _GtkTextBufferN YPrTR GtkTextMark; _GtkTextMarkE YGr segmentJ; GtkTextBufferPrivateK _GtkTextBufferPrivate < 1  GtkTextViewn$ _GtkTextViewrR Yt3Tx GtkTextViewPrivateol _GtkTextViewPrivateR   remove_timeoutbA  window!Htimeout;bA !setup_scrolll4 "7l #to_endm$0o %iterp1 create_text_viewbAWhbox!\to_end&swindow!'7!%timeout( bA) ) 2*+ P,' -cA ts-"cA tv tw-BcA0B tv tgB tw t 1-ZcAmh td tcA ts-cA0 tv tgB tw t 0.cAm t2 tdA ts-bA t0 t0-bA ts tv t1 t 1 t0/bA- cA% tv ts.cA6 ts tgB tbA t0 t00scroll_to_bottom:cAp17: '0< y2iter=1 &mark> &spaces? &text@ Ӏ2countAM-cA t-cA! ts tv-dAw6 t -1dAc ts tv tgB t  -IdA ts tv tu t  -^dA tgB-xdA ts tv tw t  -dA tu-dA tw-dA tv t0-dA23 ts tgB-dAbV ts tu tv.dA t tu0scroll_to_end dA S17 '0 2iter1 &mark &spaces -&text K2countM- eA t-eA2: ts tgB-.eA] ts tv tw-LeAwr t -jeA ts tv tgB t  -eA ts tv tu t  -eA tgB-eA  ts tv t t  -eA" tu-eA9 t.eA t tw3do_textscroll!fAdo_widget!2window!M4@fA&hbox!k-LfA t0-fA6 tgB5t t M t0 t0-fA" t X t -fAV9 t0 t6-fAxT ts t1-fAi ts-fA4  Ps R1.fA4 Ps R0/fA/&fA/5fA6g_source_remove 7gtk_text_view_get_buffer  8gtk_text_buffer_get_end_iter0  6gtk_text_buffer_create_mark) m K 1 6g_timeout_add.   ;7gtk_scrolled_window_new! 9gtk_box_pack_startT !   :gtk_text_view_new!9gtk_container_add6  !6g_signal_connect_data w ; K  ;  ]7g_strnfillV  9gtk_text_buffer_insert  K 7g_strdup_printfV K;9g_freeE ;8gtk_text_iter_set_line_offsetM2  6gtk_text_buffer_get_mark5 b K8gtk_text_buffer_move_mark. 1 9gtk_text_view_scroll_mark_onscreen 8gtk_text_buffer_get_iter_at_mark  7gtk_window_new!" { 8gtk_window_set_default_sizeV -  7gtk_box_newP!x  9gtk_box_set_homogeneousa 6gtk_widget_get_visible` !8gtk_widget_destroy !charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charshort intguint32&gint64,guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong67guint7gfloat9-floatgdouble:EdoublegpointerMeGQuark$yGError*_GError ,domain.pcode/message0j GData$ _GData~  : G_LOG_FLAG_RECURSION G_LOG_FLAG_FATAL G_LOG_LEVEL_ERROR G_LOG_LEVEL_CRITICAL G_LOG_LEVEL_WARNING G_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFO G_LOG_LEVEL_DEBUG G_LOG_LEVEL_MASK| long double GType~ GValue_GValuejg_typemdataz6 GTypeClass)_GTypeClassOg_type GTypeInstancee_GTypeInstanceg_classp6v_intqv_uintrv_longsv_ulongtv_int64uv_uint64vv_floatwv_doublex6v_pointeryOF+GClosure JV_GClosure zi :meta_marshal_nouse :n_guards :n_fnotifiers : n_inotifiers :in_inotify :floating :derivative_flag :in_marshal :is_invalid :marshal data Onotifiers ? GClosureNotifyData K_GClosureNotifyData data Onotify GCallback VGClosureNotify _ O F: OOz  t G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags EGObject _GObject g_type_instance Oi :qdata GInitiallyUnowned GdkScreen ~  _GdkScreenGtkBuilder#0_GtkBuilder[^s]priv_ GtkWidget.o_GtkWidgetspriv GtkWindow0_GtkWindow5bin7 priv95 GtkWidgetPrivateB _GtkWidgetPrivate^GtkContainer.1 _GtkContainer2d widget4^priv7 GtkContainerPrivate/ _GtkContainerPrivated  GtkBin. _GtkBin2 container4 priv7 GtkBinPrivate/ _GtkBinPrivate GtkWindowPrivate." _GtkWindowPrivate rm GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkWindowTypeu; GtkBuilderPrivate) _GtkBuilderPrivate do_theming_style_classes gA9[ do_widget grid buildererrgAo 'gA EgA \gA U t0mgA k t~gA gAH t$hBgAo t<gA t2hB!t t M t0 t0gA gA ts taGTK_DEST_DEFAULT_MOTIONGTK_DEST_DEFAULT_HIGHLIGHTGTK_DEST_DEFAULT_DROPGTK_DEST_DEFAULT_ALLGtkDestDefaultsCGtkListStore( _GtkListStore,.1 GtkListStorePrivate)_GtkListStorePrivateGtkEntry F _GtkEntry J- M  OVGtkEntryPrivate GD_GtkEntryPrivate-GtkComboBox!&u _GtkComboBox!*!,.!/GtkComboBoxPrivate!(_GtkComboBoxPrivatebGtkCellLayout"%_GtkCellLayout GtkIconTheme#5# _GtkIconTheme#DR#G#I GtkIconThemePrivate#7m_GtkIconThemePrivateR#GTK_ICON_LOOKUP_NO_SVGGTK_ICON_LOOKUP_FORCE_SVGGTK_ICON_LOOKUP_USE_BUILTINGTK_ICON_LOOKUP_GENERIC_FALLBACKGTK_ICON_LOOKUP_FORCE_SIZEGTK_ICON_LOOKUP_FORCE_REGULAR GTK_ICON_LOOKUP_FORCE_SYMBOLICGTK_ICON_LOOKUP_DIR_LTRGTK_ICON_LOOKUP_DIR_RTLGtkIconLookupFlags#GtkToolItem$) _GtkToolItem$-$/.$2-GtkToolItemPrivate$+_GtkToolItemPrivateGtkToolButton%'N _GtkToolButton %+~%-%0GtkToolButtonPrivate%)_GtkToolButtonPrivate~9GtkNotebook&5 _GtkNotebook&96&< &>-GtkNotebookPrivate&6_GtkNotebookPrivateGtkOrientable')N_GtkOrientableGtkToggleToolButton('y _GtkToggleToolButton$(+(-9(0 GtkToggleToolButtonPrivate()_GtkToggleToolButtonPrivateGtkRadioToolButton)' _GtkRadioToolButton$)*7),^GtkScrolledWindow*-P _GtkScrolledWindow*16*3.*5GtkScrolledWindowPrivate*._GtkScrolledWindowPrivate7*(GTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALGtkPolicyType*GtkToolItemGroup+(U _GtkToolItemGroup+1+3 +4GtkToolItemGroupPrivate+*_GtkToolItemGroupPrivateGtkToolPalette,) _GtkToolPalette,@,B ,CGtkToolPalettePrivate,++_GtkToolPalettePrivate,5GTK_TOOL_PALETTE_DRAG_ITEMSGTK_TOOL_PALETTE_DRAG_GROUPSGtkToolPaletteDragTargets,9CGx9=CanvasItem _CanvasItem$ pixbuf  x< y<interactive_canvas_drag_motion  xytime K!"target #canvas_item_drawHHcrI previewJ$cxL<$cyM< %interactive_canvas_drag_dropU@hAO&U &V 'xW'yX 'timeY&ZK(target\ Ł)ahAjF*ts*tv*t0+hAF*ts*tv*t ,canvas_item_new!hA-! ؁.button"/x#</y$<0&%1icon_name'P1pixbuf( y0#)2width*l)hAF*tR)hAF*ts3hA$G)hASG*t6*tl*t0)iAG*ts*tv*t 8*t0+iAG*tH#canvas_item_freeAJA4interactive_canvas_drag_data_received@iA# & & 'x'y  &! 'info"'time#&$K5.) ˂5* 5+a63 kB75-(__t-σ(__r-+iAG*tu*ts7568jA58!(__t8J(__r8]3jAH+1jAG*ts)wiA1H*tv3iA]H)iA~H.*tu)iAHK*tu*t\)jAH*t0*thB*t 6*t kB*thB)MjA*Pw*Rs*t P*t T3hjA!I)jAEI*tv*t1*t0*t X9jAqI)jAI *tv*t2*tX9jAqI3 1% # :passive_canvas_drag_data_receivedjA-";Ґ ;Ө /x/y ;֢ /info/time;K0.ݐ p1canvas_item0ߐ 6"`kB7l!0(1__tQ1__rd+,kAG*tw*ts7!08kA!01__t1__rɅ3kAH+kAG*ts) kA1H!*t3kA]H)8kA~H"*tw)TkAH*"*tw*tu)kAHc"*t0*thB*t*t `kB*thB)kA"*Pv*Rs*t X*t \3kA!I9 lAqI"1! "#palette_drop_group #.N<@#palette_drop_itemq#q3rxsytB#>9#Շ>.#>##?p@K#=@V#f@a#y8imA='Am#@A#DA#HA#L)qmAI<&*tv)mAI&*ts*tv*thB*t @*thB*tD*thB*tH*t hB*t$L*t(0)mA/J&*ts*tv)mAVJ&*tw*tv*tu)5nAJ+'*tw*tv*thB*thB*thB*t hB*t(0+=nAJ*tv)4mA~HR'*tv)OmAJp'*tw*t)_mAK'*tw+nANK*tw*tv*tuB"EnA%(>">">"ʈCEnA%@"݈)ZnAK(*ts*tw+jnAK*ts*tv)&lA1H2(*t35lA]H)XlA~HP(*ts)lAHm(*ts*t)lAL(*t*t*t +mA;L*tw*tP4on_combo_style_changednA)&&KD.(model5Eiter`Eval\)nAhLH)*ts)nALd)*ts*tv)oAL)*tw*tv*t1*t \*t )-oAL)*t+@oAM*t%create_entry_item3PoAEz*Ftext 153](entry 3\oACM)joAXM=**ts*tv)zoA}MX**ts*t53oAM+oAM*tv*ts4on_combo_orientation_changedwoA+&w&xKD.z(sw{(model|5؉Eiter}PEval~L)oAhL++*ts)oA~HA+*t)oAL]+*ts*tv)pAL+*tu*tv*t1*t L*t )(pAM+*t)HpAN+*tw*t1*t2+hpAN*tw*t2*t1G$ppA,HOHZHeHn HwH7,HeHn HHw>Z >O+CpA>@J)pAjF,*ts*tv*t0+pAF*ts*tv*t )pAqI,*ts+pAI*tv*t2*tGqA->h>>@7@f8qA->>Ջ>CqAII+qAMN*tv*t 333333?3&qAwN34qAN)hqAN-*tv+tqAO*tv,canvas_draw[qAc.;[ /cr\ 1iter^)qA!OW.*tv*t ?*t ?*t ?)qAOl.*tv)qA.*Rv*Q0+qA*Rv*Q14interactive_canvas_drag_leavehrAV8/&hK?5l *J%#rAn-/>>I3-rAJ+=rASO*tH*ts9YrAqIKload_icon_items/ ."contexts"lL#!L"icon_names"ll"max_icons/"icons_count"group !L3"id Kload_toggle_itemsr0 ."toggle_groupL3"group "label+"iKload_special_items0 .L3"group "label_button Mdo_toolpalette prA F'do_widget (box \(hbox (combo_orientation ֌(orientation_model(combo_style N(style_model(cell_rendererƍEiterP5. (palette_scroller J(notebook (contents (contents_scroller N8/vA 4>Q/N?@]/n@n/@x/Ï8 wA`s4@/@/@/!@/?@/_@/8wA3@/@/ߐ)wAsO2*ts*t>iB)wAO 3*ts*tMiB) xAO93*t0*t *tWiB*t s)xAOS3*t0*t0)+xAPo3*tw*ts)7xA4P3*tw*ts+OxAVJ*t*tw*t )+wAeP3*ts)=wAM3*t*tv)MwAP3*ts*t"iB)qwAO+4*t0*t *t-iB*t s)wAPI4*t*ts)wAP[4Ot+xxAQ*tOt)vAF4*t3vA$G)wA$Q4*t+xAQ*tLOtN0xA 5H0?@*0@?02@K0P@Y0y@g0)xAeP)5*tiB)xAMG5*t*tv)xASQf5*tciB*tw)xAuQ{5*ts)xAQ5*ts*tv)xAQ5*tv)yAVJ5*tu*ts*t +yAQ*tsJr0yAv;H0CyAv@0ϑ@0@0)"yAeP76*t0)0yARO6*tgiB):yA*tw*tu*t0*t 0*t0)tAT@>*t2*t@*tH)tAT\>*tv*ts)(uAU>*tv*ts*t0*t hB*t1*t1*t )4uAT>*tv*ts)huAU>*tv*ts*t0*t hB*t1*t2*t )tuAT?*tv*ts)uAUQ?*tv*ts*t0*t hB*t1*t3*t )uATm?*tv*ts)uAU?*tv*ts*t0*t  iB*t1*t0*t )uAT?*tv*ts)(vAU@*tv*ts*t0*t iB*t1*t *t )0vABU@*tv3;vApU)QvAUH@*tu*tv*t1)uvAUz@*tu*tv*thB*t 0*t0)vAU@*tu*ts)vA&V@*tw*tu*t0*t 0*t0)vAT@*t0*t5)vA&V A*tw*tH*t1*t 1*t03vAZV)|AvV0A*t0*t0)|ANQA*ts*t2*t1)|A|TlA*ts*t6)|AVA*ts*t1)|AMA*ts*tu)|AMA*tw*ts)}AuSA*t)2}A;TB*tv*tjB*toA*t u*t0*t0)b}A;TOB*tD*tjB*tnA*t u*t0*t0)n}Az*kB*tv*tu3s}AV)}A|TB*tv*t6)}AVB*tw*tv*t0*t 0*t0)}A;TB*tu*tjB*tlA*t 0*t0*t0)}AW&C*tu*tu*t7*t 3*t43~AXW)~AtWJC*tw*t1)T~AWC*tw*tjB*tqA*t 0*tjB*tjA*t0*t0)x~AWC*tu*tw*t7*t 1*t2)~AvVC*t0*t0)~AND*ts*t1*t0)~AMD*ts*tw)~A|T9D*ts*t6)~AWQD*tjB)~AWmD*tv*ts3~AXW)~AtWD*ts*t1)yAW0E*ts*tjB*tqA*t 0*t,kB*tppA*t0*tjB*t @iA*t$0*t(kB*t,rA*t0s*t4kB*t8@hA*t<0*t0)AW^E*tu*ts*t2*t 1*t2)AvVxE*t0*t0)ANE*tw*t1*t0)AME*tw*ts)A|TE*tw*t6)AWE*t@kB+AW*tv*tw2window ТM2drag_data_requested_for_drop̢MPYȢM2canvas_itemsĢMQgtk_drag_dest_find_target F  Rgtk_drag_get_data]F   Qgtk_tool_button_get_icon_name%iFSgtk_widget_get_screen $G Qgtk_icon_theme_get_for_screen#SG Qgtk_icon_size_lookup-oG Qgtk_icon_theme_load_icon# GQg_slice_alloc0."KGSg_type_check_instance_is_a iHTgtk_tool_item_get_type$QQgtk_drag_get_source_widgeth ]H Tgtk_tool_palette_get_type,XSgtk_widget_get_parent H Qgtk_tool_palette_get_drag_item, HHH Ug_assertion_message_expr/$!I    Qg_list_append;EIKRgtk_drag_finishbqI Ugtk_widget_queue_drawI Rgdk_drag_statuszI  Tgtk_tool_item_group_get_type+ISg_object_refKIKRgtk_container_child_get/J( VRgtk_container_removeVJ( Rgtk_tool_item_group_insert+iJ3Rgtk_container_child_setJ( VUg_object_unrefJKQgtk_tool_item_group_get_drop_item+z3KQgtk_tool_item_group_get_item_position+qNK3Rgtk_tool_item_group_set_item_position+mK3Qgtk_tool_palette_get_group_position,jKRgtk_tool_palette_set_group_position,]LQgtk_tool_palette_get_drop_group,;LUgtk_widget_get_allocationhL  Qgtk_combo_box_get_model!5LQgtk_combo_box_get_active_iter!L;Ugtk_tree_model_getlL5;VRgtk_tool_palette_set_style,yMN Rgtk_tool_palette_unset_style,|CMTgtk_entry_new Rgtk_entry_set_text }M\Rgtk_entry_set_width_chars M\Tgtk_tool_item_new$S3Rgtk_container_addM( Rgtk_orientable_set_orientation'6N Rgtk_scrolled_window_set_policy*MN((Ucairo_paint_with_alphawN Qgdk_pixbuf_get_widthNNN Qgdk_pixbuf_get_heightNNRgdk_cairo_set_source_pixbuf0+O N<<Ucairo_paint!O Ucairo_set_source_rgbSO Rg_slice_free1.'sOKQg_str_equal1O[[Qg_str_has_suffix2ORg_log eOVQgtk_tool_button_new%Q3P Rgtk_tool_button_set_icon_name%f4PRgtk_tool_item_set_tooltip_text$aeP3Qgtk_tool_item_group_new+K PQg_strcmp0/qP  Sgtk_icon_theme_list_icons#PQg_list_sortQwRg_list_free_full8$QSgtk_icon_theme_list_contexts# SQQg_strdup_printf2uQVQgtk_radio_tool_button_new)>3QRgtk_tool_button_set_label%WQRg_free3EQKQgtk_radio_tool_button_get_group)HRQgtk_button_new_with_label4b gtk_widget_show_all# RGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddendemo_resources.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo8 #charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charsigned charguint8Eshort intlong long unsigned intgsize;floatdoublegpointerM long doubleGResource_GResourceeGStaticResource3_GStaticResource5 data7 data_len8 resource9 next: padding;    data  alignment  ptr  e $ demo_get_resource`A!AtBresource_constructorTapA_AtBresource_destructorYaAA5tBdemo_resource_data pBstatic_resource`Bg_static_resource_get_resource~g_static_resource_initz5g_static_resource_fini|,VگGNU C 4.9.2 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hiddenmain.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.16.6/demos/gtk-demo charsize_t{unsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned chardoublefloat long doublesigned charshort intguint16!guint32&gint64,guint64-long long unsigned intgssize:gsize;gchar.glong0 gint1gboolean2+guchar4Pgulong6;guint7gfloat9kgdouble:agpointerMgconstpointerNGBytes$ _GBytesGQuark$GError* _GError ,: domain. code/+ message0@ GData$N _GData  CG_FILE_TEST_IS_REGULARG_FILE_TEST_IS_SYMLINKG_FILE_TEST_IS_DIRG_FILE_TEST_IS_EXECUTABLEG_FILE_TEST_EXISTSGFileTest IVGList % _GList ', data ) next *, prev +,+D  :G_LOG_FLAG_RECURSIONG_LOG_FLAG_FATALG_LOG_LEVEL_ERRORG_LOG_LEVEL_CRITICALG_LOG_LEVEL_WARNINGG_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFOG_LOG_LEVEL_DEBUGG_LOG_LEVEL_MASK|GLogLevelFlags HPA  'G_ASCII_ALNUMG_ASCII_ALPHAG_ASCII_CNTRLG_ASCII_DIGITG_ASCII_GRAPHG_ASCII_LOWER G_ASCII_PRINTG_ASCII_PUNCTG_ASCII_SPACEG_ASCII_UPPERG_ASCII_XDIGITGVariant " _GVariantGType~GValue; _GValuejh g_typem datazGTypeClass{_GTypeClassg_typeGTypeInstance_GTypeInstanceg_classh,,pv_intq+v_uintrcv_longsv_ulongtUv_int64uv_uint64vv_floatwpv_doublex~v_pointery/GClosureJ _GClosure meta_marshal_nouse n_guards n_fnotifiers  n_inotifiers in_inotify floating derivative_flag in_marshal is_invalid  marshalb  dataƍ notifiersȑ GClosureNotifyDataK _GClosureNotifyData data notify0 GCallbackV:GClosureNotify_F L \ \ h  \ cc  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject _GObject . g_type_instance  qdata,GInitiallyUnowned  v G_RESOURCE_LOOKUP_FLAGS_NONEGResourceLookupFlagsM m G_APPLICATION_FLAGS_NONEG_APPLICATION_IS_SERVICEG_APPLICATION_IS_LAUNCHERG_APPLICATION_HANDLES_OPENG_APPLICATION_HANDLES_COMMAND_LINEG_APPLICATION_SEND_ENVIRONMENTG_APPLICATION_NON_UNIQUE GApplicationFlags GActionMap3 _GActionMapGSimpleAction6 _GSimpleActionGApplication8 _GApplication, / 1L GMenuModel> _GMenuModelM   S GActionEntry)l _GActionEntry 7 name9;  parameter_type?A change_stateC  paddingH       /GApplicationPrivate)6 _GApplicationPrivate  )GMenuModelPrivate}w _GMenuModelPrivate^  < PANGO_STYLE_NORMALPANGO_STYLE_OBLIQUEPANGO_STYLE_ITALICPangoStyle@ aPANGO_WEIGHT_THINPANGO_WEIGHT_ULTRALIGHTPANGO_WEIGHT_LIGHTPANGO_WEIGHT_SEMILIGHTPANGO_WEIGHT_BOOKPANGO_WEIGHT_NORMALPANGO_WEIGHT_MEDIUMPANGO_WEIGHT_SEMIBOLDPANGO_WEIGHT_BOLDPANGO_WEIGHT_ULTRABOLDPANGO_WEIGHT_HEAVYPANGO_WEIGHT_ULTRAHEAVYGdkPixbuf( _GdkPixbufGdkPixbufAnimation,N _GdkPixbufAnimationGTK_SHADOW_NONEGTK_SHADOW_INGTK_SHADOW_OUTGTK_SHADOW_ETCHED_INGTK_SHADOW_ETCHED_OUTGtkShadowTypec*4GTK_WRAP_NONEGTK_WRAP_CHARGTK_WRAP_WORDGTK_WRAP_WORD_CHARGtkWrapMode/GtkAdjustment"] _GtkAdjustment68. : GtkBuilder# _GtkBuilder[] _ GtkWidget. _GtkWidget . } GtkWindow0 _GtkWindow 5F bin 7 9GtkWidgetPrivateBd _GtkWidgetPrivateLGtkApplication!' _GtkApplication!+0!- !0GtkApplicationPrivate!) _GtkApplicationPrivate GtkContainer".% _GtkContainer"2Tt"4"7GtkContainerPrivate"/o _GtkContainerPrivateTGtkBin#. _GtkBin#2{#4#7GtkBinPrivate#/ _GtkBinPrivateGtkWindowPrivate .  _GtkWindowPrivate $D_GTK_LICENSE_UNKNOWNGTK_LICENSE_CUSTOMGTK_LICENSE_GPL_2_0GTK_LICENSE_GPL_3_0GTK_LICENSE_LGPL_2_1GTK_LICENSE_LGPL_3_0GTK_LICENSE_BSDGTK_LICENSE_MIT_X11GTK_LICENSE_ARTISTICGTK_LICENSE_GPL_2_0_ONLY GTK_LICENSE_GPL_3_0_ONLY GTK_LICENSE_LGPL_2_1_ONLY GTK_LICENSE_LGPL_3_0_ONLY GtkMisc%.n _GtkMisc%2t%4%7GtkMiscPrivate%/ _GtkMiscPrivateGtkAdjustmentPrivate- _GtkAdjustmentPrivateHGtkTreeIter&' _GtkTreeIter&]m stamp&_+&` user_data2&a user_data3&b GtkTreePath&( _GtkTreePathGtkTreeModel&* _GtkTreeModelmGtkTreeViewColumn') _GtkTreeViewColumn'T'V. 'XQ GtkTreeViewColumnPrivate'+0 _GtkTreeViewColumnPrivateGtkTextIter(@j _GtkTextIter8)FW dummy1)L dummy2)M dummy3)N+ dummy4)O+ dummy5)P+ dummy6)Q+ dummy7)R+ dummy8)S+ dummy9)T dummy10)U$ dummy11)V+( dummy12)W+, dummy13)Y+0 dummy14)Z4GtkTextTagTable(An _GtkTextTagTable*5*7 *9 GtkTextTag(J _GtkTextTag(N(P (R  GtkTextTagPrivate(K _GtkTextTagPrivateWGtkTextBuffer)B8 _GtkTextBuffer+Nh+P +R GtkImage,/x _GtkImage,[ misc,]_,`GtkImagePrivate,0 _GtkImagePrivateGtkTreeView-= _GtkTreeView-C0-E-HGtkTreeViewPrivate-?. _GtkTreeViewPrivateGtkTreeSelection-@[ _GtkTreeSelection.K0.N .P GtkBuilderPrivate) _GtkBuilderPrivateGtkHeaderBar/& _GtkHeaderBar/* {/,GtkNotebook05 _GtkNotebook09K{0<0>zGtkNotebookPrivate06e _GtkNotebookPrivateK GtkScrolledWindow1- _GtkScrolledWindow11{1315GtkScrolledWindowPrivate1. _GtkScrolledWindowPrivate 1wGTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALGtkPolicyType1GtkTextTagTablePrivate*2 _GtkTextTagTablePrivateWGtkTextBufferPrivate+K _GtkTextBufferPrivate#WGtkTextView2n' _GtkTextView2rU2t2xGtkTextViewPrivate2oo _GtkTextViewPrivateUGtkTreeSelectionPrivate.% _GtkTreeSelectionPrivateCGtkTreeStore3) _GtkTreeStore3-03/ 31I GtkTreeStorePrivate3+3 _GtkTreeStorePrivatehGDoDemoFunc4tzwwDemo4 _Demo4 name4 title4T4  func4 a 74  MNAME_COLUMNTITLE_COLUMNFILENAME_COLUMNFUNC_COLUMNSTYLE_COLUMNNUM_COLUMNSCallbackDataa _CallbackData " path# STATE_NORMALSTATE_IN_COMMENTcreate_textTwviewTis_sourceU7scrolled_windowWwtext_viewXww run_example_for_rowlA!!lwO!my!n"stylep X"funcqa\#demorw$X #cbdata!$p  #__n9#__sY#__p%AE&t8'AE$ &ts&tw'AF9 &tv'A1Fu &tv&tvM&tA&t u&t0&t0'ArF &tv&tL% AF&tv&t1'UAF &ts&tw&t3&t \&t4&tX&t 'AF!&ts&tw&t4&t (A&tvM)row_activated_cb0AH"*tree_vieww*path*columnK+`,wy,'FAG!&ts'PA@G!&ts'fAiG!&ts&tv&t%qA%&Pw&Rs&Qv window_closed_cbXA#-Xw.dataX#cbdataZ!/[`"style\ \'AiG"&tv'ȕAF"&tv&t4&t \&t 0ڕAG'AG"&ts%AF&tv&t4&t 0&t activate_run AA#-@ -j-/w1ߙ/\/`05AG'IAG#&t\&ts%\A%&P&Qs)startuppAh$*appR 2builderF2appmenu 3ids$h0A?H'AVH[$&ts&tvM&th&t 0'AHz$&ts&tvM'˖AH$&t%ӖAH&ts$/ activate_quitCA6X%-@C -jD-E"appG#winHw/#listI,B#nextI,k'AIN%&t0 ABI activate_about' A&-@' -j(-)"app+"authors,&h0:AcI0AAI0HAI'hAI &&tvM&tvM&t s&tv'vAI#&&t%AJ&twM&twM&t wM&ts&twM&twM&twM&t 4&t$wM&t(}wM&t,twM&t0PwM&t4EwM&t8h&t<6wM&t,wM&t&wM&twM&t0&/4parse_charsH A(5textH~*end_ptrI6J2*tagK *startL72iN+2next_tokenO$ '2maybe_escape+7'lA8J'&tu&twM'ԘAUJ'&tu&t('+AJ'&tw'=AJ(&tu&tw&ts'dAJA(&tu&tw&ts'A8J`(&tu&twM'AJu(&tv'AJ(&tu&tv&tw'PA8J(&tu&txM'yAUJ(&tu&t"'A8J(&tu%A8J&tu7remove_data_tabsK)iM+8])9'resource_dirresource_nameresources:twlabelwi c;G)]<bytes=):$<buffer)textview*w)/ )7fontify*9start_iterWnext_iterWtmp_iterW:+textstart_ptrend_ptrtag<start74load_fileTA5<6'T6TU2info_bufferWl,W3startXW}3endXW~2resource_filenameY)ܛ3errZD},[2in_para\72lines][2bytes^2i_+>GE<yzM?(A0d,@A0A)Н0AJ%AJ&tsB)A f:1C,)D A8)AM)MAc)Au)A)(A)FE)lzM$ /A)Z$ ,A)FA2.A)A)?A,&.GG(@AA@A 'AK-&t0&t0'AAK&-&ts&t1&t1'/AwKA-&ts&t004AK'fAK-&tw&t=xM&tD&t 0xM&tD&t0'vAK-&tw&t0'AL-&tw&t0'AHL-&ts&tw'AlL-&tw&t2'AL .&tw&t2%°AL&tw&t2'ΰA M:.&t0'ްA0MQ.&t}'ARMn.&t}&t0'AyM.&t}&t}%AM&tw&t}'5AM.&ts'=AH.&ts'UAM.&tv&t0&t0'mA0M /&tw'ARM$/&tw&t0'A+N?/&ts&t0'AWNk/&ts&t@&tLxM&t v'ɝAuN/&t}%AN&t0&tmyM&t $&t lzM&tgyM'8AN/&t.xM&t&t0'TAN0&t}&t0&t0'{A#O0&ts0AEO'AdO50&tw'AOQ0&ts&tw'ΜAO|0&ts&tuxM&t 1&t0'֜AG0&tv'AN0&t}&t.xM&t 0' AO0&tv'AP0&ts'%A9P0&ts'ڝAhP1&t}'AG%1&t}%ȱAG&t}$ I42p^2q#2r[$@ 22len_chars$X 1,š%AJ&ts'AP1&ts&t}'ͦAP2&t}&tw&ts&t }s'AP2&tv'AQK2&t}&t&wM&tv&t ~%TAN&t0&tmyM&t &t yzM&ttyM$p 32lenFUA2,['AJ2&ts'uAP2&t}&t}&ts&t v'AN53&t0&tmyM&t &t yzM&tyM'|APd3&t}&t}&t9yM&t 1%ݯAP&t}&t}&t7yM&t 10mAVQ'AP3&tv&t}&t  '۠AP3&tv&t}&t7yM&t 10AVQ'AJ4&ts0AVQ0ͩAVQ'&ArQ?4&t}&t}&t00|AVQB*A 5G*{D E*~E0*~EB*ES*}A_*Al*բE~*}E*}$ ]5A*'uAQ4&t~&t~'WAQ4&ts'~AQ5&t}&t~&t s'lA&I5&tu&tv&t}&t w%AG&t}'5A R5&t}&t~&ts'TAQ5&t}&txM&t~&t s'wArQ5&t}&t~&t0%OA?R&t~'ڛAkR6&t0AG'AR!6&t'A M56&t0'OAR6&t}&t&wM&txM&t xM&txM&t:&t0'[A M6&t0'AR6&tw&txM&txM&t xM&t0'AR7&tw&twM&txM&t xM&t0'ٞAR?7&tw&txM&txM&t xM&t0'AR7&tw&t'xM&txM&t xM&txM&t &t0'9AR7&tw&txM&txM&t xM&t0'qAR 8&tw&txM&txM&t 1&txM&txM&t0'ARW8&tw&txM&txM&t  &txM&txM&t0'ȟAN}8&t yM&t&t0'AM8&tv&t0&t}'AG8&tv'ARM8&ts&tv'AR8&t7yM&t ',AuN9&ts'HArQ+9&t}&t}&tv'AhPB9&t}'AJW9&ts'AR9&tv&tNyM&t;yM&t D&t0'AS9&tv&t}'VA6S9&ts'rAQ9&tv&tNyM&t}&t s'AR!:&tv&tYyM&txM&t D&t0'AgS=:&tv&ts'XASS:&t}'tAQ:&tv&tYyM&t}&t s'AM:&tv'AH:&tv'AR:&tv&tNyM&t;yM&t D&t0'ɭAS:&tv&t}'wA6S;&ts'AQ@;&tv&tNyM&t}&t s'ARu;&tv&tYyM&txM&t D&t0'ǮAgS;&tv&ts'yAS;&t}'AQ;&tv&tYyM&t}&t s'AM;&tv'AH;&tv'UAWN+<&t0&t@&tyM&t 0aASE</ 5<7populate_model}<9}d<:7:<child_iterHбA3@*appR 2builderFN, y,tw,£+P3errorD3win_entries@@BBJ<A u>Gb<D An<@AAy<E<@FA >E<P'AS=&ts&tv&t@%AF&ts&tv&t0&t1&t2&t 3&t(4&t,0&t0 'AS/>&ts&t@&t0%}AF&ts&t@&t0&t1&t2&t 3&t(4&t,0&t0 0A?H'AT>&t&tvM&t'*AH>&tv&tyM'CAKT>&t&ts'_AxT?&ts&t@B&t1&t s'oAH.?&tv&tyM'AHM?&tv&tyM'AHl?&tv&tyM'AH?&tv&tyM'DzAH?&t&tyM0ԲA@G0A*'AA1F?&tyM&t0A&t s&t0&t0'UAH@&tu&tyM'A1FN@&tw&tyM&tA&t s&t0&t00A@G'ATl@&tv'AT@&tw&tv0A%U'A#O@&t'ɴAH@&tu'AWN@&t0&t8&tyM%ANU&t1X A/)selection_cb8AB6869+;`3name<)T+T=)X3title>)\'0AGA&t&t0&ts'AFA&t&ts&t0&t T&t1&t\&t2&tX&t  0A*0AaU0AG0͵AG0ٵAGImainAC*argc*argvX 2app>3app_entries CB'AUB&tzM&t@'AUB&t,zM&tzM&t1'AUB&t?zM&t '%AxTC&ts&tB&t2&t s'UA1FKC&ts&tLzM&tpA&t 0&t0&t0'A1FC&ts&tTzM&tбA&t 0&t0&t0%AV&ts&tu&tu X C/"info_view wM"source_viewwM"current_fileM"notebookwM"treeviewwM"headerbarwܢMUD/JtokenscDEDxD/z"typesDMhDD/ 3control:DzMDKg_ascii_table 5DDDD/Lchild04FD@ BE/Lchild14PE B8E/Lchild24W(E@ BLchild34_EBpE/Lchild44f`E`BLchild54l`E BE/)Lgtk_demos4rEBMg_malloc5LENgtk_tree_model_get_path&EFNgtk_widget_is_toplevelk71FwNg_signal_connect_dataUrF 0  Ogtk_window_set_transient_for F  Pgtk_window_set_modal LF 7Pgtk_tree_model_get&lFQOgtk_tree_store_set3UG[QNgtk_widget_get_toplevelw@GwMgtk_tree_view_get_model-ֱiGNgtk_tree_model_get_iter&77GOgtk_tree_path_free&GOg_free5EGMgtk_tree_view_get_selection-GMgtk_tree_selection_get_selected.79H9HRgtk_builder_newwFMgtk_builder_add_objects_from_resourcecHF>Mgtk_builder_get_objectG HFOgtk_application_set_app_menu!_H Pg_object_unrefIMgtk_application_get_windows!Z,BIPgtk_widget_destroycIwRgtk_get_micro_version6KcRgtk_get_minor_version6IcRgtk_get_major_version6GcMg_strdup_printf IQMgtk_application_get_active_window! JOgtk_show_about_dialog$z8J QMstrstr7V)UJM M S__builtin_strchr?strchr)JM Mstrlen76JM Mstrncmp7LJM M Mgtk_notebook_get_n_pages0+JOgtk_notebook_remove_page0K+Mgtk_scrolled_window_new1wAKOgtk_scrolled_window_set_policy1wKwwOgtk_scrolled_window_set_shadow_type1KRgtk_text_view_new2wPg_object_setKQPgtk_text_view_set_editable2jL7Ogtk_text_view_set_cursor_visible2HL7Ogtk_container_add"lLwPgtk_text_view_set_wrap_mode2eL4Pgtk_text_view_set_pixels_above_lines2yL+Pgtk_text_view_set_pixels_below_lines2~ M+Mgtk_text_buffer_new+0MMg_bytes_get_size8>RMMg_bytes_get_data8:yM8Ogtk_text_buffer_set_text+M+Ogtk_text_view_set_buffer2MNg_object_ref_sinkMMg_resources_lookup_data9j+NM v >Ng_utf8_validate:7WNJOg_log euNQOg_bytes_unref8DNPg_assertion_message_expr;$NM M M M Mg_strconcat NQMg_resources_enumerate_children9nX #OM v >Pgtk_widget_show_allEOwMgtk_label_new<]wdOPgtk_widget_showOwMgtk_notebook_append_page0+OwwOgtk_container_child_set"OwQMgtk_image_new_from_resource,vwPMgtk_image_get_pixbuf,9PUMgtk_image_get_animation,bPbPU4Pg_strfreev PNg_utf8_pointer_to_offset:POgtk_text_buffer_insert+P+Mgtk_text_iter_backward_chars)7Q+Pgtk_text_buffer_apply_tag_by_name+\VQMg_strchomp rQPgtk_text_buffer_get_iter_at_offset+Q+Mgtk_text_iter_get_text)QMgtk_text_iter_forward_chars)7 R+Pgtk_text_buffer_get_bounds+?RMgtk_text_iter_forward_line)7kRMg_strcmp0;qRM M Mg_strdup RNgtk_text_buffer_create_tag+oRQNg_strsplit S+Pgtk_text_buffer_get_start_iter+6SNgtk_text_iter_forward_word_end)7gSPgtk_text_buffer_get_end_iter+SNgtk_text_iter_backward_word_start)7SOg_error_freeDSDOgtk_tree_store_append3T[Mgtk_builder_add_from_resource~cKTF>Ogtk_application_add_window!SxT Og_action_map_add_action_entriesXT T+TX Ngtk_tree_model_get_iter_first&B7TOgtk_tree_selection_select_iter.%UPgtk_tree_view_collapse_all-CNUPexit=2aUOgtk_header_bar_set_title/?UOMg_file_test_utf8 7UMg_setenv_utf8>F7U7Mgtk_application_new!OVm Tg_application_runR X gGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/atonexit.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtAcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charfloatsigned charshort intlong long unsigned int_onexit_t(double long doubletagCOINITBASE COINITBASE_MULTITHREADED VARENUM VT_EMPTY VT_NULL VT_I2 VT_I4 VT_R4 VT_R8 VT_CY VT_DATE VT_BSTR VT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMAL VT_I1 VT_UI1 VT_UI2 VT_UI4 VT_I8 VT_UI8 VT_INT VT_UINT VT_VOID VT_HRESULT VT_PTR VT_SAFEARRAY VT_CARRAY VT_USERDEFINED VT_LPSTR VT_LPWSTR VT_RECORD$ VT_INT_PTR% VT_UINT_PTR& VT_FILETIME VT_BLOB VT_STREAM VT_STORAGE VT_STREAMED_OBJECT VT_STORED_OBJECT VT_BLOB_OBJECT VT_CF VT_CLSID VT_VERSIONED_STREAM VT_BSTR_BLOB VT_VECTOR VT_ARRAY VT_BYREF VT_RESERVED VT_ILLEGAL VT_ILLEGALMASKED VT_TYPEMASK_PVFV mingw_onexit!A func! onexitbegin#h onexitend$lretval%\A5AV(t8A5A5Ai^tthtl&A7AHAt8]At atexit8pA func8At__onexitbeginM__onexitendM_imp___onexit/ _decode_pointerNVN_locki__dllonexit_encode_pointerNN_unlockȵGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/gccmain.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtAcharunsigned intintptrdiff_tshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charfloatsigned charshort intlong long unsigned intdouble long doubletagCOINITBASECOINITBASE_MULTITHREADEDVARENUMVT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIMEVT_BLOBVT_STREAMVT_STORAGEVT_STREAMED_OBJECTVT_STORED_OBJECTVT_BLOB_OBJECTVT_CFVT_CLSIDVT_VERSIONED_STREAMVT_BSTR_BLOBVT_VECTOR VT_ARRAYVT_BYREFVT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK func_ptr  __do_global_dtorsA, p B __do_global_ctors AF* nptrs"9 i#9 AtA__main5AL,A initialized2Mp__CTOR_LIST__ e__DTOR_LIST__ eatexitTNGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/natstart.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charfloatsigned charshort intlong long unsigned intdouble long doubletagCOINITBASECOINITBASE_MULTITHREADEDVARENUMdVT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIMEVT_BLOBVT_STREAMVT_STORAGEVT_STREAMED_OBJECTVT_STORED_OBJECTVT_BLOB_OBJECTVT_CFVT_CLSIDVT_VERSIONED_STREAMVT_BSTR_BLOBVT_VECTOR VT_ARRAYVT_BYREFVT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK__uninitialized__initializing__initializedd__native_startup_state M __native_startup_lockM  __native_dllmain_reason ' B __native_vcclrit_reason ' BlGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/wildcard.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crt^_dowildcard MintGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/charmax.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crt0Acharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charfloatsigned charshort intlong long unsigned intdouble long doubletagCOINITBASECOINITBASE_MULTITHREADEDVARENUMvVT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIMEVT_BLOBVT_STREAMVT_STORAGEVT_STREAMED_OBJECTVT_STORED_OBJECTVT_BLOB_OBJECTVT_CFVT_CLSIDVT_VERSIONED_STREAMVT_BSTR_BLOBVT_VECTOR VT_ARRAYVT_BYREFVT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK_PIFV my_lconv_init0A 7A mingw_initcharmax M _charmax B __mingw_pinitv@N4GNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/dllargv.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crt@Acharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charfloatsigned charshort intlong long unsigned intdouble long double_setargv@A/ mGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/gs_support.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtPA7charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned chardoublefloat long doublex_EXCEPTION_RECORDP"ExceptionCodeExceptionFlagsrExceptionAddress NumberParametersExceptionInformation_CONTEXT+ContextFlags,Dr0-Dr1.Dr2/ Dr30Dr61Dr72FloatSave3SegGs4SegFs5SegEs6SegDs7Edi9Esi:Ebx;Edx<Ecx=Eax>Ebp?Eip@SegCsAEFlagsBEspCSegSsDExtendedRegistersE BYTEz? DWORD|*signed charshort intlong long unsigned int UINT_PTR5 ULONG_PTR7* PVOID" LONG LONGLONG  lLowPart& LowPart& _LARGE_INTEGER DulQuadPart3 LARGE_INTEGER_FLOATING_SAVE_AREApControlWordStatusWordTagWord ErrorOffset! ErrorSelector"DataOffset#DataSelector$RegisterArea%Cr0NpxState&lO FLOATING_SAVE_AREA' CONTEXTF$ PCONTEXTH/ EXCEPTION_RECORDx PEXCEPTION_RECORDb/_EXCEPTION_POINTERSHContextRecord EXCEPTION_POINTERSh_FILETIMEdwLowDateTimeεdwHighDateTimeϵ FILETIME NTSTATUS&Pft_scalar!ft_struct" FT#%__security_init_cookie2PAcookie4٤systime5PPperfctr6XAtPAtX__report_gsfailuregAeStackCookiegcookieiuhUA2t0eAFtMA[t|A( ueGS_ExceptionRecord%/MGS_ContextRecord&MGS_ExceptionPointers(M __security_cookie, B __security_cookie_complement-$ B!abort@GNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/_newmode.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crt_newmodeMintCGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/tlssup.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtAcharunsigned intintuintptr_tshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charULONG>WINBOOLnBOOLrDWORD|>floatLPVOIDdsigned charshort intlong long unsigned intULONG_PTR7>PVOIDdHANDLE|dPIMAGE_TLS_CALLBACK917L _IMAGE_TLS_DIRECTORY32E StartAddressOfRawDataF EndAddressOfRawDataG AddressOfIndexH AddressOfCallBacksI SizeOfZeroFillJ CharacteristicsKIMAGE_TLS_DIRECTORY32LLIMAGE_TLS_DIRECTORY]_PVFVU[ __dyn_tls_initR R R RpfuncTpsUH__dyn_tls_dtorAC'Attt\__dyn_tls_init@12A~wA"wťA"٥\Att1t__tlregdtors`AfuncsH__xd_aEH,@N__xd_zFH0@N_tls_index)fM_tls_start/,PN_tls_end0,PN__xl_a2@N__xl_z3(@N_tls_used5PN,_CRT_MTM__dyn_tls_init_callbackmM__xl_cn @N__xl_d$@Nmingw_initltsdrot_forceMmingw_initltsdyn_forceMmingw_initltssuo_forceM __mingw_TLScallbacksGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/cinitexe.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char_PVFVSYFj__xi_a Z @N__xi_z Z@N__xc_a Z@N__xc_z Z@N5KGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/merr.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtpAJcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charfloatsigned charshort intlong long unsigned intdouble long doubletagCOINITBASECOINITBASE_MULTITHREADEDVARENUMnVT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIMEVT_BLOBVT_STREAMVT_STORAGEVT_STREAMED_OBJECTVT_STORED_OBJECTVT_BLOB_OBJECTVT_CFVT_CLSIDVT_VERSIONED_STREAMVT_BSTR_BLOBVT_VECTOR VT_ARRAYVT_BYREFVT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK_iobuf X_ptrY_cntZ_base[_flag\ _file]_charbuf^_bufsiz__tmpfname` FILEbn_exception {Xtype|name}Xarg1~arg2retval^ fUserMathErr w}   __mingw_raise_matherrpAKtypnameXa1a2rsltexPAtP __mingw_setusermatherrAafwA_matherrA[pexcept%type'X%AtMstUserMathErr cM_imp___iob[__setusermatherr wfprintfy2 2 XGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/CRT_fp10.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crt0AV_fpreset 0AGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/mingw_helpers.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crt@Acharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charfloatsigned charshort intlong long unsigned intdouble long doubletagCOINITBASECOINITBASE_MULTITHREADEDVARENUMsVT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIMEVT_BLOBVT_STREAMVT_STORAGEVT_STREAMED_OBJECTVT_STORED_OBJECTVT_BLOB_OBJECTVT_CFVT_CLSIDVT_VERSIONED_STREAMVT_BSTR_BLOBVT_VECTOR VT_ARRAYVT_BYREFVT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK_decode_pointerS@AcodedptrS_encode_pointerSPAptrS mingw_app_typeM9pGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/pseudo-reloc.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crt`Ate__gnuc_va_list__builtin_va_listcharva_listsize_t{"unsigned intintptrdiff_t2short unsigned intlong intlong long intsizetypelong unsigned intunsigned charBYTEzWORD{KDWORD|floatPBYTELPBYTELPVOIDsigned charshort intlong long unsigned intULONG_PTR7SIZE_TRPVOID _MEMORY_BASIC_INFORMATIONE, BaseAddressFq AllocationBaseGq AllocationProtectH RegionSizeIc StateJ ProtectK TypeLMEMORY_BASIC_INFORMATIONM~ ]  fPhysicalAddressgVirtualSizeh _IMAGE_SECTION_HEADER(d NameeM Misci] VirtualAddressj SizeOfRawDatak PointerToRawDatal PointerToRelocationsm PointerToLinenumbersn NumberOfRelocationso NumberOfLinenumbersp" Characteristicsq$PIMAGE_SECTION_HEADERrdouble long doubletagCOINITBASECOINITBASE_MULTITHREADEDVARENUMVT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIMEVT_BLOBVT_STREAMVT_STORAGEVT_STREAMED_OBJECTVT_STORED_OBJECTVT_BLOB_OBJECTVT_CFVT_CLSIDVT_VERSIONED_STREAMVT_BSTR_BLOBVT_VECTOR VT_ARRAYVT_BYREFVT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK_iobuf 1_ptr ~_cnt 2_base ~_flag 2 _file 2_charbuf 2_bufsiz !2_tmpfname "~FILE $;daddend<target=runtime_pseudo_reloc_item_v1>= FsymGtargetHflagsIruntime_pseudo_reloc_item_v2J L magic1Mmagic2NversionOruntime_pseudo_reloc_v2P t old_protectsec_starthash4 __write_memory addrsrclenb,oldprotcall_unprotect2do_pseudo_reloc* start*end*base*addr_imp,9reldata,9reloc_target-9v2_hdr. r/ o_ newvald d__report_errorS`AQ5 msgS5 argpSAK t@M t1 tKA+ t ts!A; "#mark_section_writable $addr%b,%h%i2& AO^ ' /' ' ͦ( D( @) *@ A  '^ %+ (j D)s )| էA tv!>A,lAuC t tL-A[ t@ t sA s tMA t|M.A t\M tv-A tv tLA tv t t,As t@ t u"A( tv t t,MAs< t u.A t|M tL tv#restore_modified_sections %i2%b,%oldprot/_pei386_runtime_relocatorA0was_init2M1mSecs2 * bA 2 2 2! + ). (? D)O R)d )s Ҩ3AD)~ +H ( D4 DA` g' ' /' D+` 5 5 ) W.TA R Q4* %Ax ,' k' ' +x 5 5 ) .:A R Q2* gA ' Ʃ' ک' + 5 5 ) .|A R Q1* A ' !' 5' U+ 5 5 ) h.A 6P R Q4A  t M.A t،M*^ aA + ) |( D( @-A_ tL-Ap t @.A t|M!8Athe_secsMt maxSections2M 178_imp___iob [8__RUNTIME_PSEUDO_RELOC_LIST__08__RUNTIME_PSEUDO_RELOC_LIST_END__18_image_base__29__builtin_fwrite fwrite"::":":;vfprintf }2::5 :1_GetPEImageBase?memcpy:::>__mingw_GetSectionCount2GNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/xtxtmode.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtm_fmodeMintH GNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/crt_handler.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtAcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charW_EXCEPTION_RECORDPExceptionCodeExceptionFlagsQExceptionAddress NumberParametersExceptionInformationG_CONTEXT+ContextFlags,Dr0-Dr1.Dr2/ Dr30Dr61Dr72FloatSave3SegGs4SegFs5SegEs6SegDs7Edi9Esi:Ebx;Edx<Ecx=Eax>Ebp?Eip@SegCsAEFlagsBEspCSegSsDExtendedRegistersE BYTEz@ DWORD|+floatsigned charshort intlong long unsigned int ULONG_PTR7+ PVOID LONG_FLOATING_SAVE_AREApControlWordStatusWordTagWord ErrorOffset! ErrorSelector"DataOffset#DataSelector$RegisterArea%Cr0NpxState&l  O FLOATING_SAVE_AREA'     CONTEXTF PCONTEXTHA  W  EXCEPTION_RECORDW PEXCEPTION_RECORDW_EXCEPTION_POINTERSpContextRecord0 EXCEPTION_POINTERS PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTERdouble long doubletagCOINITBASECOINITBASE_MULTITHREADEDVARENUM. VT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIMEVT_BLOBVT_STREAMVT_STORAGEVT_STREAMED_OBJECTVT_STORED_OBJECTVT_BLOB_OBJECTVT_CFVT_CLSIDVT_VERSIONED_STREAMVT_BSTR_BLOBVT_VECTOR VT_ARRAYVT_BYREFVT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK __p_sig_fn_t0B H S _gnu_exception_handler_gnu_exception_handler@4A exception_data old_handlerB action?reset_fpuЫA" t;t05A t;A" 4 t8t0AD t8A" ^ t8t0A" x t8t1A? A" t4t0A t44A" t4t1TA" t;t1tA" t8t1__mingw_oldexcpt_handler+Msignal<. ? . _fpreset)$aGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/tlsthrd.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtA'charsize_t{unsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charWINBOOLnWORD{DWORD|6floatLPVOID\signed charshort intlong long unsigned intULONG_PTR76LONG HANDLE|\_LIST_ENTRYC4FlinkD4BlinkE4LIST_ENTRYF_RTL_CRITICAL_SECTION_DEBUG ETypemCreatorBackTraceIndexmCriticalSectionProcessLocksList:EntryCountyContentionCountyFlagsyCreatorBackTraceIndexHighmSpareWORDm_RTL_CRITICAL_SECTIONDebugInfoLockCountRecursionCountOwningThread LockSemaphoreSpinCountEPRTL_CRITICAL_SECTION_DEBUG MRTL_CRITICAL_SECTIONECRITICAL_SECTIONdouble long double__mingwthr_key_ty __mingwthr_key  key y dtor! next"  \ a__mingwthr_run_key_dtorsbkeypdvaluelAmuA!PAtvAdtMAtM___w64_mingwthr_add_key_dtor)Awkey)ydtor)new_key+9At1t<8AtMVAtMa___w64_mingwthr_remove_key_dtor@pAkey@yprev_keyBmcur_keyCAtMAtMAAtM__mingw_TLScallbacky^AhDllHandleyreasonzyreserved{#A R A5A z A_AtMAtM__mingwthr_cs0M__mingwthr_cs_initM key_dtor_list&M calloc\ !free \ GNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/tlsmcrt.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtL_CRT_MT  Bint*8GNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/pseudo-reloc-list.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crt__RUNTIME_PSEUDO_RELOC_LIST_END__ѦMchar__RUNTIME_PSEUDO_RELOC_LIST__ЦM5dGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/crt/pesect.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtAKcharsize_t{unsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charWINBOOLnBYTEzJWORD{DWORD|5floatPBYTElLPVOID[signed charshort intlong long unsigned intLONG_PTR6 ULONG_PTR75DWORD_PTRLONG l@) _IMAGE_DOS_HEADER@ e_magicx e_cblpx e_cpx e_crlcx e_cparhdrx e_minallocx e_maxallocx e_ssx e_spx e_csumx e_ipx e_csx e_lfarlcx e_ovnox e_res e_oemidx$ e_oeminfox& e_res2( e_lfanew#<x)x) IMAGE_DOS_HEADER@PIMAGE_DOS_HEADER@ _IMAGE_FILE_HEADERK MachineLx NumberOfSectionsMx N PointerToSymbolTableO NumberOfSymbolsP SizeOfOptionalHeaderQx %RxIMAGE_FILE_HEADERS _IMAGE_DATA_DIRECTORY @ SizeIMAGE_DATA_DIRECTORY _IMAGE_OPTIONAL_HEADERW Magicx MajorLinkerVersionl MinorLinkerVersionl SizeOfCode SizeOfInitializedData SizeOfUninitializedData AddressOfEntryPoint BaseOfCode BaseOfData ImageBase SectionAlignment FileAlignment$ MajorOperatingSystemVersionx( MinorOperatingSystemVersionx* MajorImageVersionx, MinorImageVersionx. MajorSubsystemVersionx0 MinorSubsystemVersionx2 Win32VersionValue4 SizeOfImage8 SizeOfHeaders< CheckSum@ SubsystemxD DllCharacteristicsxF SizeOfStackReserveH SizeOfStackCommitL SizeOfHeapReserveP SizeOfHeapCommitT LoaderFlagsX NumberOfRvaAndSizes\ DataDirectoryW`g)IMAGE_OPTIONAL_HEADER32PIMAGE_OPTIONAL_HEADER32PIMAGE_OPTIONAL_HEADER _IMAGE_NT_HEADERS( Signature FileHeader OptionalHeadergIMAGE_NT_HEADERS32PIMAGE_NT_HEADERS32_ IMAGE_NT_HEADERS ( PIMAGE_NT_HEADERS C f PhysicalAddressg VirtualSizeh _IMAGE_SECTION_HEADER(d Namee0 Misci  @j SizeOfRawDatak PointerToRawDatal PointerToRelocationsm PointerToLinenumbersn NumberOfRelocationsox NumberOfLinenumberspx" %q$PIMAGE_SECTION_HEADERr  b %c OriginalFirstThunkd _IMAGE_IMPORT_DESCRIPTORa  f ForwarderChainh Namei FirstThunkjIMAGE_IMPORT_DESCRIPTORk PIMAGE_IMPORT_DESCRIPTORl  double long double_ValidateImageBase]J 5pDOSHeader~ pOptHeader A~   , (7 p A   ǭ, 7 AJ _FindPESection- A=& 5-rva-/~ 0 EO1X_FindPESectionByNameC 0ApNameC5EF~ wG OH JA O   , 7 !jAJ "P#EA $tw!A$ts$tw$t8 %__mingw_GetSectionForAddressb APpb5d&rvaeݮ A8 h 8  , 7 !AJ "P!A "t"t__mingw_GetSectionCountp A+35rs~ ' "AP v P  , 7 !:AJ "P_FindPESectionExec PAweNo5~ ( RO-' SAh  h  , 7 !zAJ "P_GetPEImageBaseA*@5' A   , 7 !AJ "P_IsNonwritableInCurrentImage]ATpTarget5&rvaTargetW j A   , 7 !AJ "P!:A "t"t__mingw_enum_import_library_names`Ai5š~ &importDescİ  Я&importsStartRVAƄ hA   , 7 !AJ "P!A "t$ts)_image_base__*strlen6+,strncmpL+++0A[A../../mingw-w64-crt/math/floor.S/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtGNU AS 2.24.90HGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/math/cos.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crt`Adouble long doublefloatcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charlong long unsigned int__fpclassifypxpswcos`A x3 x_class5 gA 5+  gA CAGt A At1t8Mt`t t XA At1t8Mt t tX__cosl_internal0 _errno:__mingw_raise_matherrGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/math/cosf.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crt Adoublefloatcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charlong long unsigned int long doublecosf A_X/At cosHiGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/math/sin.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crt@A_double long doublefloatcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charlong long unsigned int__fpclassifypxpswsin@A x3 x_class5 GA 5+ V GA dAGt yA At1t@Mt`t t XA At1t@Mt t tX__sinl_internal0 _errno:__mingw_raise_matherrGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/math/sinf.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtA)doublefloatcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charlong long unsigned int long doublesinfA_XAt sinGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/misc/mingw_matherr.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crt_MINGW_INSTALL_DEBUG_MATHERR BintA AFA../../mingw-w64-crt/math/cosl_internal.S/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtGNU AS 2.24.90UyHAnA../../mingw-w64-crt/math/sinl_internal.S/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtGNU AS 2.24.90iGNU C 4.9.1 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99../../mingw-w64-crt/misc/invalid_parameter_handler.c/build/buildd/mingw-w64-3.2.0/build/i686-w64-mingw32-i686-w64-mingw32-crtPAcharunsigned intintuintptr_twchar_tshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charfloatsigned charshort intlong long unsigned intLONG_PTR63PVOIDLONG3PLONGpdouble long double ????E  tagCOINITBASE| COINITBASE_MULTITHREADED VARENUM VT_EMPTY VT_NULL VT_I2 VT_I4 VT_R4 VT_R8 VT_CY VT_DATE VT_BSTR VT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMAL VT_I1 VT_UI1 VT_UI2 VT_UI4 VT_I8 VT_UI8 VT_INT VT_UINT VT_VOID VT_HRESULT VT_PTR VT_SAFEARRAY VT_CARRAY VT_USERDEFINED VT_LPSTR VT_LPWSTR VT_RECORD$ VT_INT_PTR% VT_UINT_PTR& VT_FILETIME VT_BLOB VT_STREAM VT_STORAGE VT_STREAMED_OBJECT VT_STORED_OBJECT VT_BLOB_OBJECT VT_CF VT_CLSID VT_VERSIONED_STREAM VT_BSTR_BLOB VT_VECTOR VT_ARRAY VT_BYREF VT_RESERVED VT_ILLEGAL VT_ILLEGALMASKED VT_TYPEMASK _InterlockedExchange3PTargetPValue3V3InterlockedExchange#Target#Value#mingw_get_invalid_parameter_handlerPAmingw_set_invalid_parameter_handler`A rnew_handler[`A {ԦM`A $A2ԦMhandlerԦM_imp___set_invalid_parameter_handler  B_imp___get_invalid_parameter_handler B% $ > : ;I I : ; : ;I8  : ;I8   : ; : ; I & 'I II!I/ !I/ : ; : ;I I8 ' : ;  : ; I8 'I'&I : ; (  : ; : ;  : ; : ; I .?: ;'I !: ;I"4: ;I#5I$: ;I%<&.?: ;'I '.?: ; 'I (: ; I): ; I*.: ;' + ,.: ; '@B-: ; I..: ;'I /.: ; 'I@B01RUX Y 1 U241341415B6171894: ; I:4: ; I; U<1X Y =1X Y>1? @1A1RUX Y B1RUX YC1X YD1X Y EFG.?: ; 'I@BH4: ; I IB1J4: ; I?<K5L!M4: ; I?N4: ;I?<O.?: ; '<P.?: ; 'I<Q.?: ; 'I<R.?: ;'I<S.?'I4<T.?: ; '<U.?: ;'<% $ > : ; I  I'I&I  : ;  : ; I8 <  : ;  ( : ;I : ; : ;I8 5I : ; : ; I8 .: ;' : ;I: ;I.: ;'@B: ;I: ;I.1@B1 U11.?: ;'I@B 4: ;I! "4: ;I#1$B%1&.?: ;'<'.?: ; 'I<(.?: ;'I<).?: ; '<*+.?: ; 'I<% $ > : ; I  I&I'< 'I I : ;I  : ;  : ; I8  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 '5I : ; (  : ;.: ; '@B: ; I4: ; I1 : ; I!4: ; I"1#B$B1%1&.: ; 'I@B'.: ; ' (: ; I)4: ; I*.?: ; 'I@B+1RUX Y ,1- U.41/1X Y 011 24: ; I34: ; I4.?: ;'<5.?: ; 'I<67.?: ; '<8.?: ;'I<9.?: ; 'I<:.?: ;'<% $ > : ; I  I&I : ;  : ; I8 ' <  : ;  ( : ;I : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; I8 .?: ; '@B: ; I4: ; I1BB1 4: ; I!: ; I"B1#.?: ; 'I@B$: ; I%4: ; I&4: ; I'1()1*.?: ; 'I<+.?: ;'<,-.?: ;'I<..?: ; 'I</.?: ; '<0.?: ;'<% $ >  I: ; I &I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.: ; 'I@B: ; I: ; I4: ; I1 B!1"1#.?: ; 'I@B$4: ; I%&.?: ; 'I<'.?: ; '<(.?: ;'I<).?: ;'<*.?: ; '<% $ >  I: ; I &I'<  : ;  : ; I8 : ;I  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ; : ;I8 .: ;' : ;I: ;I4: ;I 4: ;I!.: ; 'I ": ; I#4: ; I$4: ; I% &.: ; ' ': ; I(.: ; 'I@B): ; I*: ; I+.: ;'@B,: ;I-4: ;I.1/10B112: ;I3B14.: ; '@B54: ; I64: ; I7 U8 9: ;I:1X Y;1< =41>4: ;I?B1@.1@BA1B1 C1RUX Y D UE41F1RUX Y G41H1I.?: ;'I@BJ4: ;IK1RUX YL4: ;IM1X YN.?: ;'<O.?: ; 'I<PQ.?: ; '<R.?: ; 'I<S.?: ;'I<T.?: ; '<U.?: ;'<% $ >  I: ; I &I : ;  : ; I8 ' <  : ;  ( : ;I : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ;I8  : ;.: ; 'I : ; I4: ; I: ; I .: ; ' !4: ; I".?: ; '@B#: ; I$4: ; I%1&B'1(: ; I): ; I*B1+.: ; '@B,: ; I-1.B1/.1@B011412 3 441541617 U8 U9.?: ; 'I@B:4: ; I;<4: ; I=.?: ;'I<>.?: ; '<?.?: ; 'I<@.?: ;'<AB.?: ; 'I<C.?: ;'<% $ > : ; I  I&I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.: ; '@B: ; I4: ; I1B B1!: ; I".: ; 'I@B#1$.?: ; 'I@B%1&'4: ; I(.?: ; 'I<).?: ;'<*.?: ; '<+.?: ;'I<,.?: ; 'I<-.?: ;'<% $ >  I: ; I 'I&I  : ;  : ; I8 ' < : ; I8  : ;( : ;I : ; : ;I8  : ;I8  : ;  : ; II!I/  : ;  : ; I 8  : ; I 8 5I'I : ;I 8  : ; : ;I : ;I! : ;" : ;I8# : ;I8$ : ; % : ; I8& : ; I8'.: ;' (: ;I).: ;'@B*: ;I+: ;I,: ;I- .4: ;I/1RUX Y011 U24131415B6B1718.: ; '@B9: ; I:: ; I;4: ; I<.: ; 'I@B=4: ; I> : ; ?4: ; I@4: ; IA.?: ; 'I@BB C D E.: ; 'I F4: ; IG4: ; IH.: ; ' I: ; IJ.?: ;'I@BK4: ;IL4: ;IM4: ;IN1RUX YO UP41QR.?: ;'I<S.?: ;'I<T.?: ;'<UV.?: ; 'I<W.?: ; '<X5Y.?: ; 'I<Z.?: ; 'I<% $ > : ; I  I&&I<  : ;  : ; I8 ' : ;I  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.: ; '@B: ; I: ; I  4: ; I!1"1#B$1%.?: ; 'I@B&4: ; I'4: ; I().?: ; 'I<*.?: ;'I<+.?: ;'<,.?: ; 'I<-.?: ; '<..?: ;'<% $ >  I: ; I &&I<  : ;  : ; I8 ' : ;I  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.: ; '@B: ; I: ; I4: ; I 4: ; I!1"B#1$1% &.?: ; 'I@B'4: ; I().?: ; 'I<*.?: ;'<+.?: ; 'I<,.?: ;'I<-.?: ; '<./.?: ;'<% $ >  I: ; I &&I<  : ;  : ; I8 ' : ;I  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.: ; '@B: ; I: ; I4: ; I 4: ; I!1"B#1$1%.: ; 'I@B& '.?: ; 'I@B(4: ; I)*.?: ; 'I<+.?: ;'<,.?: ; 'I<-.?: ;'I<..?: ; '</0.?: ;'<% $ >  I: ; I &&I<  : ;  : ; I8 ' : ;I  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.: ; '@B: ; I: ; I4: ; I 4: ; I!1"B#1$1% &.?: ; 'I@B'4: ; I().?: ; 'I<*.?: ;'<+.?: ; 'I<,.?: ;'I<-.?: ; '<./.?: ;'<% $ >  I: ; I &&I<  : ;  : ; I8 ' : ;I  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.: ; '@B: ; I: ; I4: ; I 4: ; I!1"B#1$1% &.?: ; 'I@B'4: ; I().?: ; 'I<*.?: ;'<+.?: ; 'I<,.?: ;'I<-.?: ; '<./.?: ;'<% $ >  I: ; I &I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.: ; '@B: ; I4: ; I1B 1!B1"4: ; I#1$.?: ; 'I@B%: ; I&4: ; I'(.?: ; 'I<)*.?: ; '<+.?: ; 'I<,.?: ;'I<-.?: ;'<..?: ; 'I<% $ > : ; I  I&I'< : ;I  : ;  : ; I8 : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; : ;I8  : ;.: ; 'I : ; I: ; I .: ; '@B!: ; I": ; I#4: ; I$4: ; I%1&1'B(1).: ; 'I@B*: ; I+4: ; I,.1@B-1. /10.?: ; 'I@B14: ; I2.?: ;'I<3.?: ; '<4.?: ;'<5.?: ; 'I<6.?: ; 'I<7.?: ;'<% $ > : ; I  I&'I &I  : ;  : ; I8 : ; I8 '<: ;I : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 5I : ; (  : ;'I : ; .: ; '@B: ; I : ; I!4: ; I"4: ; I#4: ; I$ %1&B'1(.: ; 'I@B)4: ; I*4I4+ U,1-: ; I.: ; I/B104: ;I14: ;I2.: ; 'I 34: ; I44: ; I5.: ; ' 64I47 8.: ;' 9: ;I:4: ;I;.?: ;'I@B<: ;I=4: ;I>4: ;I?1RUX Y@ UA41B41C1RUX Y D1X YE F1GH.?: ;'I<I.?: ; 'I<J.?: ; '<K.?: ;'<LM.?: ; 'I<N.?: ;'<% $ >  I: ; I &I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.?: ; 'I@B: ; I4: ; I11 B!"1#4: ; I$.?: ;'I<%.?: ;'<&.?: ; 'I<'(.?: ; '<).?: ;'<% $ >  I: ; I &I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.?: ; 'I@B4: ; I4: ; I1B 1!: ; I"1#$.?: ; 'I<%&.?: ; '<'.?: ;'I<(.?: ;'<).?: ; 'I<*.?: ; '<% $ >  I: ; I &'II ' &I ' <  : ;  : ; I8  : ; I8 : ;I : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 5I : ; (  : ;I8  : ; : ;I 8  : ; : ;I! : ;I" : ; #.: ; 'I $: ; I%: ; I&4: ; I'.: ; ' ( )4: ;I*.: ;'@B+: ;I,: ;I-: ;I.: ;I/4: ;I04: ;I112B31415.: ; 'I@B64: ; I7 84: ; I 94: ; I:;.1@B<1=B1>4: ; I?: ; I@: ; IA1RUX Y B1C UD41E41F1X Y G.: ; '@BH1RUX YI1BJ.: ;'I@BK4: ;IL4: ;IM.?: ;'I@BN UO41 P4: ; IQ4: ; I?R.?: ;'<S.?: ; 'I<T.?: ; '<UV.?: ;'I<W.?: ; 'I<X.?: ;'<% $ >  I: ; I &I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.?: ; 'I@B: ; I4: ; I11 B!"1#4: ; I$.?: ;'I<%.?: ;'<&.?: ; 'I<'(.?: ; '<).?: ; '<% $ > : ; I  I&I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.: ; '@B: ; I: ; I: ; IB1 B!.: ; 'I@B"4: ; I# $4: ; I%1&1'1(.?: ; 'I@B)4: ; I*+.?: ;'<,.?: ; 'I<-.?: ;'I<..?: ; '</.?: ; 'I<0.?: ; 'I<% $ > : ;I I&I: ; I & <  : ;  : ; I8 '  : ; (  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; I8  : ;'I'I.: ;'I : ;I .: ; ' !: ; I".: ;' #4: ;I$4I4% &: ; I'4: ; I(4: ; I) : ; *.: ;'@B+: ;I,.: ; 'I@B-: ; I.4: ; I/4: ; I0 14: ; I23B415167.1@B819 U:1RUX Y; U<41=1RUX Y >1?41@1A.1@BB C41DB1E1 F1RUX Y G 1H.: ;'I I.?: ;'I@BJ4: ;IKL4: ;I?<M.?: ; 'I<N.?: ; '<OP.?: ;'I<Q.?: ;'<R.?: ; 'I<S.?: ;'<% $ > : ; I  I&I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.?: ; 'I@B: ; I4: ; I4: ; I1 1!B"#.?: ;'I<$.?: ;'<%.?: ; 'I<&.?: ; 'I<'.?: ; '<% $ >  I: ; I &I'<  : ;  : ; I8 : ;I  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;I8  : ;I 8  : ; : ;I : ;I : ; .: ; 'I !: ; I"4: ; I#.: ; ' $: ; I%4: ; I& '.: ; 'I@B(: ; I)4: ; I*1RUX Y +1, U-41.41/ 011B213.: ; '@B4: ; I5: ; I6: ; I74: ; I84: ; I94: ; I: U;.1@B<1=41> ?.?: ; 'I@B@1AB.?: ;'I<C.?: ; '<D.?: ; 'I<E.?: ;'<FG.?: ; 'I<H.?: ;'<% $ >  I: ; I 'I&I  : ;  : ; I8 ' <  : ; ( : ;I : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 5I : ; I8  : ;'I.: ; '@B1.: ; 'I@B: ; I : ; I!4: ; I"4: ; I#1$B%: ; I& '1(4: ; I)B1*.: ; ' +4I4, -4: ; I. /.: ; 'I 0.?: ; 'I@B14: ; I21RUX Y3 U4415 U64171X Y8 94: ; I?:4: ; I?;.?: ;'<<=.?: ;'I<>.?: ; '<?.?: ; 'I<@.?: ; 'I<A.?: ;'<% $ > : ; I  I'I&I ' < : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 5I : ; (  : ; I8  : ;.: ; 'I 4: ; I.: ; '@B: ; I4: ; I 4: ; I!1"B#1$1%.: ; ' &: ; I'.?: ; 'I@B( )1RUX Y *1+ U,41-41.41/0.?: ; 'I<1.?: ;'I<2.?: ; '<34.?: ;'<5.?: ; 'I<6.?: ;'<% $ > : ; I  I&I : ;  : ; I8 ' < : ; I8 'I I: ;I : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 '5I : ; (  : ;.: ;'@B: ;I4: ;I4: ;I 1!B"1#B1$: ;I%.: ; 'I@B&: ; I'4: ; I( U)4: ; I*4: ; I+ ,4: ; I-.1/ U0.: ; '@B1: ; I2.: ;' 3: ;I4.?: ;'I@B54: ;I61X Y718.?: ; 'I<9.?: ;'<:.?: ; '<;.?: ;'I<<=.?: ; 'I<>.?: ; 'I<% $ >  I: ; I &I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.: ; '@B: ; I4: ; I1B !B1".?: ; 'I@B#1$1%4: ; I&.?: ; 'I<'(.?: ; '<).?: ;'I<*.?: ;'<+.?: ; 'I<,.?: ; 'I<% $ > : ; I  I&I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.: ; 'I : ; I 4: ; I.: ; '@B : ; I!B1"B#.1@B$1% &1' (41)1*1+.?: ; 'I@B,4: ; I-1./4: ; I0.?: ;'<1.?: ;'I<2.?: ; 'I<34.?: ; '<5.?: ; '<% $ >  I: ; I &'I &I <  : ;  : ; I8 : ; I8 ': ;I : ; : ;I8  : ;(  : ;  : ; II!I/  : ;  : ; I 8  : ; I 8 5I'I : ;I8  : ;I 8  : ; : ;I! : ;I" : ;# : ;I8$ : ;I8% : ; & : ; I8' : ; I 8( : ; I8).: ; ' *: ; I+.: ; 'I ,: ; I-.: ; '@B.: ; I/.: ;'I@B0: ;I1: ;I2: ; I314B516.: ;'@B71X Y819B1:4: ; I;1X Y <1= >41?.: ; '@@4: ; IA4: ; IB1C: ; ID.?: ; 'I@BE4: ; IF UG H I.: ;'I J: ;IK4: ;IL.?: ;'I@BM4: ;IN4: ;IO4: ;IP4: ;IQ1RUX YR US1RUX Y TU4: ; IV.?: ;'I<W.?: ;'<X.?: ; '<Y.?: ; 'I<Z[5\.?: ; 'I<].?: ;'I<^.?: ; 'I<% $ > : ; I  I&I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.: ; 'I@B: ; I4: ; I1B 1!.: ; 'I ": ; I#4: ; I$.?: ; 'I@B%4: ; I&4: ;I'1X Y(1) *41+1,-!I/..?: ; 'I</.?: ; '<0.?: ;'<1.?: ; 'I<2.?: ;'I<3.?: ; '<% $ >  I: ; I &I'< 'I I : ;I  : ;  : ; I8  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 '5I : ; (  : ;I8  : ;I 8  : ; : ;I : ;I  : ;! : ; ".: ; 'I@B#: ; I$: ; I%1&.: ; 'I@B'4: ; I(.: ; '@B)4: ; I*1+B,1-.: ; 'I .4: ; I/ 0.: ; ' 1: ; I2.?: ; 'I@B3 44: ; I51RUX Y6 U7418419 U:1X Y;1< =>4: ; I?.?: ;'I<@.?: ; 'I<A.?: ;'<BC.?: ; '<D.?: ; 'I<E.?: ;'I<% $ >  I: ; I &I'<  : ;  : ; I8 : ;I  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.: ; ' : ; I4: ; I.: ; 'I@B: ; I 4: ; I!4: ; I"4: ; I#1$1%B&1'.1@B(1)41* U+1, U-41..?: ; 'I@B/: ; I0 12.?: ; 'I<3.?: ;'I<45.?: ; 'I<6.?: ; '<7.?: ;'<8.?: ;'<% $ >  I&I: ; I 'I  : ;  : ; I8 ' <  : ; ( : ;I : ; : ;I8  : ; : ;  : ; II!I/  : ; I8  : ; I 8  : ; I 8 5I'I : ;I8  : ;I 8  : ; : ;I : ;I! : ;" : ;I8# : ;I8$ : ; % : ; I8& : ; I 8' : ; I8(.: ;' ): ;I*: ;I+4: ;I,4I4- .4: ;I/.: ;' 0.?: ;' 1.: ; '@B2: ; I314B5.: ;'I@B6: ;I74: ;I8B19: ;I:1;: ; I<: ; I=4: ; I>4: ; I?4: ; I@: ; IAB1B.: ; 'I@BC1D.: ; ' E: ; IF: ; IG4: ; IH4: ; II1X Y J1K1L M41N41O4: ;IP4: ;IQ UR4: ;IS.: ;'@BT: ;IU.: ;'@V4: ; IW4: ; I X Y.1@BZ1 [41\BB]1^ U_.?: ; 'I@B` a1X Y b.?: ;'I@Bcd.?: ;'<e.?: ;'I<f.?: ;'I<g.?: ; 'I<h.?: ; '<ij5k.?: ; 'I<l.?: ;'<% $ >  I: ; I 'I&I  : ;  : ; I8 ' <  : ; ( : ;I : ; : ;I8  : ; : ;  : ; II!I/  : ; I8  : ; I 8  : ; I 8 5I'I : ;I8  : ;I 8  : ; : ;I : ;I! : ;" : ;I8# : ;I8$ : ; % : ; I8& : ; I 8' : ; I8(.: ; ' ): ; I*: ; I+.: ;' ,: ;I-: ;I.4: ;I/4I40 1.: ;' 2.: ; '@B3: ; I4: ; I51X Y 61718B9.: ; 'I@B:4: ; I;B1<.: ;'I@B=: ;I>: ;I?1@4: ;IA4: ;IB UC4: ;ID1E.: ;'@BF: ;IG4: ;IH.: ; '@I4: ; IJ4: ; IK4: ; IL4: ; I M N.1@BO1P41Q41R1 S T41UB1VBBW1X UY.?: ; 'I@BZ [4: ; I\1X Y ].?: ;'I@B^_.?: ;'<`.?: ;'I<a.?: ;'I<b.?: ; '<c.?: ; 'I<de5f.?: ; 'I<g.?: ;'<% $ > : ; I  I&I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8 .?: ; 'I@B: ; I4: ; I 4: ; I1 B!1"#1$.?: ; 'I<%.?: ;'I<&.?: ;'<'.?: ; '<(.?: ; 'I<).?: ;'<% $ > : ; I  I&I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.?: ; '@B: ; I: ; I4: ; I4: ; I 4: ; I!1"B#1$1%.?: ; 'I@B&'.?: ;'I<(.?: ; 'I<).?: ; '<*+.?: ;'<,.?: ; 'I<-.?: ;'<% $ > : ; I  I&I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8 .?: ; 'I@B: ; I4: ; I4: ; I11 B!"1#.?: ;'I<$.?: ;'<%.?: ; 'I<&.?: ; '<'.?: ; 'I<(.?: ; '<% $ > : ; I  I'I&I  : ;  : ; I8 ' < : ;I : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 5I : ; (  : ; I8  : ;'I.: ; 'I : ; I4: ; I.: ; 'I@B : ; I!: ; I"4: ; I# U$4: ; I%1&B'1(1).: ; 'I@B*.?: ; 'I@B+ ,1RUX Y -1. U/4101.?: ; '<2.?: ; 'I<3.?: ;'<4.?: ;'I<56.?: ; 'I<7.?: ;'<% $ >  I: ; I &I : ;  : ; I8 ' < : ;I  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;I8  : ;I 8  : ; : ;I : ;I : ; .: ; ' !: ; I": ; I#4: ; I$4: ; I%.: ; 'I &.: ; '@B': ; I(: ; I)4: ; I*4: ; I+1,B-1.B1/.: ; 'I@B0: ; I14: ; I24: ; I314.1@B516417418 91: ;41<.?: ; 'I@B=1X Y >1 ?@.?: ;'<A.?: ; '<B.?: ; 'I<C.?: ; 'I<D.?: ;'I<% $ >  I&I: ; I &<  : ;  : ; I8 ' : ;I : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; : ; .: ; '@B: ; I4: ; I 1!B1": ; I#4: ; I$4: ; I%1&B'1(.?: ; 'I@B) U*4: ; I + ,-.?: ; '<..?: ;'</.?: ; 'I<0.?: ;'I<12.?: ; 'I<3.?: ;'I<% $ > : ; I  I&I : ;  : ; I8 ' < 'I I  : ; ( : ;I : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 '5I : ; I8 .: ; 'I@B: ; I4: ; I4: ; I1 B!1"1#.: ; '@B$: ; I%B1&.?: ; 'I@B'4: ; I().?: ; 'I<*+.?: ; '<,.?: ;'I<-.?: ;'<..?: ; 'I</.?: ;'<% $ >  I: ; I &'I &I ' < : ;I  : ;  : ; I8  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 5I : ; (  : ;I8 'I : ;.: ; '@B: ; I : ; I!4: ; I"1#B$1%.?: ; 'I@B&4: ; I'4: ; I( U)1*.: ; 'I@B+4: ; I, -.4: ; I?/.?: ;'<061.?: ;'I<2.?: ; 'I<3.?: ;'I<4.?: ; '<5.?: ; 'I<6.?: ;'<% $ >  I: ; I 'I&I ' < 'I : ;I  : ;  : ; I8  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 5I : ; (  : ;I8  : ;.: ; ' : ; I: ; I .: ; ' !.: ; '@B": ; I#: ; I$1%B&B1'1(1).: ; 'I@B*1X Y +: ; I,.1@B-1. /10.?: ; 'I@B14: ; I24: ; I344: ; I54: ; I6.?: ;'<7.?: ; '<8.?: ;'I<9.?: ; 'I<:.?: ; 'I<;<.?: ;'<% $ >  I: ; I &I'<  : ;  ( : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; I8  : ;I8  : ;I 8  : ; : ;I : ;I : ; .: ; '@B!: ; I": ; I#B1$B%: ; I&4: ; I'1(1)B1*.: ; 'I@B+.?: ; 'I@B,4: ; I-1.4: ; I/.?: ; '<0.?: ;'I<12.?: ; 'I<3.?: ;'<4.?: ; 'I<5.?: ;'<% $ > : ; I  I&I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.?: ; 'I@B: ; I4: ; I4: ; I4: ; I 1!1"B#$1%.?: ;'I<&.?: ;'<'.?: ; 'I<(.?: ; '<).?: ; 'I<*+.?: ; '<% $ >  I: ; I 'I&I ' < : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 5I : ; (  : ; I8  : ;.: ; '@B: ; I4: ; I1B B1!.?: ; 'I@B": ; I#4: ; I$1%1&: ; I': ; I(4: ; I)*.?: ; 'I<+.?: ; '<,.?: ; 'I<-.?: ;'<..?: ;'I</0.?: ; '<% $ >  I: ; I &I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.: ; ' : ; I.: ; '@B: ; I1 B1!.1@B"1#.?: ; 'I@B$: ; I%4: ; I&4: ; I'1X Y (1 )1*B+,1-4: ; I..?: ; '</.?: ;'I<0.?: ;'<1.?: ; 'I<23.?: ; 'I<4.?: ; 'I<% $ > : ; I  I&I : ;  : ; I8 ' <  : ;  ( : ;I : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; I8 .?: ; 'I@B: ; I4: ; I11B 1!".?: ;'I<#.?: ;'<$.?: ; 'I<%.?: ; 'I<&.?: ; '<'(.?: ;'I<% $ > : ; I  I&I : ;  : ; I8 ' < : ;I  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.: ;' : ;I4: ;I4: ;I: ;I .: ;'I !.: ;'@B": ;I#4: ;I$4: ;I%4: ;I&4I4'1X Y(1)1*B+1, -1..1@B/10411412 34141 5.: ; ' 6: ; I7.: ; ' 84: ; I94I4: ;.?: ;'I@B<: ;I=1RUX Y> U? U@A.?: ; 'I<B.?: ;'<C.?: ;'I<D.?: ; 'I<E.?: ; '<FG.?: ;'<% $ >  I: ; I &I'< 'I I : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 '5I : ; (  : ; I8  : ;.: ; '@B: ; I: ; IB1 B!.: ; 'I ": ; I#: ; I$4: ; I%4: ; I&4: ; I'4: ; I(1RUX Y )1* U+41,41-1.1/10.: ; 'I@B1: ; I24: ; I3.?: ; 'I@B4 56.?: ;'I<7.?: ; 'I<8.?: ;'<9.?: ; '<:.?: ; 'I<;<.?: ;'<% $ > : ; I  I&I : ;  : ; I8 ' <  : ;  ( : ;I : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; I8 .?: ; 'I@B: ; I4: ; I4: ; I 11 B!"1#4: ; I$.?: ;'I<%.?: ;'<&.?: ; 'I<'.?: ; '<(.?: ; 'I<).?: ;'<% $ >  I: ; I &'II ' &I  : ;  : ; I8 '< : ; I8  : ; ( : ;I : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 5I : ;.: ; 'I : ; I: ; I : ;I! "4: ;I#.: ; ' $4: ; I%.: ;'I@B&: ;I': ;I(4: ;I)1*B+1,.: ; 'I@B-: ; I.: ; I/: ; I04: ; I14: ; I24: ; I314.: ;'@B54: ;I64I47 U8 9B1:.: ; '@B;: ; I<4: ; I=1RUX Y >1? U@41A41B1X Y C D4: ;IE4: ;IF: ;IG.1@BH1I41J1X YK.: ;' L4: ;IM.?: ;'I@BN1RUX YOP4: ; IQ.?: ; 'I<R.?: ; '<S.?: ;'I<T.?: ; 'I<U.?: ;'<VW.?: ; 'I<% $ > : ; I  I&I : ;  : ; I8 ' < : ;I  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8 .: ; ' : ; I4: ; I.: ; 'I@B: ; I4: ; I 1RUX Y !1 "1# U$41%41&1'B(1).?: ; 'I@B* +4: ; I,1-..?: ;'</.?: ;'I<0.?: ; 'I<1.?: ; '<2.?: ; 'I<34.?: ;'<% $ > : ; I  I&I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; (  : ; I8  : ;.: ; '@B: ; I4: ; I4: ; I4: ; I 1!B"1#.: ; 'I $4: ; I%4: ; I& '.: ; ' (: ; I)4: ;I*4: ;I+.?: ;'I@B,: ;I- .4: ;I/4: ;I04: ;I11X Y2 341441516178.?: ; 'I<9.?: ;'I<:.?: ;'<;<.?: ; '<=.?: ; 'I<>.?: ;'<% U$ > : ; I < I&I : ;  : ; I8  : ;  : ; I I !I/.?: ;'I@B1B.: ;'@B4: ; I4: ;I.?: ; 'I<I.?: ; '<.?: ; '<% U$ > : ;I I: ; I &&I <  : ;  : ; I8 '  : ; (  : ; : ;I8  : ;  : ; II!I/  : ; I 8  : ; I 8 'I5I : ; I8  : ;'I.: ;'I : ;I4: ;I .: ; '@B!: ; I"4: ; I#4: ; I$ U%1&B'1().: ;'@B*: ;I+4: ;I,4: ;I-: ; I.: ; I/4: ; I0114: ; I24: ;I34: ;I4.?: ;'@B5: ;I6: ;I7.: ;' 8.: ;' 9: ;I:4: ;I;4I4< = >4I4?1X Y@ A41B1RUX YC1D UE41F G1H.: ;'@BI.?: ;'I@BJ4: ; IK4: ; I?<L4: ; I?M.?: ; 'I<N.?: ;'I<O.?: ; '<P.?: ;'<QR.?: ; 'I<S.?: ; n'I<T.?: ; 'I<% $ >  : ; I I'I' : ;  (  : ; .?: ; 'I@B : ; I 4: ; I4: ; I11B14: ; I?'II4: ; I?<.?: ; 'I<.?: ; '<.?: ; '<% $ > : ;I I' : ; (  : ; : ; I .?: ; '@B 4: ; I 4: ; I 1B.?: ; '@BB1I!4: ; I?<.?: ;'I<I% $ >  : ; (  : ; : ; : ; I4: ; I? 5I  I 5% 4: ; I?$ > % $ >  I'I : ; (  : ;: ; I .: ; 'I@B B 4: ; I?% $ > .?: ; 'I@B% $ >  I : ; : ;I8  : ;I8   : ; : ; I : ;I  : ;  : ; I : ;II!I/ !I/ : ;  : ; I8  : ;  : ; I.?: ; '@B4: ; I4: ; IB: ; I15I&I 4: ; I?!.?: ;'<% 4: ; I?$ > % $ > : ;I I : ; I'I  : ; : ;I8 ' .?: ; 'I  : ; I4: ; I.: ; 'I@B: ; I1B.1n@B141 1 41.?: ; 'I@B: ; I4: ; I4: ; I?&I4: ; I?< .?: ; 'I<% $ > : ; I I'I!I/ 4: ; I?% $ >  I : ; (  : ; : ;  : ; I8 : ; I &I 'I I .?: ; '@B: ; I4: ; IBB1.?: ; 'I@B4: ; I1I!4: ; I?<.?: ; '<.?: ;'I<% .?: ; '@B% $ >   : ; (  : ;.?: ; 'I@B: ; I 4: ; I?% : ; I I$ > : ;I I &  : ; : ;I8 I !I/  : ; : ;I : ; (  : ; : ;  : ; I8  : ;  : ; : ; I.: ;' : ;I4: ;I .: ; '@B: ; I4: ; I1 B!1"&I#.: ; ' $: ; I%4: ; I&.1@B'1(41)41*1RUX Y+ U,B-.1/.?: ;'@B04: ;I14: ;I213 41RUX Y54167!84: ; I?<9.?: ; n'I<:I;.?: ;'I<<.?: ;'<=.?: ; 'I<>.?: ; 'I<?.?'I4<% 4: ; I?$ > % $ >  I : ; : ;I8  : ;I8   : ; : ; I : ;I I !I/ !I/'II : ; (  : ;'.?: ; n'I@: ; I4: ; I1B114: ; I?.?: ; 'I<.?: ; '<% $ > : ;I : ; I : ; : ;I8  I  : ;  : ; I8 ' I 5I.: ; ' 4: ; I .1@B41 B.?: ; 'I@B: ; I4: ; I111RUX Y  U414: ; I .?: ;'I<!.?: ;'<% 4: ; I?$ > % 4: ; I?$ > % $ > : ;I : ; I II!I/  : ; : ;I8 : ;I8  : ; : ;I : ;I I8 .?: ; 'I : ; I4: ; I4: ; I.1@B14141B1.?: ; 'I@B: ; I: ; I4: ; I: ; I1RUX Y 1 U!1"#1$B%&I&4: ; I'1RUX Y (4: ; I)4: ; I?<*.?: ; 'I<+I,.?: ; 'I<%% $ >  I&I.?: ;'I : ;I4: ;I.?: ; 'I@B : ; I 4: ; I 1X Y  1 411B11.?: ; 'I<I.?: ; 'I<.?: ; '<% $ > .?: ;'I@B: ; I1B.?: ; 'I<I% $ >  I&I.?: ;'I : ;I4: ;I.?: ; 'I@B : ; I 4: ; I 1X Y  1 411B11.?: ; 'I<I.?: ; 'I<.?: ; '<% $ > .?: ;'I@B: ; I1B.?: ; 'I<I% 4: ; I?$ > %%% $ > : ;I : ; I I'I &I  : ;  (  : ; .?: ;'I : ;I5I.?: ; 'I : ; I.: ; 'I@B.: ; 'I@B: ; I1X Y 114: ; I'I4: ; I?'I ../../mingw-w64-crt/crt/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/include/psdk_inc/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/include../../mingw-w64-crt/includecrtexe.cintrin-impl.h_mingw.hwinnt.hminwindef.hbasetsd.herrhandlingapi.hprocessthreadsapi.hstdlib.hcombaseapi.hwtypes.hinternal.hmath.htchar.hinterlockedapi.hctype.hstring.hprocess.h@ <-z~.YdzZ lgg2`~Jf~<=]]0;$pN8$*@47@}fz. <xf1z JuX .Π܅YN_S1 u< K;[M#+>g8@f_dZS] @+fzt~J <_z< <_z<} /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio../../gtkapplication.cglibconfig.hgtypes.hgquark.hgerror.hgdataset.hgfileutils.hgmessages.hgvarianttype.hgvariant.hgtype.hgobject.hgioenums.hgiotypes.hgcancellable.hgdbusnamewatching.hgtktypes.hgtkwidget.hgspawn.hgtklabel.hgdbusconnection.h`@Bɠ M WA[>';YX Dh /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtkassistant.cglibconfig.hgtypes.hgdataset.hgmain.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgdktypes.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkbox.hgtkentry.hgtkassistant.hgtkprogressbar.hgstrfuncs.hgmem.hgtklabel.hgtkcheckbutton.h`@,JMgfN;/Zg;/ZsKe`>f@hɟ0v X)XPI/J[=?g2Y82xatZ,ZZfY/Z$Y/$,=D:FfY/Z$=1<Wf؃==$<bfYYYL555?_ /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtk../../gtk/deprecatedbuilder.cglibconfig.hgtypes.hgquark.hgerror.hgdataset.hgmessages.hgscanner.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgdktypes.hgtktypes.hgtkbuilder.hgtkstylecontext.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkaction.h@ ?KK;MgKI]AUJ4Yvt bfYY#1K5K"a /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtk/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includebutton_box.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgdktypes.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkbox.hgtkbbox.hgtkframe.hlibintl.hgtkbutton.h@ ,0i===ln4Y82w tL5LY/v=/?????</v=/<<<<<CI /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtk../../gtk/deprecated/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includechangedisplay.cglibconfig.hgtypes.hgquark.hgdataset.hgslist.hgmain.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgdktypes.hgdkevents.hgdkcursor.hgtkenums.hgtktypes.hgtkadjustment.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkmisc.hgtklabel.hgtkbox.hgtktreemodel.hgtkcellrenderer.hgtktreeviewcolumn.hgtkeditable.hgtkliststore.hgtkentry.hgtktreeview.hgtktreeselection.hgtkframe.hgtksizegroup.hgtkscrolledwindow.hgdkdisplay.hgstrfuncs.hgmem.hlibintl.hgdkdisplaymanager.hgdkwindow.hgtkmain.hgdkdevice.hgdkscreen.hgtkbutton.hgtkcellrenderertext.hgdkmain.h$@fXNuua'h<JtRq1U:y5YY/Y91ZH0(w91y.XKsrt JKsuXtKd.uG106yug:0 D+_;MM>B..82YXK#UNXifYrY;/Z04Ot1tOJZhY/=/$Y/=/v!I/($I/($-,DiοoyUB370Y/$$fY;/[+1/w,{ӡ:0& /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk/home/vagrant/ruby-gnome2.win32/gdk_pixbuf2/vendor/local/include/gdk-pixbuf-2.0/gdk-pixbuf../../gtk../../gtk/deprecated/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includeclipboard.cglibconfig.hgtypes.hgquark.hgerror.hgdataset.hgmessages.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgdktypes.hgdkdnd.hgdkevents.hgdk-pixbuf-core.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkmisc.hgtkmenushell.hgtkmenu.hgtkbox.hgtkselection.hgtkdnd.hgtkimage.hgtkentry.hgtkmenuitem.hgtkclipboard.hgtkicontheme.hgtkiconfactory.hlibintl.hgtklabel.hgtkbutton.hgtkeventbox.h0@XQ82KBJQ><\pNY,00LVlX(:0stu! (qXXM;/KWtXNv:0KWJXM;/KWt3)JNfrZr00Y07:ZfX;/LV>u2Y82xL5=/Z$=/$Ys/=;/,$=/$Ys/=;/,$=/$ZYI/(,,(,,ZYI/(,,(,,"5 /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtkcolorsel.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgdkrgba.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkbox.hgtkframe.hgtkcolorchooser.hgtkcolorchooserdialog.hgdkcairo.hgtkbutton.hgtkdrawingarea.h:@,MK/0KIhKWK3KIKIoJK#\14Y82w Ff3ogghL5L=/YYY)Z+Z[Z/$:Y /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtk/home/vagrant/ruby-gnome2.win32/atk/vendor/local/include/atk-1.0/atk/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includecombobox.cglibconfig.hgtypes.hgarray.hgdataset.hgslist.hgregex.hgtype.hgvalue.hgparam.hgclosure.hgsignal.hgobject.hgbinding.hpango-attributes.hcairo.hgdktypes.hgdkevents.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hatkobject.hatkrelationset.hgtkcontainer.hgtkbin.hgtkbox.hgtktreemodel.hgtkcellrenderer.hgtkeditable.hgtkliststore.hgtkentry.hgtktreeview.hgtkcombobox.hgtkcelllayout.hgtkcomboboxtext.hgtktreestore.hgthread.hgquark.hgtkcellview.hlibintl.h gtkframe.hgtkcellrendererpixbuf.hgtkcellrenderertext.h0>@ lXlJv +pfY/ JsXoJT MGM">>KI\=;/;[bkEO;/Y=;Zuet2*2XXjJ@v@=% J t=&4 J< 6|4Y82w ~}tfL5Ls/=/;KY}00ZdLY; hr .Y@;/YY;/$$Y;/$$/==u;/YYu((=/v=/~X~.Kv91/v=/Y/uuY/# /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio../../gtkcss_accordion.cglibconfig.hgtypes.hgarray.hgquark.hgerror.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgioenums.hgtkenums.hgtktypes.hgtkstylecontext.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkcssprovider.hgtkstyleprovider.hgtkbox.hgtkbutton.hgresource.hgbytes.h K@ XfJe=Y/2Y82xPfsY5=/Y/H /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango../../gdk../../gtkcss_basics.cglibconfig.hgtypes.hgarray.hgquark.hgerror.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgioenums.hpango-attributes.hgdktypes.hgtktypes.hgtkadjustment.hgtkstylecontext.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtktexttag.hgtktextiter.hgtktexttagtable.hgtktextbuffer.hgtkcsssection.hgtkcssprovider.hgtkstyleprovider.hgtktextview.hgmem.hgdkscreen.hgtkscrolledwindow.hgresource.hgbytes.hM@݁=-V{:M-VA=fxKI#XfJe=u.2Y82xPsY5/(Z0us/Y,041j /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtkcss_multiplebgs.cglibconfig.hgtypes.hgarray.hgquark.hgerror.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgioenums.hpango-attributes.hcairo.hgdktypes.hgtkenums.hgtktypes.hgtkadjustment.hgtkstylecontext.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtktexttag.hgtktextiter.hgtktexttagtable.hgtktextbuffer.hgtkcsssection.hgtkcssprovider.hgtkstyleprovider.hgtkoverlay.hgtktextview.hgmem.hgdkscreen.hgtkrender.hgtkdrawingarea.hgtkbutton.hgtkpaned.hgtkbox.hgtkscrolledwindow.hgresource.hgbytes.hQ@݁=-V{:M-VA=fxKI#f73W=IVLH&=IVLH$\XfJe=u2Y82xsY5Y/\Y/0Y/vs/[=/(Z0Y/,04v /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango../../gdk../../gtkcss_pixbufs.cglibconfig.hgtypes.hgarray.hgquark.hgerror.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgioenums.hpango-attributes.hgdktypes.hgtkenums.hgtktypes.hgtkadjustment.hgtkstylecontext.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtktexttag.hgtktextiter.hgtktexttagtable.hgtktextbuffer.hgtkcsssection.hgtkcssprovider.hgtkstyleprovider.hgtktextview.hgmem.hgdkscreen.hgtkpaned.hgtkbox.hgtkscrolledwindow.hgresource.hgbytes.hW@݁=-V{:M-VA=fxKI#XfJe=u52Y82xIsY5=/(Z0Y/,04  /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango../../gdk../../gtkcss_shadows.cglibconfig.hgtypes.hgarray.hgquark.hgerror.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgioenums.hpango-attributes.hgdktypes.hgtkenums.hgtktypes.hgtkadjustment.hgtkstylecontext.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtktexttag.hgtktextiter.hgtktexttagtable.hgtktextbuffer.hgtkcsssection.hgtkcssprovider.hgtkstyleprovider.hgtktoolitem.hgtktoolbutton.hgtktextview.hgtktoolbar.hgmem.hgdkscreen.hgtkpaned.hgtkscrolledwindow.hgresource.hgbytes.h[@݁=-V{:M-VA=fxKI#XfJe=\Y/Z=/>=/>=/?\u42Y82xJsY5Y/(Z0Y/,04 /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtk../../gtk/deprecated/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includedialog.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgdktypes.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkmisc.hgtklabel.hgtkbox.hgtkentry.hgtkbutton.hgtkgrid.hgtkmessagedialog.hlibintl.hgtkimage.hgtkframe.hgtkseparator.ha@#t Aw< JZ0Y/$=$Y/$/u,0u,^s'N/u f:4Y82w tL5L=/=s//($0=s/>r0Y/$$Y/$/Y'YY,Y'Y /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtk../../gtk/deprecateddrawingarea.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgdkevents.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkmisc.hgtklabel.hgtkbox.hgtkframe.hgdkcairo.hgdkwindow.hgtkdrawingarea.h`h@ zXzJ4z<gZH0J%)@bNJPz.&yx8VG@~jTNK(z<^Z,0={!-=KJt;gZ:0[u9@8vL YWlJtKWKMNT3p\yt5l1[]L5L=/Y/$/$Z00/$/$Z00000# /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtk/usr/share/mingw-w64/includeeditable_cells.cglibconfig.hgtypes.hgarray.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgdktypes.hgtkenums.hgtktypes.hgtkadjustment.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkbox.hgtktreemodel.hgtkcelleditable.hgtkcellrenderer.hgtktreeviewcolumn.hgtkliststore.hgtktreeview.hgtktreeselection.hgtkcombobox.hgtkcellrenderertext.hgtkscrolledwindow.hgstrfuncs.hgmessages.hgmem.hstdlib.hgtkcellrenderercombo.hgtkcellrendererprogress.hgtklabel.hgtkbutton.ho@tM>G/Zy;/u\=;/vnxXRsu=DDKY^"pt>K ,vHQE>H0$W&e'W%6u2Y82xKK50=/;KZw}$\$$.\XisHssss**ڼr>`ztzX8-1quZZw;/JYI/H,0v4Y/w,v4Y/64=/Y(/$$/$$}.% /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtk../../gtk/deprecated/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includeentry_buffer.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkmisc.hgtklabel.hgtkbox.hgtkentrybuffer.hgtkentry.hlibintl.h{@ m(1[]W0z^Z55ʀ0;//$?91Y$/$ /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtk../../gtk/deprecated/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includeentry_completion.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkmisc.hgtklabel.hgtkbox.hgtktreemodel.hgtkliststore.hgtkentrycompletion.hgtkentry.hlibintl.h@}@_G?G1$$$`-1[]R0z^Z55ʀ0;//$Y;/[91Y;/  /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtkevent_axes.cglibconfig.hgtypes.hgdataset.hglist.hghash.hgstring.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hpango-layout.hcairo.hgdktypes.hgdkrgba.hgdkevents.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgdkdevice.hpangocairo.hgdkcairo.hgmem.hgdkproperty.hgtkeventbox.h @7Z"?s/Yv/vgI/u}M'+iJKKIXtJ;KY;/v0,0mL1/"u tW,L&guFX4 R.tYI/QXKWf*KWYMM/W0w ."KgZxv!$2pLf4<L Z=uu&s/$*|xJPu>E>uEC]2Y82x^f-YZ5u}/}f<[,6K /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtk/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includeexpander.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkbox.hlibintl.hgtklabel.hgtkexpander.h@^ 1[]_0z^Z55ʀ0;/$/v /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtkgestures.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgdkevents.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkeventcontroller.hgtkgesture.hgtkgesturelongpress.hgtkgesturerotate.hgtkgestureswipe.hgtkgesturezoom.hgtkdrawingarea.h@;wuIu Is hH0H*Gw0X XJ JʃgIu-/WK-8$HJ"I=*" u;/ovV>22-Jv.&W=f<ןqJqty.hJJJZV>=[%.愃- XדcBs"dZf!._.\uu0=/YYYK555=;/IKY>:0;/,/(;/5/,,<D<$==5ֻ;/,/(;/6<JXZ5 t=1[]x /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio../../gdk../../gtkheaderbar.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgiotypes.hgdktypes.hgtkenums.hgtktypes.hgtkstylecontext.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkheaderbar.hgtkbutton.hgthemedicon.hgtkimage.hgtkbox.hgtktextview.h@@|$4Y82w S5Y/Ys/Y/;/Y=;/KY/uY/u RM /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtkhypertext.cglibconfig.hgtypes.hgdataset.hgslist.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hpango-font.hpango-attributes.hcairo.hgdktypes.hgdkevents.hgdkcursor.hgtkenums.hgtktypes.hgtkadjustment.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtktexttag.hgtktextiter.hgtktextbuffer.hgtkscrolledwindow.hgtktextmark.hgtktextview.hgdkwindow.hp@iG^%J[J-/"Qac~J:u$ТIu=  Xw((LbKK-/w",00!z S!.juyw[@pC#_.uW\JuKIvi,4Y82w OtrZ5KLY/0000Y/  /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk/home/vagrant/ruby-gnome2.win32/gdk_pixbuf2/vendor/local/include/gdk-pixbuf-2.0/gdk-pixbuf../../gtk/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includeiconview.cglibconfig.hgtypes.hgquark.hgerror.hgdataset.hgdir.hgfileutils.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgdktypes.hgdk-pixbuf-core.hgtkenums.hgtktypes.hgtkadjustment.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkbox.hgtktreemodel.hgtktreesortable.hgtkliststore.hgtkiconview.hgtktoolitem.hgtktoolbutton.hgtkscrolledwindow.hgtktoolbar.hgmem.hgunicode.hgconvert.hgstrfuncs.hgtestutils.hgutils.hlibintl.hP@=VV~ XvJ J48WN[s-/ك-/lZ0Z#LvZi-/fXRv4ɒwKtf OSO"wH`^zXP,lT\LV$,Z0=-Y2, /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk/home/vagrant/ruby-gnome2.win32/gdk_pixbuf2/vendor/local/include/gdk-pixbuf-2.0/gdk-pixbuf../../gtkiconview_edit.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgdktypes.hgdkrgba.hgdk-pixbuf-core.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtktreemodel.hgtkcellrenderer.hgtkliststore.hgtkcelllayout.hgtkcellrenderertext.hgtkiconview.hgmem.hgtkcellrendererpixbuf.h@kMGr0$S^,y5,I="H;1,s/Z/$/$/$/$/$/$;/~w[X/6m /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtk/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includeinfobar.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgbinding.hgdktypes.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkbox.hgtkinfobar.hgtkmessagedialog.hgtklabel.hgtktogglebutton.hlibintl.hgtkframe.h @XM-E3,KWgnX t4Y82w >r0L5LYY;/;/)I/Y;/;/)I/$/Y1$;/)I/Y;/;/)I/Y;/;/)I/弻s/=/$.C /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtk../../gtk/deprecatedlinks.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgdktypes.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkmisc.hgtklabel.hgtkmessagedialog.hgtestutils.h@ K<k.(y55M4Y82w ]fKK5 v .0 /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk/home/vagrant/ruby-gnome2.win32/gdk_pixbuf2/vendor/local/include/gdk-pixbuf-2.0/gdk-pixbuf../../gtk/home/vagrant/ruby-gnome2.win32/atk/vendor/local/include/atk-1.0/atk../../gtk/deprecated/usr/share/mingw-w64/includelistbox.cglibconfig.hgtypes.hgarray.hgquark.hgerror.hgdataset.hgdatetime.hgslist.hgtype.hgvalue.hgparam.hgclosure.hgsignal.hgobject.hgioenums.hcairo.hgdktypes.hgdkevents.hgdk-pixbuf-core.hgtkenums.hgtktypes.hgtkadjustment.hgtkwidget.hgtkwindow.hatkobject.h atkrelationset.h gtkcontainer.hgtkbin.hgtkmisc.h gtklabel.hgtkbox.hgtkimage.hgtkbutton.hgtklinkbutton.hgtklistbox.hgtkrevealer.hgtkscrolledwindow.hgmem.hgstrfuncs.hgthread.hstdlib.h gresource.hgbytes.h@u~J ~J>~J$$$$$$$$$$$$$uuvtf?#eg@====/u!-g-g>p&<Mq.Me.Y?i/1~< T:J n|.1[a]N,rZK5Y$=/$Y;/0(,L~0vvYYt~]<#].1K$ /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtkflowbox.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgdkrgba.hgtkenums.hgtktypes.hgtkadjustment.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkflowbox.hgtkscrolledwindow.hgdkcairo.hgtkbutton.hgtkdrawingarea.h@Mv0V0VfzXfJ1[7]^K5=/KYY/;KYzYI/(uyUN /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtklist_store.cglibconfig.hgtypes.hgdataset.hgmain.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgdkevents.hgtkenums.hgtktypes.hgtkadjustment.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkbox.hgtktreemodel.hgtkcellrenderer.hgtktreeviewcolumn.hgtkliststore.hgtktreeview.hgtkcellrenderertoggle.hgtkscrolledwindow.hgtkcellrenderertext.hgtkcellrendererspinner.hgtkcellrendererpixbuf.hgtklabel.h@VPwLH"u~X 9/19Y2u0?n?tܼ;:0?:-/Ltf/L-HIKY&I^W->H1.0><~JM/VvuI9MtrM7K0j;)@8P-/IIUIN8/1"VK-~"JM/VvuIH0(,/>H0(,//Y,6V /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk/home/vagrant/ruby-gnome2.win32/gdk_pixbuf2/vendor/local/include/gdk-pixbuf-2.0/gdk-pixbuf../../gtk/usr/share/mingw-w64/includepixbufs.cglibconfig.hgtypes.hgquark.hgerror.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgdk-pixbuf-core.hgdk-pixbuf-transform.hgdkframeclock.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkmessagedialog.hmath.hgdkrectangle.hgdkcairo.hgtkdrawingarea.hPAy.{6gm?xJ`x  G^t L|v.:ؑrL>rH:&t- .yXuxx .uuX .vt  ft .t<Ng w  Xw. MJx.e!-=KJY24ZWYv XYFfKL5X~3Z+Z[Z~/=-Y1=->0,v.:0  /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtkpopover.cglibconfig.hgtypes.hgquark.hgerror.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgdkevents.hgtkenums.hgtktypes.hgtkbuilder.hgtkwidget.hgtkcontainer.hgtkbin.hgtkwindow.hgtkentry.hgtkbutton.hgtkcalendar.hgtktogglebutton.hgtkpopover.hgdkwindow.hgtkmain.hgtkbox.hgtklabel.hAtFN>KIKHI/^Z:0.p'=L1iCXOH=5.x&2Y82xSYY/Y5s/11,tY/׃>;/Zuvw,,Y/( /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gtk/usr/share/mingw-w64/includeprinting.cglibconfig.hgtypes.hgarray.hgquark.hgerror.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgioenums.hpango-font.hpango-layout.hcairo.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkmessagedialog.hgtkprintcontext.hgtkprintsettings.hgtkprintoperation.hgmem.hgstrfuncs.hpangocairo.hmath.hgresource.hgbytes.h0#AJMKI tvt t(uׄr0Y;/?GZg>'4u=0r0Ye/'u+Zv/Ko`[(&lzJ>&0K;=ezXWfNYs/Ys/Ye/>,,,Z010 5 /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtkrevealer.cglibconfig.hgtypes.hgquark.hgerror.hgdataset.hgmain.hgmessages.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgdktypes.hgtktypes.hgtkbuilder.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkrevealer.hgstrfuncs.h)ANK00zX:h02aJM= KWKLKI]@VJɿute  bJYY#1K5?U /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtk../../gtk/deprecated/usr/share/mingw-w64/includerotated_text.cglibconfig.hgtypes.hgdataset.hgunicode.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hpango-types.hpango-language.hpango-font.hpango-attributes.hpango-fontmap.hpango-layout.hcairo.hgdktypes.hpangocairo.hgtkenums.hgtktypes.hgtkstylecontext.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkmisc.hgtklabel.hgtkbox.hpango-context.hstring.h gtkdrawingarea.h0,AZH=x:; us"HT tJo(z<0K/KHLOSF[u4w. <htXtփ;/Yw,vgI"Wg$/-K]/sKZ;/=-t XM<7Y,4Y82w QfK5=/YY;/w0s/Z#;/%;/Y /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtk../../gtk/deprecated/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includesearch_entry.cglibconfig.hgtypes.hgdataset.hgmain.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgdktypes.hgdkevents.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkmisc.hgtkmenushell.hgtkmenu.hgtklabel.hgtkbox.hgtkentry.hgtkbutton.hgtkmenuitem.hgtknotebook.hgtkseparatormenuitem.hlibintl.hgtksearchentry.h 3AJKxIoJLxIoJKxIt===z~h<JɡKWKKIt<Z<(Jfei=1k=!w==IKK;]ffNZr0YI/(I/(I/((Jtu׃,v Xu< sZHL/u!W ! t2Y82xYYKK5YY/Y/$YI/$1$I/$=;//$;/,,=;//$/,,,6Y /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtk../../gtk/deprecatedsidebar.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkmisc.hgtkbox.hgtkimage.hgtkheaderbar.hgtkstack.hgtkstacksidebar.hgtkseparator.hgtklabel.hBAtqXq.0..1[a]NȻYYY/YL5Ys/Y/zzX[$1=/^u <tQ /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtk../../gtk/deprecated/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includesizegroup.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkmisc.hgtklabel.hgtkbox.hgtkcombobox.hgtkbutton.hgtktogglebutton.hgtkcomboboxtext.hgtkgrid.hgtksizegroup.hlibintl.hgtkframe.hgtkcheckbutton.h0EA?QyJQEkKIMXNvI=iFN/(s/Y(t;1[a]Dȷ0z^Z55ʀ0;//vY//vY//6X /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtk/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includespinner.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkbox.hgtkbutton.hgtkspinner.hlibintl.hgtkentry.hIA=ɑ;w<=ɑ; N㟓}tQywu~YWNuvtYvt[-N㟔;Y~,L?cMGqO,M#1+?GMwtYeK}J,/LV14Yb2wX ~.tptK5MI/44Y;/$$I/44444Y;/$$=K[X<J:LY-K>BI/?HL">??x<>=I/xN JqX N>Y;/Ys/Y=xDx.#.s/u;/$;/4;/D;/D=/==/==/==/=4=/}<=/00Y/$0 $Y/@$=/Y/$=/& /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtktransparent.cglibconfig.hgtypes.hgquark.hgerror.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgtkenums.hgtktypes.hgtkadjustment.hgtkstylecontext.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkcssprovider.hgtkstyleprovider.hgtkoverlay.hgtkscrolledwindow.hgtktextview.hgtkentry.hgstrfuncs.hgmem.hAqw/~t.=~tJ~tJ=~tjJ=r~t.~t-uJ~z.LIg6r0.:$r0%"1'H0.7$r0%".0q1%&A4q1%",4q1%"/0q1%"(w34Y82w K5KLZ0Y/Ys/YuY/>0=0 /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtktree_store.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgdktypes.hgtkenums.hgtktypes.hgtkadjustment.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkbox.hgtktreemodel.hgtkcellrenderer.hgtktreeviewcolumn.hgtktreeview.hgtktreeselection.hgtkcellrenderertoggle.hgtkscrolledwindow.hgtktreestore.hgtkcellrenderertext.hgtklabel.hAvH JwJ?1M+?GM\֟22Yb2xXMKK5=/Y0=/;KZw~( Luf .>v=  t< \;/Y~tY-/4Y-/v, T/Y-/v, D/Y-/v, T/Y-/v, D/Y-/v, D/00'x9 /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/giodemo_resources.cglibconfig.hgtypes.hgiotypes.hgresource.hA=pA=A=  /usr/share/mingw-w64/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango/home/vagrant/ruby-gnome2.win32/gdk_pixbuf2/vendor/local/include/gdk-pixbuf-2.0/gdk-pixbuf../../gtk../../gtk/deprecatedmain.c_mingw.hglibconfig.hgtypes.hgarray.hgquark.hgerror.hgdataset.hgfileutils.hglist.hgmessages.hgstrfuncs.hgvariant.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgioenums.hgiotypes.hgapplication.hgmenumodel.hgactionmap.hpango-font.hgdk-pixbuf-core.hgdk-pixbuf-animation.hgtkenums.hgtktypes.hgtkadjustment.hgtkbuilder.hgtkwidget.hgtkwindow.hgtkapplication.hgtkcontainer.hgtkbin.hgtkaboutdialog.hgtkmisc.h gtktreemodel.hgtktreeviewcolumn.hgtktexttag.hgtktextiter.hgtktexttagtable.hgtktextbuffer.hgtkimage.hgtktreeview.hgtktreeselection.hgtkheaderbar.hgtknotebook.hgtkscrolledwindow.hgtktextview.hgtktreestore.hdemos.hgmem.hgtkmain.hstring.hgbytes.hgresource.hgunicode.hgtestutils.hgtklabel.hstdlib.hgenviron.hAO4,v,02-0,xfQH;/u>yXO&yz70PYIu} JUZt NgL=-/g['>gr_3fK<X"Igf #>\LLstzvLi zLiJ X䑟uXXRzJ  ytJ~g=X-KY-Kl'Y<'0@00[ ../../mingw-w64-crt/crt/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/include../../mingw-w64-crt/includeatonexit.ccombaseapi.hwtypes.hstdlib.hinternal.hA!O:LhsYZ;/u< 2=;Y ../../mingw-w64-crt/crt/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/includegccmain.ccombaseapi.hwtypes.h_mingw.hstdlib.hA]/?cOKi]Lr]w. /build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/include../../mingw-w64-crt/crt../../mingw-w64-crt/includecombaseapi.hwtypes.hnatstart.cinternal.h?9 ../../mingw-w64-crt/crtwildcard.c ../../mingw-w64-crt/crt/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/include../../mingw-w64-crt/includecharmax.ccombaseapi.hwtypes.hinternal.h0AN8 ../../mingw-w64-crt/crtdllargv.c@A ../../mingw-w64-crt/crt/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/includegs_support.cwinnt.hminwindef.hbasetsd.hstdlib.hPA2yUv tdKM5gY"ft= <qte XY?9 ../../mingw-w64-crt/crt_newmode.c ../../mingw-w64-crt/crt/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/includetlssup.c_mingw.hminwindef.hbasetsd.hwinnt.hAV,LLLKGKMGNKYy?U"J8O9 ../../mingw-w64-crt/crtCRT_fp10.c0A  ../../mingw-w64-crt/crt/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/includemingw_helpers.ccombaseapi.hwtypes.h@A ../../mingw-w64-crt/crt/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/includepseudo-reloc.cvadefs.h_mingw.hminwindef.hbasetsd.hwinnt.hcombaseapi.hwtypes.hstdio.hstdlib.h`AJHL/<fgӤ-/k!u>/(8txw*vL,edtwftY!~֦ fvX" >rJA)fx&?+,X<v,L ../../mingw-w64-crt/crt/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/includecrt_handler.cwinnt.hminwindef.hbasetsd.herrhandlingapi.hcombaseapi.hwtypes.hsignal.hAt <=Mq<>Hbt=MX`=Z>It=_zm,V ../../mingw-w64-crt/crt/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/includetlsthrd.c_mingw.hminwindef.hbasetsd.hwinnt.hminwinbase.hstdlib.hAzdv0x< JmtO=-/1Mq/vhV?hq?g->tXNTNJicAL s<Juhr 1*8 ../../mingw-w64-crt/crttlsmcrt.cHB ../../mingw-w64-crt/crtpseudo-reloc-list.c ../../mingw-w64-crt/crt/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/includepesect.c_mingw.hminwindef.hbasetsd.hwinnt.hstring.hA =39tP tP.?IuqdR/lRx.]YKg=>0L= ../../mingw-w64-crt/math/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/includecos.def.hmath.herrno.h`A3<JY}Jkk~;Mw1  ../../mingw-w64-crt/math/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/includecosf.cmath.h A== ../../mingw-w64-crt/math/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/includesin.def.hmath.herrno.h@A3<JY}Jkk~;Mw1  ../../mingw-w64-crt/math/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/includesinf.cmath.hA==E? ../../mingw-w64-crt/miscmingw_matherr.cc? ../../mingw-w64-crt/mathcosl_internal.S A%K//Y/!/////Y///c? ../../mingw-w64-crt/mathsinl_internal.SHA)K//Y/!/////Y///jE ../../mingw-w64-crt/misc/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/include/psdk_inc/build/buildd/mingw-w64-3.2.0/debian/tmp/usr/i686-w64-mingw32/includeinvalid_parameter_handler.cintrin-impl.h_mingw.hbasetsd.hwinnt.hcombaseapi.hwtypes.hinterlockedapi.hPAvx|  @ @C  H q A 0@CC0,@3AI F} AAA A @CR@CR|  `@ p@9U b(@ACP AB A| (`@AC WA@(@dAA AC K A AAA GA AA(@#C _( @ZC w F Y4(@jAA C F  AAC W AAD(@AA AC0o C AAF M A AAA | T@$C \T0@0AC fA T`@ Tp@WC@y D M C | 4@AA CE  C AAF D@AA AC0o C AAF M A AAA |  d$@4d$@rAA CP}  AAA j AA d%@Pd0%@jAA AACP AA AAG [ AA AAE 8d&@AA AAC@AA AA8d'@yAA AAC`mAA AA8d(@AA AAGP{AA AA d(@ Td(@AA AAC`V AA AAA   AA AAA $d@+@EAA C { CA<d+@AA AACP AA AAC DdP.@#AA AC0 A AAH MC AA| $0@=AA C u AA 0@0@1AC kA4 1@FAA C q  AAH C AA4p1@AE@A CF q AA SA$P2@.AA C b AA$2@:AA C n AA$2@>AA C r AA@3@AA CC0M A AAH F AA4 4@FAA C q  AAH C AAPp4@IAA AAC@o CA AAD M AA AAA | :@xAC0nA(@;@=AC R AI WA;@*AC _F8;@uAA C0o  CAH M  AAA |  0>@ @>@ 4P>@AA C I  AAA B AA>@3AC mA0?@EAC {A$?@>AA C t CA0?@^AA AC PA AA< @@AA CAPCA AA@C@QC@APD@AA AACo CA AAD M AA AAA | 4 K@lAA C J  AAA W AA8 K@AA C@o  CAH M  AAA | 8 M@AA AAFAA AA0 `N@AA ACA AA4 O@lAA C J  AAA W AAP pO@8AA AACPo CA AAD M AA AAA | 8$ Q@AA AAFAA AA0$ pR@AA ACA AA0$ S@AA ACPC AA4$ S@lAA C J  AAA W AAP$ 0T@YAA AACPo CA AAD M AA AAA | 8h W@AA AAFAA AA0h PX@AA ACA AA4h X@lAA C J  AAA W AAPh `Y@xAA AACPo CA AAD M AA AAA | 8x[@AA AAFAA AA0x\@AA ACA AA4x@]@lAA C J  AAA W AA(x]@AA C  CAPx^@iAA AACPo CA AAD M AA AAA | <a@AA AACPv AA AAO c@hAC0bAD@d@AA AC0o C AAF M A AAA | 0p`h@AA CC@A AA(pi@oAE@D CC [Cpi@;V U0pi@AA AC@F AAp`j@2AE0hC8pj@AA AACpFA AA0pk@IAC [ CA Y CA ECDpl@zAA AC0j A AAA M A AAA | 8o@~AA AAC@rAA AA$p@;AA C s AAD@p@AA ACp? A AAH _ A AAA q@%Pr@kAA AACp AA AAA dAA AAPps@AA AACo CA AAD M AA AAA | D{@-AA AC0j A AAA M A AAA | (@}@AA C@ CA8~@AA C0j  AAA M  AAA | 8X @NAA CAE`>AA AAXp@}AC wAX@ AC VA<X@;AA AAC` CA AAA $XP@;AA C o AA4X@HAA G r  AAC C CA4X@ AA CG A AAI 8X@AA AACp AA AA8X @AA C0o  CAH M  AAA | 88@AA C0j  AAA M  AAA |  @ @ @ Ќ@ @), @#AA F  FAA 8P@AA C0o  CAH M  AAA |  X @)lXP@AA CCPNLCPd@HPELIPUDCPK C AAE UDCPo@HPDLCPEA AAXp@AA F[  CAI fHIIPCgNMHIHqxHYHICQCIHH HA4X0@QAC [ AA VH JC CAX@aAC@WAX@AA AACP[ AA AAJ VHCPNLHPQHCPWHHPa@CPQHCPLCP\HCPRHHPELHPQDCPdDCPo@CPtLCPKLCPILIP]HIPKHCPMHCP<X@AA CAC`$ CA AAA X@SC j C M C | P@@!AA AAC@o CA AAD M AA AAA | 4Lp@^AA AC C AAA 8LУ@AA CAG@yAA AADL`@AA CEpJ A AAI  A AAI 8L@^AA CAC0PAA AA(LP@=AA F_  AAG 4L@_AA C`X  CAA x CADL@WAA AC0o C AAF M A AAA | P@LC H(@AA C@  CAA 8@LAA CACp>AA AA4Ь@AA CP  AAA O AA@HAC ~A(Э@aAA C U AAP@@AA AAC@o CA AAD M AA AAA | 0p@iAA AC@_A AA(pp@BAA Cp: AAPp@AA AAC`o CA AAD M AA AAA | 08P@XAA AC JA AA8@tC W F H80@{AA AFr F AAA  A AAB $8@5AA C i AA$8@9AA C m AAD80@AA AC0o C AAF M A AAA | 4 @AA C0  AAF C AAP@AA AAC@o CA AAD M AA AAA |  @ @AC0C( P@NAC0o CJ M AB |  @ @ @3AC mA @ 0@fAC `A0 @CAA AC xA AAD @AA AC  A AAA ^A AA @ @4 @iAA C C  AAF V AA p@ @  @S0l @QC0AP @FAA AACPj AA AAK M AA AAA | "@?AC@wCP"@@6AA FAKs AA AAE P AA AAA |  #@;c W$ #@QCPFEP0 #p@AA ACPA AAT #@AA AACw AA AAA X AA AAA | D$@IA CAJ`AA AAF`@$@AA AC S A AAD [A AAP$@@pAA AAC@o CA AAD M AA AAA | $@C W $@$@0C l0$ @AA CGPA AA $@!($@@ACP AK cC$@AC`AD$@GAA AC`M C AAH f C AAE ($`@ AA G`  AAE $p@$C `$@$C `T$@dAA AAC[ AA AAJ  AA AAA $@@?AC xA4$@(AA AC A AAC $@@4$@WAA C0Z  AAA n AA($P@_AC j AA mA$@QC0oA0$@@AA AC A AA$ @C X($@@sAC0J AE YA$@#C _P$@AA AAC@o CA AAD M AA AAA |  (@ (@(@C W (0@(P@0C lT(@AA AAFC CA AAA  CA AAA ((p@pAA G0G  AAA (@$C `(@$C `T(@@BAA AACpN AA AAG ] AA AAA (@?AC xA((@AC@h AC cC4(p@(AA AC A AAC (@@4(@WAA C0Z  AAA n AA((@@_AC j AA mA(@QC0oA0(0AAA AC A AA(AC XP(0ARAA AACPo CA AAD M AA AAA | 8+AFAA C0o  CAH M  AAA | @,, AAA AC@ A AAE PA AA@,, AAA AC@ A AAE PA AA8,,` AAA AACPCA AAP,,AAA AAC@o CA AAD M AA AAA | DX-AfAA AC0o C AAF M A AAA | <-PAAA AAFi FA AAD -A5AE0hF8-@AAA C@A  AAH M  AAA | 8d.AWAA AAC@KAA AAd.`A%AC [A0d.AMAA CE }C AA(d.AAA C`O  AAJ (d.ASAA C0K AAPd. AAA AACPo CA AAD M AA AAA | /0#A*AC `A</`#A}AA AAC AA AAC 4/&AAA AC0 A AAE 0/'AAA AC@C AA| 0)AAC0A0@*A)AC cA0p*A0AC fA0*AC@y D @ A | ((10,AAA Cp  AAK 8(1-AAA AAC`CA AA<(1.AoAA AAC8 CA AAK 8(1 1AAA C0o  CAH M  AAA |  2 3A5AC kA 2`3A5AC kA 23A5AC kA 23AC W 24A:C g F  2@4A5C q 24AAC XA 24A^C Z 25A 2 5A:C0v 2`5AC U 25AC T 25ANC0J0 25AAA AC0C AA8 26AAA AAC@AA AA8 27A5AA C0|  CAK U  AAI |  44AC Ot>pAC Ot>AC O| <>AAA CAG` AA AAH 0>0AHAA AC0~A AA(>AAA CP`  AAI > AAAC@{A>pAhAC0bA>A6AC pA(> AAA Cp AAh> AAA AAC@e AA AAA  AA AAG t AA AAH T>AAA AAFj AA AAA  AA AAA <>бA3AA AAF AA AAA (>AAC`c AH A >AAB G | (dAAAC0 CB PAdApAC T| AA,N\ AAFAC j AA AA|  B0A|  @B@A| \dBPAAA AAC@f AA AAA MP>JWJN~N   P S @ G PG V5 < P< VP V& * P* Sc j Pj SX g Pg S P 5 V P W P @ VP S + P+ S@ W PW  P P PS0 Uc j Pj S)PSPRRjSjl.GPHLPQXPX!SPPPPP P!,P,~S/3P3~V?ZPP"P"SSSSPPPW26P6U  P VPSPWP"P"SS{PV9`S`bbzSz|>WPX\P@DPDRWW[P[VPi\|PSPYSYdPPUPV{PSRYPYWP"P"SSSSPPPWM\P\\PovPvHUHLPLHV P HSPHWP"P"SSSSPPPSP PDVDKPK~V~PVPW-P-\P@GPGUPVPSPWquPuS[_P_XPVVPP~SSpuPuUU P WWIhPhWP\mrPPP7S,5P5V[bPbSP SPXVXtPtvVPWPUW 'P'USvPVP P WPgnPnSPSj2%T.8P2SPS@0*X.8XVv8V`dPdVE\jPDUssRsPWPVPS<KPKV*P*SP<VPV S~ P {V!4PQvUJNPNvWPSV6:P:V3PVPS  0S033PS 1 303P1PpPlltPPdP\ V V P~SSPUU pPpPPWY Y WI M PM Y VRVPVSY Y t St  P Y S P W P Y W#0#-U-~u~UY 0PVY 1Y 00P W WI VI Y Y S&mPm% U% < P< U P Y U"P"oV(HPH-SovPvVPP-WP-V#*P*SPP,VPS,3P3bVbPVPSPVPUNPRJSJNRQ~H~NQPMU)-P-LWbgPgSPSvSv+S P+PWWkW+WPUUk+UZVPkNTPTVVZV P VP+V0<P<N$V1$V8zSW?RVpRRpQSQSQPPdPUSUXPXSRVVv|VRx#Bxx@x#SRpPpWEUEPavv P S  P VPV%EPESbPPPV 2@R`pMiPiV[[PSPGVGjPjVP,V,TPTV0@P@VPMVMOP0EREO\OkpkllO\KOPOSPLSPNWTMPMLM0P09~9 [[  [  [ $(8<[< Dh[Dh                1`S`a|S01PSYSYPSJQLy0yPPUPQtUUU0UW0PWP9U9=P=yUPUVP S P Su|P| U U P V P V X W 3 W WW z z w W 2 W W WW z z w W P V P V P V P  W  P v \ P = W[ c Pc W P \z P W t E PE [ WH z Pz \= d Pd z W F!B $!B M!BP!SPiVPWP!WimPm!V37P7!U&-P-Wfff%W%&&^Wf0P$V&OPO^Vf0PSS&OPO^Vf010&^0sPP`PSP`RWR`QUQPVPESEHPHSPxSRFVFHRHVRxVxPPUPRR0PW0PSsPPV8GP[p~[~~[PT[P[~VPSPV}PWVP0@P@zWz|PbhPhyV|PSfsPstSPlUPfSPlLS%S%'=sSVPWMdkPkU<@P@VPS0P0<VPW-z1z0Nz0PSPgV-5P5fSp>0>SPV!P!GSq|P|VPGVPqVPSWSWPQS*5P5USdhPhSScSSPSPScgPgS P [SiVszPzSPSVPVFMPMV P V P w VP SPPj u P+ 3 P3 W@GPGV P FVP V P Vw P VZ i PETPTSPeWPyWyPSWSWPW?W?_P_WPWPVPeV P CUPUP UPU48P8oU .PPeSCbPbUPU (P(UP4UoPeU222pwPwS>ePPSSAWPP[P[PYSSPVPWP0V07P7yVyPV$-#DM#`kPkPhSSz}p}PdvpvWfPPSP VPV W>GPG S[~Pd s P P V \ 0[ U [ S| P @ S| U $ U P @ U 7 8  9 1 2 3 4  5 @ 6 [ S$ ' P' F UjnPnSvjPWvj0\WP`SP`VwSwzPyWPkSkwt P15P5YWYw~w[LP[Sx0 S sSVP[H s3. s4.PDVmPP*PNPPDKPKVPVP5V5<P<VPVP[VP[W P +W+.P.PP%'P'_cPcSS%202fUfjPjUU%202vVvVvV%212VvvVvP<W=^WP:S=\S=]V]_ktPtSPWPVPQWQVPVSPQSPUP)V).P.aVafPfV/8P8?DpPVSVYPpRWVWYRpQXWXYQ@[,2_HJ  "JY]"H"2]2H_HL ">B[[YP[YX P X" PlX"X P "X lP"`|`x`x x[lxXlp@lVSVW@[] [ $+  "?X[ X _ $+   "?[_[WH[WPH P "H pP"H lP"P H "P pH"P lH"jS)S),,SvPcg[gPos[z~   P"~  lP"z~P   "~P l "=APAWPSPSRVRVR [ @[48[8@4@EKP.SoSoss SQTPTlVszV[UrUs U_cRcs [s [8   S  S  S P W P V V * P  ! # # ? R  ! 3  ! ! ? P !  ! ? Q? @    ! # # ? R # 1# @ 0# ? R# 3 # ? Q? @  M a Va b b V U \ Pb m Pm l} V  S  S  S k z P iSilSSPPShPSBZPZVhlPlW{PUV+V+VPPU ;P;V+;P; VPVPVRSRSP{S.S.22Spw1$ w1$ w1$2 w1$uw1$2auw1$PWW2WS+P+XSSx|P|WQYPYVVP R  P  Q    R1 0 R  Q    1 V1 2 2 b Vb f % , P2 = P= g lM b Vb f x S  S  S ; J P 9 S9 < Z e TU Y PY U P S P \ P X P V{  P  WPIS.P.iVIMPMFSiqPqV"P"UVPVu|P|V")P)\VP V|PV)0P0cVPVPVU\P\V P uVP"V\cPcV P|VP)VcjPjVPFVPVV" ps)" ws) w) ws) w)PZV\rV ps)Y ws)Y[ w)\q ws)qs w)\PUPVPPS P%PCPCWP7W7_P_WPWPUP4U4;P;U}PW<WPWVPPSPfS<CPCVPvVv}P}"V")P)VPfVoP W 3P3WPTWT{P{WPfWrxPR[p`FA~`FA}p`FA0yS[\}}\[}}[}~VzVW${WPv~~-LPL}~-A~i]lV0-SgkPkSUWUW PPRVRQWQPSPPVPSPSS  S PT!(P(hVP&WPhShlPlVP&ShlPl&VPSP&\P&UwPS%S%))*EMUMN NUOVPVS>WNSPOVOSPSKVNV^d[WR99>R0S9>SPW t\hPhWPSS#'P'WWKV0VmQ0 bX<@A !@[P"SPmVPV"&P&fS"P")T4;P;SPPzVz}PPS tP RPBSBHRHN rQB"NU pQB"U\ r}QB"\]s}]qSqxPxyS=\PP W HPVPLB`P`WD PWt\P>WWPP 5w6w5wPVP|S|PSPVPVRP0 PPSPP9W9`P`WPWPSP~S~PSw{P{W p@$0. u@$0.PJV#P#SPaVJQPQVPSPa|P|VPV $P0@0<<DPP`P\\dPpp||PPPS08ENPNGVPW P oWGjP!(P(nUnPGUGNPNVPoV|PoSP}UPW}P!UzPStPWlpPpVtPAEPEUPUPzS^`00LTBSF0yVp0.@FPF|V|}P@WSW_s|_{SPMWMOPRNUNORQO\ PLVPKStPS&-P-VPSVPUPUPWSnPnVPSwPVP!SPVPWPWP!WPW)-P-!VPDUDEPEU"P#%0VSSPP P @@SPSPPy0PWP@W\mPmWPPPMVMJKMPMJ:>P>JPFSimPmGVGIUw{P{HWvzPzLWP U L~~PV P  VLVPLS P UKPKLU P 1L02P2cSc&P2R2UR&U8XPX}VckPkS&SlUR&UlS&S}PV&VPTPTFSPIU}PUPHWt{P{YSP[WP\UP]#P#TSP9VP9S!FPPnPnSPPnRnRP0P0txPxVVPSPSPS;EPElUlnPnUbUgU;0P0P_SgS  P 'gyPyȢMJlUnUbUgUJS\`P`n001P_SgSPPPWPWhWZ0h0P0PSKZ0hSWWhWSP0K0h1hSmPPh0hlPlW0W2bWPS"P"S.S2LSA0AHPHV/V2bVS"S.S2LSAV P"0hV/V2bVmP2=PP>BPVBbVPGLPPUWLbWtVLbVPSLbSP! !ULbU0W/V.S )PPWWWPHVHUPHLPLTVTUP")P)SSPWW.Wy}P}UU/UVSPRP8 S8 ; P; V SV Y PR9 V9 ; R; W VW Y RQ: W: ; Q; X WX Y Q pY h p l [ Y l; V SV Y P; X WX Y Q; W VW Y R S  V    S0 C 0 ^ 0^ g Pg W0 C 0 0PH0 C 0  0  P U @0 C 0 0 P % V0 C 0 0 P UD0 C 0 0 P V0 C 0 % 0% 5 P5 VPV0 C 0 0P0 C 0 j0jyPyVS0 C 0 =0=DPDV0 C 0 0PWPS0 C 0 V0VePeS{PWPPLPkUk$=NUPmSAPPYmPm=YmPm$U:=:m0mVv$VPiVi$PWm{S~$S]}0}SPSPSksPs}V} UPV}W~wW%5P5iViyPyVP!V!1P1VPVPHVHOPOVP V 'P'VPjSP%V VQP VQl[V S[sPs%V%IPIVPVPzVzP_V_P+V+OPOVPV~[~PVPSP VP S  P W% 8 P8 US!P!V;BPBWPSP+W+G~G ;?P? VPbSH@A $.P{U{u`.UPpPpPpPpqtPtp_ b Pb m pkPWPWPWPWPWP WPPWPWPWPWx  P  SbfPfx SA%AP%AAVA"ALATARTAASAARA"ASATAQTAAWAAQA"AWAAPAAVA"AVAAPAAUA"AUAA1A"A1AA8A"A8KAOAPOAwAWRAVAPVAuASAASAAAAS5AHAPAAPAזASAÖAPÖAʖATA APAAPAAS AASAAS AZAAəA4ACA@AiA0iAA1AA2)A4A1PAgAPyAAPAAPA˚APښAAPAAP)A4APCAoA0oArAQxAAQAAQJANAPNAA}#AA}AAPAQAWQAA}#AfAWfAA}ʟAΟAPΟAAV#AfAVɛAeA0eAAVAA3AAVAAZAVnAA1ŨAΨAVΨAA1AAVAԩA2ԩA&A1&A(A2TAA1AA1AͱA0ɛAeA0eAA}AAUA}uAA1AԩA}AlA}AݯA}ݯAA0AA}AfA0fAA}AͱA0'A+AP+AeAUeAA}fAA}AAPAeAS#AfASHAeA0A AS AA|AAsApASAͱASOASAPSAA}A#A}AͱA}pAAVA AP AΝAVA#AVAAVZAgAPgApAUpAeA}AfA}AA}AAPAͱA}pAASAAPAwASAΝASAASAAPAAW`ApA0[AlAPlAAWAΝA}A>AW>A#A}AAPAA}aAΝA1A#A1AA0ΰAְA}>AeAPeA#AWA#A0A#A AAPA#ASuAAPAA|AAPAAFAPFAASAAPAŨASŨAʨAPʨAASAAPAASAAPҩAԩAPԩAASAASfA~ASAAPAARAnA}(ATA}fA{AR|AAQAAQAASAŨAQAAPAܦAVܦAA|(ATAVAnA1(ATA0 A+AP+AAAVAAUAQUAAVԩAAVTA{AQ{AAVAܯAQܯAAVAAPYAA1ԩAA0AAA}AA}yAAPAAUAAA}AeA}yAAPAAAUAeAUWAA1APA0PAXAPXAkA}lAAA0AeA0AAPAARAA0A;AP;AֲASֲAԴAcAAPAҴAWֲA۲AP۲AдASAдASAAUA}Aul}AEAUAAWA AwlA$AP$AASjnPnSP:CS`bSdvS?JSJMsM_SFRSRWsp'WZsu'Z_ su'p'_b su'w'bf su'w'p'fr su'w'v'rvsu'w'v'X'V BV2Ss|,@NS}Q`P{V{~P~VP`V`gPgV`R``gRg`Q``gQg^v0~1fP{V{~P~VP`V`gPgVP4W`WgWPWf0PP`g0PVVV/V #PvPPPP<PP_S_gstSdtS_S?SSsxS4P02RP01RP05?45<R<?5<P5?0 0 S?dStutu?TPPP#8P>SPYsPyPU0UW W0 909> >T0TY Yt0ty y0y0010iS<=P=UVPSPS&202ARXfR0&2R2:P:=R=APXmPRMPPP P  PP#<"P PP#<"p PP#<"# ..1P12$..1P12@xx{S{}M_R_} #<"[zPM_0_xQR S PS0VV^fP SSQ0 PPPPP  0V:IV S KR PS#[#008[8ww[ P#[#008[8ww[ PԦMH. p =d"%D /5.4RX``ce1`yq`d"M )kqq$8)/OY a c ` ` +~#   " U T W f&^$&+-ACHN/4Udw0)[ [py  [ @  o z | @ ikx @X0k }  $ *M ] b g `-?B]  L *.l&P\nyP` ",h2>BPPb   LU]LU]0CMQX\fpAApAAAAAAA"AAAAAAACAAAAA#AAͱA-AΝAA#AAAUAWA[AaAeAAA۠AAAFAnA|AAũAAAAtAAAnA(ATAAAAAAAԩAATAAAAAAAFAAeAWAFAAeAA"AAAA޵AAAiow4?dt   +/25??d  '&1@Jr}#.2<R]cm.file-gcrtexe.cj  0 _envp_argv_argc_argret _mainret   .textY.data.bss  # q+6  ES _5jH} u .file>gcygming-crtbegin.c( P .textU.data.bss .rdata"j\} .jcr(.fileagapplication.c` (p $   .text`&.data.bss  .rdata$|#  -q F+O6  ES _5%jp} uh.filegassistant.c` 2 H \  u,0  .text`m.data.bss,.rdata(U1  +26@  E0S H_ZLj} u(, .filegbuilder.c  _builder80  `  p  4.text -.data.bss4.rdataf9M < +)d6`  S _-j} uT|.filegbutton_box.c  <.textQ.data.bss<.rdata0v1` lm F+6  S _j} u.filegchangedisplay.c  9 M _0 p |    @  P @.text .data.bss@.rdataC v Ic +Ff6  ES _j} ud.filegclipboard.c    ,  B ! Op! aP" p" |" #  $ p$ _windowD.text 9 .data.bssD.rdataX 6A + 26  E0S *_tj} u$.file;gcolorsel.c* _window_color@+ + + _frame`_da.text*eG.data.bss`H.rdataDS4 J +6  S 9_j} u.filefgcombobox.c0. @. P. *. Ha{0/ / /  0 @3 4 .text0. .data.bss.rdataKL  xjG +d 6  ES ]_-j} u.filegcss_accordion.c ; !; _window.text ;~6.data.bss.rdataEC J1 v+o6   Sk# '_2j~ u .filegcss_basics.c3= G`> ? Yp? _window.text=F.data.bss.rdata, Q] h {+#6@  S& L_L2j$~ u .filegcss_multiplebgs.c3A GpB hC C {0D _window.textAc.data.bss.rdata w ("# +6`  S* 5_~9j8~ u$ D .filegcss_pixbufs.c3G GPH H `I _window.textGHJ.data.bss.rdata K m% {+RM6  S0 z_2jL~ uh .filegcss_shadows.c3K GL @M M N _window.textKW.data.bss.rdataD k #2( {+6  S4 _2j`~ ux< .file(gdialog.cQ _window_entry1_entry2S _i.48027@T .textQUy.data.bss .rdata r#  * {+_n6  SJ9 _:jt~ u.fileMgdrawingarea.c`X _surface Y (Y _window6Y P`Z _Z r[ \ .text`Xd.data.bss.rdatax C )(-  + i6  S = _U>j~ up.filetgeditable_cells.c_ ` @` ` a b pc _windowV .text_ .data.bss.rdata Y/m .50 "+6#6  EhhS@ _j~ ux .filegentry_buffer.c(k _window.textk-'.data.bss.rdatal iۛ 7W4 "+'6   SE _)j~ u\.filegentry_completion.c9@m Rn _window.text@m2.data.bss.rdata  7Gy6 5+(6@  SH _F)j~ u|.filegevent_axes.cg p ypq  q r Pt t t _draw_cbx  y .text p .data 0 .bss.rdata` BF8 +v)6`  E`SK _oj~ uX.filegexpander.c z _window.textz%.data`.bss.rdataH -x= "+d.x6  SAP _j~ u8P.fileggestures.c | , | D | \ j |  | _swipe_x(_swipe_y h } _rotate4_zoom0 P _window8.text|s.data`.bss$.rdatal X x? +.&6  SR _j u.fileIgglarea.c(   \_gl_areaX L P _renderp _programD @ H 0    T_realize ) 6  L  .text  .data`.bss@ .rdata@8 /DB I+06  E0SV _6vj uX.filefgheaderbar.cW @ e `.text@!4.data`.bss`.rdatag _6F +76  S!\ _j( uh.fileghypertext.cs p  p l h Г  `    P      d.textpl.data`.bssd.rdataD{y 0@H +8~6  E8S(_ V_j< uL.filegiconview.c(P _window| x( t7  B  N М ^  l Н x @  .textP.data`.bsst .rdata  (oL w+=t6   E@HS~c _O gjP ul.filegiconview_edit.c_edited  p   _window.textGA.data`.bss.rdataX UO +?6@  E8Sh _ &jd up.filegimages.c P       0 _window*  H  g 0 .textP .data`.bss.rdataA C)R e+l@6`  ES0l ^_ ;jx u8H .fileginfobar.cr  _window  .text ex.data`.bss.rdata% V ]+aC6  Sq q_ )j u.file;glinks.c    P _window.text+.data`.bss.rdataA 6xX +pE6  St _@ j u p.fileoglistbox.c     к   $  : X 0 {           &p 6 E [}  _window.textV .data`.bss .rdata)S p3[ >+E6  EXSw _O >j u .filegflowbox.c @ _window.textv..datah .bss.rdata+ <q` +I6  SS~  _ )j u".fileglist_store.c _timeout_model_window p   _data:.text[u.data .bss .rdata@6 8,c +Jc6  E0S\ Y_ j u #.filegmenus.c ( <@ _window.textY.data .bss.rdata;QT {f +LC6   ES _H "j u$.file goffscreen_window.cF \ x    @   ` p D i @   C< P 3 Mo@   @ )<  _window.text.data .bss.rdataX;* |i +)P 6@  E xS7 _j j u$..fileCgA   -0 HP _ tp   @   /p G ^=r @  0  +0 _window.text .data .bss.rdatap<r k}o + \6`  E`S _lj u(8(.file`goverlay.cU e .textF.data .bss.rdataX=$ cu .+a6  S͕ _|)j, u+P.filegpanes.ca p `  .textr.data .bss.rdatat=hw@ 6w m+c6  S )_*j@ u,,,.filegpickers.c e .textfH.data .bss.rdata=c] .Qy #+f 6  S _)jT uX-\.filegpixbufs.c_on_tickP _frameL@DH_images _da_draw_cb  @  _windowP`?.textPs.data .bssT.rdata@>pr %]!| +g_6  E8S _jh u-.filegpopover.c ` * : K c  o`.text&V.data .bss`.rdata? i4 +!j6  S _ j| ud.P .file gprinting.c}0 `   .text0o].data .bssd.rdata`@i  ! +l6   E0 S _;j u/.file,grevealer.c _countl_builderp_timeouth@ p  d.text7.data .bssd.rdataA\r 5j +oP6@  Sf _#j u0.fileNgrotated_text.c0   2 ! _windowt.text0q.data .bsst.rdatapA; ' +o6`  EP S Y_Ij u(1.file~gsearch_entry.cC # S`# j# z# $ x|_window@$ $ $ %  % `% 3% D% _menuS% g& }' .text #.data .bssx.rdataAP * C+r6  Sd ]_DIj̀ u 2 .filegsearch_entry2.c, _window , @, `, , , , @- P- .text,ok.data .bss.rdata|CC >3+ +uF6  S _j u44 .filegsidebar.c2 _window.text25.data .bss.rdataLDw 8< D+w66  S{ _0j u@5l.filegsizegroup.c05 #`5 _add_row5 56 _windowC X l .text05M.data 0 .bss.rdataDG |c +x6  S[ _JKj u5.filegspinner.c9  : P: _window.text9!E.data0 .bss .rdataE5Ϫ R +z6  S _*j u6.file gstack.c = _builder.text =*.data0 .bss.rdataE+ | Ș 6   S I_j0 u(74.fileDgtextview.cP> WW@ &4A AOfW.textP>Lw.data0 .bss.rdata Fh8 v> +{r6@  Ep0S _WjD u\7.fileigtextscroll.ccR sR S T V .textRTN.data0 .bss .rdataW   u 2+HA6`  E S &_09jX uX8 .filegW _window.textW9 .data0 .bss.rdata$X?#  2+<6  S> Y_ijl u`9P.filegtoolpalette.c@X -KX \@Y [Z `[\ ^ P_ ._ Lp` la ~a b pb _window.text@XX.data0 .bss.rdataXXw2 XJ +Ł6  E8S _j u9.filegtransparent.cp w .textp q.data0 .bss.rdata[D Z% +ْk6  E@S "_c)j u<=.filegtree_store.cy z _window@ _january_march_april_may_june_july_august _october  .texty .data@ A.bss.rdata$\ (Y B+D 6  S8 _?j u=.file'gdemo_resources.c( ;Lp b w`.text.data.bssp.ctors.dtors.rdata`  V ?6 0E8  S# |j ut>\.file gmain.c 0    _startupp      _typesq _controlj ! ,:yj N[flj zС @ _main .text!L.data@.bss.rdataf . 0Vگ +O 60 (EX NS  _jЁ u>.text.idata$7x.idata$5.idata$4.idata$6HT@feat.00.text.idata$7x.idata$5.idata$4.idata$6,T@feat.00.text.idata$7x.idata$5.idata$4.idata$6T@feat.00.text.idata$7x.idata$5.idata$4.idata$6S@feat.00.text.idata$7x.idata$5.idata$4.idata$6S@feat.00.text.idata$7x.idata$5.idata$4.idata$6S@feat.00.text.idata$7x.idata$5.idata$4.idata$6S@feat.00.text.idata$7x.idata$5.idata$4.idata$6S@feat.00.text .idata$7x.idata$5.idata$4.idata$6tS@feat.00.text(.idata$7x.idata$5.idata$4.idata$6`S@feat.00.text0.idata$7x.idata$5.idata$4.idata$6@S@feat.00.text8.idata$7x.idata$5.idata$4.idata$6(S@feat.00.text@.idata$7x.idata$5.idata$4.idata$6 S@feat.00.textH.idata$7x.idata$5|.idata$4.idata$6R@feat.00.textP.idata$7|x.idata$5x.idata$4.idata$6R@feat.00.textX.idata$7xx.idata$5t.idata$4.idata$6R@feat.00.text`.idata$7tx.idata$5p.idata$4.idata$6R@feat.00.texth.idata$7px.idata$5l.idata$4.idata$6R@feat.00.textp.idata$7lx.idata$5h.idata$4|.idata$6xR@feat.00.textx.idata$7hx.idata$5d.idata$4x.idata$6XR@feat.00.text.idata$7dx.idata$5`.idata$4t.idata$6@feat.00.textp.idata$7u.idata$5.idata$4.idata$6>@feat.00.textx.idata$7u.idata$5.idata$4.idata$6>@feat.00.text.idata$7u.idata$5.idata$4.idata$6|>@feat.00.text.idata$7u.idata$5.idata$4.idata$6P>@feat.00.text.idata$7u.idata$5.idata$4.idata$60>@feat.00.text.idata$7u.idata$5.idata$4.idata$6>@feat.00.text.idata$7u.idata$5.idata$4.idata$6=@feat.00.text.idata$7u.idata$5.idata$4.idata$6=@feat.00.text.idata$7u.idata$5.idata$4.idata$6=@feat.00.text.idata$7u.idata$5.idata$4.idata$6=@feat.00.text.idata$7u.idata$5.idata$4.idata$6d=@feat.00.textȫ.idata$7u.idata$5.idata$4.idata$6@=@feat.00.textЫ.idata$7u.idata$5.idata$4.idata$6=@feat.00.textث.idata$7u.idata$5.idata$4.idata$6<@feat.00.text.idata$7u.idata$5.idata$4.idata$6<@feat.00.text.idata$7u.idata$5.idata$4.idata$6<@feat.00.text.idata$7u.idata$5.idata$4.idata$6<@feat.00.text.idata$7u.idata$5.idata$4.idata$6<@feat.00.text.idata$7u.idata$5.idata$4.idata$6p<@feat.00.text.idata$7u.idata$5.idata$4.idata$6X<@feat.00.text.idata$7u.idata$5.idata$4.idata$6D<@feat.00.text.idata$7u.idata$5.idata$4.idata$60<@feat.00.text .idata$7u.idata$5.idata$4.idata$6<@feat.00.text(.idata$7u.idata$5.idata$4.idata$6<@feat.00.text0.idata$7u.idata$5.idata$4.idata$6;@feat.00.text8.idata$7u.idata$5.idata$4.idata$6;@feat.00.text@.idata$7u.idata$5.idata$4.idata$6;@feat.00.textH.idata$7u.idata$5|.idata$4.idata$6;@feat.00.textP.idata$7|u.idata$5x.idata$4.idata$6;@feat.00.textX.idata$7xu.idata$5t.idata$4.idata$6`;@feat.00.text`.idata$7tu.idata$5p.idata$4.idata$6@;@feat.00.texth.idata$7pu.idata$5l.idata$4.idata$6 ;@feat.00.textp.idata$7lu.idata$5h.idata$4|.idata$6;@feat.00.textx.idata$7hu.idata$5d.idata$4x.idata$6:@feat.00.text.idata$7du.idata$5`.idata$4t.idata$6:@feat.00.text.idata$7`u.idata$5\.idata$4p.idata$6:@feat.00.text.idata$7\u.idata$5X.idata$4l.idata$6:@feat.00.text.idata$7Xu.idata$5T.idata$4h.idata$6`:@feat.00.text.idata$7Tu.idata$5P.idata$4d.idata$6<:@feat.00.text.idata$7Pu.idata$5L.idata$4`.idata$6 :@feat.00.text.idata$7Lu.idata$5H.idata$4\.idata$6:@feat.00.text.idata$7Hu.idata$5D.idata$4X.idata$69@feat.00.text.idata$7Du.idata$5@.idata$4T.idata$69@feat.00.textȬ.idata$7@u.idata$5<.idata$4P.idata$69@feat.00.textЬ.idata$7= h= ==L=@ == =ة >  > 7>x E> _>>> > >>к >  ?L/? S? l??? ?$_?X?د !@7@Z@x t@~@@_@@@ Ah A 1AQA fAA8 A AA A A B B;B MB ^B}BBB( B`B^B Ch C+C@ACh fC CCC Cخ C C  Dظ ___xl_z(D4D ID,^DD D D8 DDp_E $EEE cEP {EP ExETEpE)FRFh fFTF8FF F GpG?GOG hG|GH GH Gx _g_free G GG  H /H_g_print KHlHH H<H__unlock HЦ IdI 1I@RI eIx IH I I IIxIJ4DJx _J ~J JJJ JK8 %KIK0 dKHK KH KK Kб  L3L8 KLWL  kLxL$L LTLLH#M?MSM~MM MMM^NN9N UNvNN N  N N0  O*OAO NOfODO OO O OX  P*P AP XP~PhPPж PPȵ Q*Q @QfQ QQ QpQ R ,R OR]R uRX R RR@RRS$1SCS^Sh mSh S( S SЮ S8SS T|)TPThT TT  T8 T TU U7UPUfU@ UdUȯ UX U U UU\V+V:Vp QV iVVVVVV W`  ] l  `܂ȶ % FH Zw$p  ʃ8 lH /`F UP m PȄ x . E f|P X ̅ 8 @j  ɆL_calloc P ش 2x^ q<LX__fmodeȇۇ (@ J e8,̈  D2VPsЧ tȨ ȉdt.QboX  ߊ P  <H h    ˋ\d$ @` Yvx  ` Ɍ׌  /Gh ` ` ͍$ X$в B`Z k@ Ǝ ڎH l>XcRh0 ܏P _textA h $Ш J]y   ېlz@ [` n]@ 0 ӑ "Baz 4ɒ` x@<R mp <œ0 ٓp ا 'DN,@ Ԕ %( >pc ˕` "PH bq4 pŖع Ԗ ( {: P( jز ~ŗ   %8A [t _child2@ ט H  &\PXdȴ (dљ$__lock X  /0 ?\flŚX <(R m{  p___xc_zlC W<{p H]Ü  #@ ^  xP  ѝ` @ "Bй P dHh ʞԞ  __end__   *AlR bX _strchr  tޟP((`Hn$Ȧ x Ơ ֠T&=aH n а H_signal ̡Щ  . E Z  p}h_malloc d^Ң+ NX mx8 ̣ح  0 ` *BeЬ ` Ӥ 7 Q m ɥH? _( x$ƦܦH3hS,e( ǧ0ߧ  @(F8gu `Ԩ    }=f@  ٩  \"@`` uл ɪ 'AV wHz|0̫   1? Q_abort y }Ĭ,h x 0 I( \,<Э   0Ae0   Ӯp  _child0@ p '5`I l`   8ٯ0P p <( Hص ah }X   Ͱ@ Ȭ   4hI0]dH   $>h d | }òh   ` & <(^@ ֳ`h $ ? SP j }@ x شH 1 Kb y  ݵ___xi_zx` 0Ec{  Ӷx 8  %tHc |_strncmp Ⱥ ͷ D 5Xd|<$ָD4<R@ dĹhx h 6Xb0   ׺p 'L^B0 h  ɻ  P * ;0 XTp4TH̼׼84  , H f tpд ͽ 7@ K0_ Tž ߾D :Yǿ@  TF f w 0H (  @ȱ )X Dmt |]  \D9 Pv  Xx 8Plu@ H_strlen   x ػ  @x \t|_parent !:8 _8}0 tX_  'з =0Yȸ gȩ H _child3غ %p Fj y$tи  h &_exit B8 ] y  $ t(H` m (  $ < V u 8 x4S fLP  /0 K8p  _child1 ^2X I [4{  (  3 Vhd _( P1HR uXlئ @  `O ox  *( L( t h H {    H]_Sleep@4s0   xP 8_$xd d h /\g(    (,N(u( ث T _strstr Ȱ ),9N( l `  %X 3p Ob4 _child4`pp 1M|yd L('F` ^  ;g@  X@  0>(Us0 .debug_aranges.debug_info.debug_abbrev.debug_line.debug_frame.debug_str.debug_loc.debug_ranges___mingw_invalidParameterHandler_pre_c_init_managedapp_pre_cpp_init_startinfo___tmainCRTStartup_has_cctor_WinMainCRTStartup_mainCRTStartup.CRT$XCAA.CRT$XIAA.debug_info.debug_abbrev.debug_loc.debug_aranges.debug_ranges.debug_line.debug_str.rdata$zzz.debug_frame___JCR_LIST_____gcc_register_frame___gcc_deregister_frame_on_name_appeared_name_seen_on_name_vanished_placeholder_do_application_watch.47373_on_assistant_close_cancel_on_assistant_prepare_on_assistant_apply_apply_changes_gradually_progress_bar_assistant_on_entry_changed_do_assistant_quit_activate_about_activate_help_activate_do_builder_window.49868_create_bbox_do_button_box_window.48031_button_release_event_cb_display_changed_cb_close_display_cb_open_display_cb_destroy_cb_display_closed_cb_add_display_display_opened_cb_response_cb_left_align_button_new_create_display_frame_do_changedisplay_info.48164_copy_button_clicked_paste_received_paste_button_clicked_paste_image_get_image_pixbuf_drag_data_get_copy_image_drag_begin_button_press_drag_data_received_do_clipboard_change_color_callback_draw_callback_do_colorsel_mask_entry_init_mask_entry_editable_init_mask_entry_changed_mask_entry_class_intern_init_mask_entry_parent_class_MaskEntry_private_offset_is_capital_sensitive_is_separator_set_sensitive_create_capital_store_mask_entry_get_type_g_define_type_id__volatile.48100_do_combobox_window.48127_apply_css_do_css_accordion_show_parsing_error_css_text_changed_do_css_basics_drawing_area_draw_do_css_multiplebgs_do_css_pixbufs_create_toolbar_do_css_shadows_interactive_dialog_clicked_message_dialog_clicked_do_dialog_draw_brush_scribble_motion_notify_event_close_window_scribble_configure_event_scribble_draw_checkerboard_draw_scribble_button_press_event_do_drawingarea_remove_item_articles_separator_row_add_item___FUNCTION__.48852_editing_started_cell_edited_do_editable_cells___FUNCTION__.48819_do_entry_buffer_create_completion_model_do_entry_completion_draw_device_info_axes_info_new_cur_color_axes_info_free_event_cb_event_data_free_axes_info_lookup.isra.0_draw_axes_info.isra.1_do_event_axes_window.47466_do_expander_zoom_scale_changed_rotation_angle_changed_long_press_gesture_end_long_pressed_long_press_gesture_pressed_swipe_gesture_swept_do_gestures_demo_window_rotation_angles_create_shader_mvp_location_position_buffer_unrealize_on_axis_value_change___FUNCTION__.74680_vertex_data_create_glarea_window_do_glarea_do_headerbar_window.47353_motion_notify_event_hovering_over_link_hand_cursor_regular_cursor_insert_link_show_page_follow_if_link_event_after_key_press_event_do_hypertext_window.47424_file_pixbuf_folder_pixbuf_sort_func_fill_store_item_activated_home_clicked_up_clicked_do_iconview___FUNCTION__.48035_set_cell_color_do_iconview_edit_toggle_sensitivity_callback_cleanup_callback_load_timeout_pixbuf_loader_image_stream_progressive_timeout_progressive_updated_callback_progressive_prepared_callback_do_images_on_bar_response_do_infobar_activate_link_do_links_gtk_message_init_gtk_message_row_sort_gtk_message_class_intern_init_gtk_message_parent_class_GtkMessage_private_offset_gtk_message_row_init_GtkMessageRow_private_offset_gtk_message_row_class_intern_init_gtk_message_row_parent_class_gtk_message_row_state_flags_changed_gtk_message_row_update_avatar_pixbuf_other_favorite_clicked_reshare_clicked_gtk_message_row_expand_expand_clicked_row_activated_gtk_message_get_type_g_define_type_id__volatile.48857_gtk_message_row_get_type_g_define_type_id__volatile.48895_do_listbox_draw_color_do_flowbox_window_closed_spinner_timeout_fixed_toggled_do_list_store_create_menu_change_orientation_do_menus_gtk_rotated_bin_init_gtk_rotated_bin_child_type_gtk_rotated_bin_damage_to_child_offscreen_window_from_parent_pick_offscreen_child_offscreen_window_to_parent_gtk_rotated_bin_draw_gtk_rotated_bin_size_request_gtk_rotated_bin_get_preferred_height_gtk_rotated_bin_get_preferred_width_gtk_rotated_bin_size_allocate_gtk_rotated_bin_unrealize_gtk_rotated_bin_parent_class_gtk_rotated_bin_realize_gtk_rotated_bin_forall___FUNCTION__.48217_gtk_rotated_bin_remove_gtk_rotated_bin_add_gtk_rotated_bin_get_type_g_define_type_id__volatile.48102_gtk_rotated_bin_class_intern_init_GtkRotatedBin_private_offset_gtk_rotated_bin_new_gtk_rotated_bin_set_angle___FUNCTION__.48228_scale_changed_do_offscreen_window_gtk_mirror_bin_init_gtk_mirror_bin_child_type_gtk_mirror_bin_damage_gtk_mirror_bin_draw_gtk_mirror_bin_size_request_gtk_mirror_bin_get_preferred_height_gtk_mirror_bin_get_preferred_width_gtk_mirror_bin_size_allocate_gtk_mirror_bin_unrealize_gtk_mirror_bin_parent_class_gtk_mirror_bin_realize_gtk_mirror_bin_forall___FUNCTION__.48177_gtk_mirror_bin_remove_gtk_mirror_bin_add_gtk_mirror_bin_get_type_g_define_type_id__volatile.48080_gtk_mirror_bin_class_intern_init_GtkMirrorBin_private_offset_gtk_mirror_bin_new_do_offscreen_window2offscreen_window2.c_do_overlay_toggle_resize_toggle_shrink_create_pane_options_do_panes_window.47383_do_pickers_back_height_back_width_background_start_time_do_pixbufs_image_names_entry_icon_press_cb_toggle_changed_cb_create_popover_day_selected_cb_entry_size_allocate_cb_do_popover_window.47395_end_print_draw_page_begin_print_do_printing_reveal_one_change_direction_do_revealer_window.47370_fancy_shape_renderer_create_fancy_attr_list_for_layout_rotated_text_draw_do_rotated_text_search_by_file_search_by_description_search_by_name_clear_entry_search_entry_destroyed_finish_search_id_search_progress_id_finish_search_notebook_stop_search_start_search_activate_cb_start_search_feedback_search_progress_done_search_progress_icon_press_cb_create_search_menu_entry_populate_popup_do_search_entry_previous_match_next_match_search_changed_changed_cb_search_changed_cb_window_key_press_event_cb_do_search_entry2_do_sidebar_toggle_grouping_create_combo_box_do_sizegroup_color_options.48051_dash_options.48052_end_options.48053_on_stop_clicked_spinner_sensitive_spinner_unsensitive_on_play_clicked_do_spinner_do_stack_window.47354_attach_widgets___FUNCTION__.48276_easter_egg_callback_window.48300_do_textview_window.48283___FUNCTION__.48261_remove_timeout_create_text_view_scroll_to_bottom_count.47367_scroll_to_end_count.47358_do_textscroll_window.47388_do_theming_style_classestheming_style_classes.c_interactive_canvas_drag_drop_drag_data_requested_for_drop_canvas_item_new_interactive_canvas_drag_data_received_drop_item___FUNCTION__.48053_canvas_items_passive_canvas_drag_data_received___FUNCTION__.48017_palette_drag_data_received_on_combo_style_changed_create_entry_item_on_combo_orientation_changed_interactive_canvas_drag_motion_canvas_item_draw_canvas_draw_interactive_canvas_drag_leave_do_toolpalette_do_transparent_window.47374_item_toggled_do_tree_store_toplevel_february_september_november_december_demo_get_resource_static_resource_resource_constructor_resource_destructor_demo_resource_data.text.startup.text.exit_run_example_for_row_row_activated_cb_window_closed_cb_activate_run_treeview_activate_quit_activate_about_parse_chars_load_file_current_file___FUNCTION__.49636_source_view_info_view___FUNCTION__.49589_activate_win_entries.49712_headerbar_selection_cb_app_entries.49718_mingw_onexit___do_global_dtors___do_global_ctors_initialized_my_lconv_init__setargv___security_init_cookie.data$__security_cookie.data$__security_cookie_complement___report_gsfailure_GS_ExceptionRecord_GS_ContextRecord_GS_ExceptionPointers___dyn_tls_dtor@12___dyn_tls_init@12___tlregdtor___mingw_raise_matherr_stUserMathErr___mingw_setusermatherr__matherr_CSWTCH.5__fpreset__decode_pointer__encode_pointer___report_error___write_memory.part.0_maxSections_the_secs__pei386_runtime_relocator_was_init.60640__gnu_exception_handler@4___mingwthr_run_key_dtors.part.0___mingwthr_cs_key_dtor_list____w64_mingwthr_add_key_dtor___mingwthr_cs_init____w64_mingwthr_remove_key_dtor___mingw_TLScallbackpseudo-reloc-list.c__ValidateImageBase.part.0__ValidateImageBase__FindPESection__FindPESectionByName___mingw_GetSectionForAddress___mingw_GetSectionCount__FindPESectionExec__GetPEImageBase__IsNonwritableInCurrentImage___mingw_enum_import_library_names___moddi3___cosl_internal___sinl_internal_mingw_get_invalid_parameter_handler__get_invalid_parameter_handler_mingw_set_invalid_parameter_handler__set_invalid_parameter_handlerinvalid_parameter_handler.c___JCR_END___register_frame_ctor.ctors.65535_gtk_notebook_get_n_pages_gtk_icon_theme_get_default_gtk_color_chooser_dialog_new__imp__gtk_widget_set_vexpand__imp__gtk_widget_get_visible__imp__gtk_icon_view_set_columns__imp__gtk_text_view_set_editable_cairo_pattern_add_color_stop_rgba_g_main_context_iteration__imp__gtk_get_current_event_VirtualProtect@16__imp__gtk_separator_menu_item_new_gtk_label_set_use_markup__nm__epoxy_glUseProgram_gtk_paned_new__imp__gtk_label_set_mnemonic_widget___RUNTIME_PSEUDO_RELOC_LIST____imp__gtk_combo_box_text_append_text_gtk_widget_init_template_gtk_tool_item_group_insert__imp__gtk_tree_store_append_gdk_event_get_source_device_cairo_rectangle__imp__gtk_combo_box_set_active_iter_gtk_combo_box_new_with_model_gtk_text_buffer_get_mark_gtk_text_buffer_new__nm__epoxy_glGenVertexArrays__imp__gtk_builder_new_gtk_application_get_windows__imp__g_hash_table_insert__imp__gtk_tool_item_set_tooltip_text_g_bytes_unref_gtk_cell_layout_pack_start__imp__gtk_widget_add_tick_callback__imp__gdk_display_manager_list_displays__imp__gtk_cairo_should_draw_window__imp__gtk_builder_add_from_resource_gtk_gesture_swipe_new_cairo_rel_move_to_QueryPerformanceCounter@4_gtk_icon_view_set_text_column_gtk_flow_box_set_selection_mode_gtk_builder_add_objects_from_resource__imp__gdk_screen_get_default__imp__gtk_text_buffer_apply_tag_by_name_gtk_check_button_new_with_mnemonic__imp__gtk_css_provider_new_cairo_destroy__imp__gtk_widget_is_toplevel__imp__gtk_tree_view_new_with_model_g_object_unref__imp__cairo_set_source_rgba__imp__gtk_print_context_get_width_gtk_scale_new_cairo_arc__data_start____imp__epoxy_glClearColor__imp__gdk_pixbuf_fill___DTOR_LIST___gdk_pixbuf_loader_close__imp__cairo_pattern_create_radial__imp__gtk_entry_completion_set_model__imp__gtk_tool_palette_get_drop_group_g_array_append_vals_gtk_tree_view_get_selection_gtk_tool_item_group_get_type__imp__cairo_set_matrix__imp__gtk_entry_completion_set_text_column_gtk_text_view_set_editable_gtk_cell_renderer_spinner_new__imp__gtk_text_view_get_iter_at_location_gtk_selection_data_get_pixbuf__imp__g_utf8_get_char__imp__gdk_window_coords_to_parent__imp__gtk_bin_get_child_g_source_set_name_by_id_gtk_entry_buffer_new_gtk_text_iter_backward_chars__imp__VirtualProtect@16__imp__gtk_text_buffer_move_mark__imp___acmdln_gtk_separator_new_pango_layout_set_text_g_dir_close___setusermatherr__imp__g_dir_close__nm__epoxy_glDeleteShader__imp__gtk_toggle_button_set_active_gtk_cell_renderer_text_new__imp__g_filename_to_utf8_utf8__imp__gtk_tree_model_get_path_gtk_tool_item_get_type_g_list_free_UnhandledExceptionFilter@4.weak.__Jv_RegisterClasses.___gcc_register_frame__imp__gtk_cell_renderer_toggle_new_gtk_widget_get_style_context__imp__gdk_screen_get_root_window__imp___onexit_gtk_clipboard_wait_for_image__imp__gtk_info_bar_set_show_close_button__imp__gdk_device_get_window_at_position_gtk_tree_view_set_headers_visible_gtk_widget_get_parent__imp__pango_layout_get_font_description__imp__gtk_paned_get_child2__imp__GetLastError@0_SetUnhandledExceptionFilter@4_gtk_widget_class_bind_template_child_full__imp__VirtualQuery@12__imp__gtk_text_buffer_get_bounds_gtk_text_view_set_buffer__imp__gtk_paned_add2__imp__gtk_tree_view_new_gtk_assistant_set_page_title__imp__gtk_toolbar_insert__imp__gtk_widget_set_valign__imp__cairo_create__imp__gtk_toolbar_new_gdk_device_get_window_at_position_gtk_search_entry_new_pango_font_description_free__imp__gtk_image_new_from_resource__imp__gtk_builder_connect_signals_g_list_append_gtk_widget_get_allocated_width__imp__pango_font_metrics_get_ascent__nm__epoxy_glCreateShader_gtk_text_iter_get_text__imp__gdk_screen_get_display__imp__gtk_widget_hide_g_themed_icon_new_with_default_fallbacks__imp__gtk_icon_theme_get_for_screen__imp__gtk_progress_bar_set_fraction_gtk_list_box_set_sort_func_g_type_class_adjust_private_offset_libcairo_2_dll_iname__head_libgdk_pixbuf_2_0_0_dll__imp__gtk_tree_view_expand_all__imp__gtk_css_section_get_end_position_g_spawn_command_line_async_utf8___tls_start____imp__gtk_css_provider_error_quark___native_startup_lock_gtk_combo_box_text_append_text__imp__gtk_tool_button_set_use_underline__imp__gtk_scrolled_window_new_cairo_set_line_width__imp__cairo_rel_move_to__imp__gtk_menu_shell_append_gtk_text_view_set_wrap_mode__imp__gtk_size_group_set_mode_g_intern_static_string_gtk_tree_view_expand_all__imp__g_list_free_full__imp__gtk_image_get_icon_name__imp__gtk_window_set_resizable__nm__epoxy_glCompileShader__imp__gtk_radio_tool_button_new_gtk_spinner_stop_g_str_has_suffix__imp__gtk_widget_set_app_paintable__imp__gtk_widget_set_visible_gtk_text_iter_get_child_anchor__imp__gtk_notebook_append_page_gtk_label_set_text__imp__gtk_entry_set_activates_default__imp__gtk_info_bar_set_message_type__imp__gtk_dialog_get_widget_for_response__imp__gtk_tree_view_set_cursor_gdk_rgba_parse_gtk_text_iter_get_tags_gtk_tree_model_get_iter_first_gtk_search_bar_handle_event__imp__epoxy_glGenBuffers__imp__pango_layout_set_text_gtk_info_bar_set_show_close_button__imp__TlsGetValue@4_gdk_pixbuf_get_width_gtk_text_view_new_with_buffer__imp__epoxy_glShaderSource_gtk_range_set_range__imp__gtk_search_bar_handle_event_gdk_threads_add_timeout_gtk_text_buffer_create_mark__imp__gtk_widget_set_size_request_gtk_menu_item_set_submenu_gdk_cairo_rectangle__imp__InitializeCriticalSection@4_gtk_text_view_window_to_buffer_coords_g_build_filename_gtk_style_context_reset_widgets__imp__gtk_stack_set_transition_type_gtk_widget_set_margin_end__imp__gtk_entry_set_attributes_gtk_tool_palette_add_drag_dest_gtk_dialog_get_content_area_DeleteCriticalSection@4_gtk_print_operation_set_n_pages__rt_psrelocs_start__imp__gtk_text_buffer_insert_pixbuf_gtk_widget_set_app_paintable_gtk_message_dialog_format_secondary_text__imp__epoxy_glGetProgramInfoLog_gtk_orientable_get_orientation_gtk_assistant_new__imp__abort__imp__gtk_widget_get_visual__nm__epoxy_glDrawArrays__imp__gtk_menu_item_new_with_label__imp__gdk_frame_clock_get_frame_time_gtk_gesture_zoom_get_scale_delta__imp__gtk_print_operation_set_embed_page_setup__imp__gtk_render_background__imp__gtk_message_dialog_format_secondary_text__imp__gdk_pixbuf_new__imp__cairo_set_source_surface_gtk_menu_popup__imp__gtk_container_child_set__imp__pango_layout_set_width__dll_characteristics____imp__g_themed_icon_new_with_default_fallbacks_gtk_notebook_set_show_border__size_of_stack_commit____imp__g_list_append__imp__cairo_arc__imp__gtk_entry_new_with_buffer__imp__gtk_entry_set_progress_fraction_gtk_entry_completion_set_text_column__imp__gtk_menu_item_new_with_mnemonic__imp__gtk_stack_add_named__imp__gtk_color_chooser_get_rgba_pango_font_metrics_unref_g_malloc_gtk_tree_view_column_new_with_attributes_gtk_label_set_mnemonic_widget__imp___fmode__imp__gtk_widget_set_name_gtk_label_new__imp__g_list_free__imp__g_array_append_vals_gtk_tool_item_group_new_gtk_image_new_from_gicon_gtk_editable_get_type_gtk_menu_new__size_of_stack_reserve____imp__gtk_tool_item_set_is_important__major_subsystem_version___gtk_paned_get_child1_gtk_menu_item_new_with_mnemonic___crt_xl_start___g_error_free_g_date_time_format__imp__gtk_assistant_set_page_type_gtk_cell_layout_set_cell_data_func_gtk_scrolled_window_new__imp__gtk_tool_palette_get_group_position__imp__cairo_paint_with_alpha_gtk_widget_set_allocation__nm__epoxy_glGetProgramiv__imp__g_error_free_gtk_icon_view_set_selection_mode__imp__g_bus_get_sync__imp__cairo_matrix_init_translate_gdk_window_get_user_data__newmode__imp__g_strdup__nm__epoxy_glVertexAttribPointer__imp__cairo_curve_to__imp__gtk_image_new_from_gicon_g_date_time_new_from_unix_utc_cairo_fill__imp__gdk_window_get_user_data__imp__gtk_widget_size_allocate_gtk_drag_source_set__imp__pango_layout_get_pixel_size_gtk_button_new___crt_xi_start____imp___amsg_exit_gtk_css_provider_error_quark_g_hash_table_destroy_gtk_get_major_version_cairo_move_to__imp__gtk_icon_theme_list_contexts_cairo_set_matrix_g_dir_open_utf8__imp__gtk_print_operation_new___crt_xi_end____imp__gtk_popover_set_modal_g_utf8_get_char__imp__gtk_grid_new__nm__epoxy_glGenBuffers_gtk_window_set_titlebar_gtk_header_bar_new__head_libgtk_3_0_dll__imp__g_cclosure_new_gtk_tool_palette_set_group_position_gtk_gl_area_make_current__imp__gtk_label_set_text__imp__gdk_display_get_name_g_return_if_fail_warning_gtk_list_store_append_pango_layout_new_gtk_paned_add1_g_object_ref__imp__gtk_stack_sidebar_new_gtk_application_new__imp__cairo_restore__imp__gdk_offscreen_window_get_surface_gtk_gesture_long_press_new_gtk_grid_attach_gtk_icon_size_lookup__imp__gtk_widget_get_parent__nm__epoxy_glGetUniformLocation_gtk_assistant_set_page_type__imp__pango_context_get_metrics_gtk_menu_item_new_with_label_gdk_display_get_screen_g_action_map_add_action_entries__imp__gtk_drag_dest_find_target__imp__g_dir_read_name_utf8__imp__gtk_header_bar_pack_end__imp__gtk_widget_class_bind_template_child_full__imp__gdk_offscreen_window_set_embedder_gtk_entry_set_text__imp__gtk_text_view_new__imp__gtk_widget_set_hexpand__imp__gtk_text_buffer_get_end_iter_gtk_container_set_border_width_gtk_widget_create_pango_context__imp__g_hash_table_destroy__imp__gtk_button_box_set_layout_GetLastError@0_gtk_window_set_position__imp__g_string_new_g_list_free_full_gdk_window_set_user_data_gtk_color_button_new__imp__cairo_pattern_add_color_stop_rgb__imp__gtk_popover_new_gtk_text_buffer_remove_all_tags_gtk_popover_new__imp__gtk_entry_buffer_new__imp__gtk_image_set_from_pixbuf__imp__gtk_widget_get_window_cairo_pattern_add_color_stop_rgb__imp__gtk_container_remove__imp__gtk_size_group_add_widget_gtk_widget_set_hexpand__imp__gtk_menu_new_gdk_cairo_set_source_pixbuf__imp__QueryPerformanceCounter@4_g_object_get_data_gtk_search_bar_set_show_close_button_gtk_widget_show_all_gtk_gesture_rotate_new_gtk_get_minor_version_VirtualQuery@12_libgtk_3_0_dll_iname__imp__g_signal_override_class_closure__imp__gtk_revealer_get_child_revealed_gtk_tool_palette_get_type_gtk_widget_get_preferred_size_gtk_tree_path_free__imp__gtk_print_operation_set_print_settings__imp__g_strfreev_gtk_tool_palette_get_group_position_mingw_initltsdrot_force_gtk_accel_group_new__imp__gtk_image_set_from_icon_name_gtk_button_new_with_label__imp__gtk_list_store_remove_gtk_tool_item_group_get_item_position_gtk_notebook_append_page__imp__gdk_pixbuf_composite_pango_layout_get_context_gtk_entry_get_text__imp__gtk_entry_set_icon_tooltip_text_gtk_print_settings_set__imp___iob_gtk_window_present__dowildcard__imp__gtk_application_new_gtk_tree_path_new_from_string__imp__gtk_gl_area_make_current__imp__gtk_combo_box_set_row_separator_func__imp__g_date_time_new_from_unix_utc__imp__gtk_widget_destroyed_GetModuleHandleA@4__imp__gtk_tool_palette_set_group_position__imp__strstr__imp__gtk_adjustment_new__imp__gtk_tree_model_get_iter_first__imp__strncmp__nm__epoxy_glEnableVertexAttribArray__imp__gtk_paned_pack2__imp__gtk_cell_renderer_text_new__imp__gtk_label_set_xalign__imp__gtk_button_new_with_label__imp__gtk_widget_queue_resize_gtk_widget_class_set_template_from_resource_gtk_label_set_markup_gdk_window_get_device_position_gdk_display_open__imp__gtk_text_buffer_get_mark__imp__g_source_remove_cairo_scale__imp__gdk_display_beep__imp__gtk_scale_new_with_range__imp__g_string_free__imp__gtk_entry_get_text_gtk_stack_sidebar_set_stack_g_object_bind_property_gtk_drag_dest_add_image_targets__imp__gtk_tool_item_group_new_gtk_widget_queue_draw_gtk_render_background__imp__gtk_tool_palette_add_drag_dest__imp__epoxy_glDrawArrays__imp__gdk_drag_status_pango_cairo_context_set_shape_renderer__imp__epoxy_glGetUniformLocation_gdk_screen_get_default__imp__gtk_clipboard_get_g_regex_match_simple__imp__gtk_style_context_add_provider_gtk_icon_view_set_columns__imp__gtk_text_buffer_get_start_iter_gtk_box_pack_end__imp__gtk_text_view_set_pixels_below_lines__imp__gdk_event_get_event_sequence_pango_layout_get_font_description_gtk_text_buffer_apply_tag_by_name__bss_start___gtk_combo_box_text_new_gtk_info_bar_set_message_type_cairo_set_source__imp__cairo_fill__imp__gtk_get_current_event_device__imp__cairo_mask__imp__g_type_add_instance_private__imp__gdk_window_set_user_data__imp__g_strchomp__imp__g_hash_table_remove_g_string_free_cairo_set_source_surface___RUNTIME_PSEUDO_RELOC_LIST_END___g_strcmp0_gtk_list_store_clear__imp__cairo_scale__imp__gtk_entry_new_gtk_style_context_add_class__imp__gtk_drag_dest_set__imp__gtk_icon_view_set_pixbuf_column__size_of_heap_commit___gtk_text_iter_set_line_offset__imp__pango_layout_set_font_description_gtk_spinner_new_gtk_drag_get_data_gtk_list_store_new__imp__g_themed_icon_new_gtk_entry_set_attributes__imp__gdk_event_get_device__imp__gtk_drag_get_data__head_libcairo_2_dll_gtk_tree_view_new_with_model__imp__gtk_box_set_spacing_gtk_image_get_animation_g_strnfill_gtk_menu_bar_new_gtk_text_buffer_create_tag___onexitend__imp__g_error_matches__imp__g_setenv_utf8__imp__g_print_cairo_set_source_rgba_gtk_widget_get_display__imp__gtk_button_set_label__imp__GetCurrentProcess@0__imp__gtk_icon_theme_list_icons__imp__g_dbus_connection_call_sync__imp__g_slice_free1_gtk_clipboard_set_can_store_gtk_text_view_set_pixels_below_lines_pango_attr_foreground_new_gtk_combo_box_get_model__imp___errno_gdk_event_get_device_gtk_widget_get_screen_gtk_scrolled_window_set_shadow_type__imp__gdk_atom_intern__imp__gtk_widget_set_parent_window__imp__gtk_notebook_new_gtk_print_operation_new__imp__g_once_init_leave__imp__gtk_text_view_get_buffer_gtk_toolbar_insert_gtk_builder_get_object__imp__gtk_drag_set_icon_pixbuf_up_button__imp__gtk_widget_class_bind_template_callback_full_mingw_pcinit_gtk_print_operation_set_print_settings_gdk_window_set_cursor_gtk_tree_model_iter_has_child_cairo_matrix_rotate__imp__epoxy_glDeleteShader_gtk_clipboard_set_text_gtk_label_set_angle_gtk_widget_set_vexpand__imp__gtk_widget_queue_draw__imp__GetProcAddress@8_GetProcAddress@8_gtk_icon_view_set_reorderable__imp__gtk_print_context_create_pango_layout__nm__epoxy_glBindVertexArray___crt_xp_start___gdk_display_get_type__imp__gtk_container_get_children__imp__gtk_print_context_get_height_g_object_connect_gtk_app_chooser_button_new__imp__g_object_connect_gdk_flush__imp__gtk_text_iter_forward_char_gtk_progress_bar_set_fraction__imp__gtk_text_buffer_get_iter_at_offset__imp__gtk_print_context_get_cairo_context__imp__pango_layout_set_ellipsize_gtk_entry_completion_set_model__imp__gtk_tree_view_set_headers_visible__imp__gtk_button_new_gtk_entry_get_type_gtk_application_get_active_window_gtk_tree_view_column_set_sizing_gtk_label_new_with_mnemonic__imp__cairo_fill_preserve__imp__gtk_container_set_border_width__nm__epoxy_glClear_g_hash_table_new_full_g_cclosure_new__imp__epoxy_glAttachShader_gdk_pixbuf_loader_new__MINGW_INSTALL_DEBUG_MATHERR_gdk_window_geometry_changed__imp__gtk_text_buffer_create_tag__imp__gtk_button_new_with_mnemonic_gtk_window_set_title__imp__gtk_text_buffer_get_insert__imp__g_hash_table_new_full_gtk_tree_view_set_cursor_cairo_fill_preserve_gtk_scale_new_with_range__imp__g_string_append_printf_gtk_text_view_get_iter_at_location__imp__gtk_clipboard_set_can_store__imp__epoxy_glCompileShader_gtk_editable_get_chars__imp__gtk_spinner_stop__imp__gtk_tool_palette_new_gtk_tree_sortable_set_default_sort_func_gtk_tool_item_set_tooltip_text_gdk_screen_get_display_gdk_window_new_gtk_window_new___crt_xp_end____imp__gtk_tree_path_get_indices_g_bus_get_sync_libintl_gettext_g_timeout_add_seconds__imp__gtk_text_view_scroll_mark_onscreen_g_strchomp_gtk_container_remove__imp__signal__head_libpango_1_0_0_dll_gtk_message_dialog_new__minor_os_version___cairo_matrix_scale__imp__g_dir_open_utf8__imp__gtk_tree_path_free__imp__gtk_entry_set_text__imp__gtk_widget_set_margin_end__imp__cairo_rectangle_gtk_tool_item_group_get_drop_item_gtk_tree_view_collapse_all__imp__gtk_widget_set_has_window_g_once_init_leave_gtk_label_set_xalign__imp__gtk_widget_create_pango_context__imp__gtk_text_buffer_get_text__imp__gtk_gesture_rotate_new_gtk_drag_source_add_image_targets__imp__gtk_tool_item_group_get_type__imp__gtk_list_store_insert_g_assertion_message_expr__imp__gtk_combo_box_get_active_iter_gtk_widget_get_visible_gdk_display_beep_gtk_separator_menu_item_new_gdk_window_get_height_gdk_window_get_width__imp__gdk_display_get_type_pango_layout_set_font_description__imp__gtk_list_store_new_GetTickCount@0__imp__gtk_container_propagate_draw__image_base____imp__gtk_dialog_new_with_buttons_gtk_widget_set_no_show_all__nm__epoxy_glLinkProgram_gtk_grid_set_column_spacing_libgio_2_0_0_dll_iname__imp__gdk_pixbuf_loader_get_pixbuf__imp__gtk_toggle_button_new_with_label_gtk_stack_sidebar_new_gtk_tool_button_get_icon_name_gtk_tree_selection_set_mode_gtk_tree_view_insert_column_with_attributes__imp__g_object_ref_sink__imp__gtk_assistant_get_nth_page__imp__exit__imp__gtk_paned_add1__imp__gtk_color_chooser_set_rgba__imp__gtk_assistant_append_page_gtk_text_iter_get_offset__imp__gdk_window_destroy__section_alignment____imp__gtk_widget_grab_default_gtk_style_context_set_background__imp__epoxy_glDisableVertexAttribArray__imp__gtk_label_set_angle_gtk_notebook_set_show_tabs__imp__gtk_tree_view_column_new_with_attributes__imp__gtk_widget_grab_focus__imp__gtk_scrolled_window_set_shadow_type__imp__gtk_color_button_new__nm__epoxy_glGetProgramInfoLog_gtk_print_settings_new_pango_attr_list_unref_cairo_rotate__imp__gtk_editable_get_type__imp__cairo_clip_gtk_tool_item_set_visible_horizontal__imp__epoxy_glClear_gtk_print_context_get_width__imp__gtk_widget_set_allocation__imp__gtk_button_box_new_g_hash_table_remove_all_gdk_display_manager_get__imp__gtk_text_buffer_get_iter_at_mark_gtk_dialog_get_widget_for_response__imp__g_strsplit_gdk_pixbuf_fill__imp__gtk_orientable_set_orientation_gtk_image_set_from_icon_name__imp__pango_font_metrics_unref_cairo_rel_line_to_g_object_new_gtk_assistant_commit__imp__gtk_entry_set_placeholder_text_gtk_text_buffer_get_iter_at_line_index__imp__gdk_rgba_parse__imp__gtk_text_buffer_new__imp__gtk_text_buffer_create_child_anchor_g_timeout_add__imp__gtk_container_add__imp__GetStartupInfoA@4_cairo_transform__imp__gtk_app_chooser_button_set_show_dialog_item_libpango_1_0_0_dll_iname__imp__gtk_tree_view_set_search_column__IAT_end___g_bus_watch_name__imp__g_source_set_name_by_id__imp__g_object_weak_ref_gtk_search_bar_connect_entry__imp__gtk_tree_model_iter_has_child__imp__gtk_window_set_modal__imp____lconv_init__imp__gtk_calendar_new_gtk_css_section_get_end_line__imp__pango_attr_shape_new_with_data__imp__gtk_tree_view_insert_column_with_attributes__nm__epoxy_glFlush_gtk_print_operation_set_use_full_page__imp__gtk_container_get_type_gtk_cairo_should_draw_window_g_filename_to_utf8_utf8__imp__gtk_widget_create_pango_layout__RUNTIME_PSEUDO_RELOC_LIST____imp__g_timeout_add_cairo_paint_with_alpha_g_strsplit_cairo_mask__imp__gdk_pixbuf_new_from_resource_at_scale_pango_font_description_from_string__imp__gtk_tool_palette_get_drag_item_gtk_cell_renderer_toggle_new__imp__gtk_tool_item_group_set_item_position_g_slice_alloc0__imp__epoxy_glUseProgram__imp__g_array_sized_new__imp__gtk_widget_set_margin_start_gtk_header_bar_pack_start__imp__epoxy_glDeleteBuffers_gtk_notebook_set_current_page__imp__gtk_menu_popup__tls_start__imp__g_variant_new__imp__gtk_gesture_zoom_new_g_object_set_data__imp__gtk_entry_set_width_chars_gtk_entry_new__imp__gtk_box_new_gtk_stack_new_gtk_widget_add_events__imp__gtk_tool_item_group_get_drop_item_cairo_curve_to_gtk_color_chooser_set_rgba_gtk_revealer_get_child_revealed_gtk_box_pack_start_g_strfreev__imp__pango_attr_list_unref__imp__gtk_event_box_new_gtk_tree_store_new__imp__gtk_tool_item_group_insert__imp__gtk_get_major_version__imp__gtk_header_bar_set_has_subtitle_gtk_widget_set_parent_window__imp__gtk_widget_set_realized_gtk_list_store_insert_gdk_pixbuf_new_from_resource_at_scale_gtk_widget_is_toplevel__head_libpangocairo_1_0_0_dll_pango_context_get_metrics___native_startup_state_gtk_entry_new_with_buffer__imp__cairo_save_gtk_notebook_remove_page__imp__g_input_stream_read__imp__gtk_application_get_windows__imp__g_type_register_static_simple_cairo_matrix_init_gtk_clipboard_request_text_gtk_header_bar_set_has_subtitle__imp__gtk_clipboard_set_image_gtk_progress_bar_new_gtk_popover_set_modal__imp__g_object_set_data__imp__pango_font_description_set_size_gtk_font_button_new_gtk_paned_pack1__data_end_____getmainargs__imp__g_build_filename_gtk_widget_get_type_gtk_tool_palette_get_drop_group_gtk_widget_set_name__imp__pango_cairo_update_layout__CTOR_LIST____imp__gtk_widget_set_no_show_all_gtk_selection_data_set_pixbuf__imp__gtk_application_set_app_menu__imp__gtk_toggle_button_get_active_gtk_drag_finish___onexitbegin__imp__gtk_container_forall_gtk_range_get_value__imp__gtk_assistant_new__imp__gtk_tree_view_get_cursor_gtk_tool_palette_new_gtk_tool_item_set_is_important__imp__gtk_text_view_set_pixels_above_lines___set_app_type__imp__g_bus_watch_name_gtk_file_chooser_button_new__imp__gdk_window_set_cursor__imp__libintl_gettext__imp__sprintf__imp__gtk_widget_get_state_flags__charmax__imp__gtk_adjustment_get_value_gtk_scrolled_window_set_policy__imp__gtk_widget_get_type___mingw_winmain_lpCmdLine__bss_end____imp__epoxy_glCreateProgram_g_signal_handlers_disconnect_matched_g_static_resource_init_gtk_container_get_border_width__imp__gtk_revealer_set_reveal_child__nm__epoxy_glUniformMatrix4fv__imp__g_assertion_message_expr__imp__g_utf8_validate__imp__gtk_tool_button_set_icon_name__imp__gtk_widget_get_allocated_width_gtk_adjustment_new__nm__epoxy_glGetShaderInfoLog_gtk_adjustment_get_value_gtk_widget_get_window_g_hash_table_lookup__nm__epoxy_glDeleteProgram_gtk_text_buffer_move_mark__imp__g_bytes_unref__imp__gtk_drag_get_source_widget_gtk_entry_get_icon_area__imp__g_object_bind_property__imp__gtk_separator_new__imp__g_slist_free__imp__g_resources_open_stream__imp__gtk_header_bar_set_title_cairo_matrix_translate_g_source_remove___security_cookie_complement_gtk_cell_renderer_pixbuf_new___crt_xc_end___gtk_entry_set_activates_default__imp__gtk_label_get_layout__imp__gtk_text_iter_get_child_anchor__imp__cairo_stroke__imp__gtk_search_entry_new_gtk_text_iter_forward_word_end__imp__gtk_text_view_add_child_at_anchor_gtk_overlay_new_gtk_widget_grab_focus__imp__gtk_icon_view_set_reorderable_gtk_image_set_pixel_size_gtk_label_get_layout__imp__gtk_window_add_accel_group__imp__gdk_cairo_set_source_rgba_gtk_text_view_add_child_at_anchor_gdk_window_move_resize_gtk_widget_unparent__imp__gtk_widget_get_events__tls_index__imp__epoxy_glGetShaderInfoLog_pango_layout_set_attributes_g_resources_open_stream__imp__gtk_widget_get_allocation__imp__GetTickCount@0_gdk_pixbuf_composite__imp__gtk_paned_get_child1__imp__gdk_threads_add_timeout_gtk_text_buffer_insert_with_tags_by_name_pango_layout_set_ellipsize__imp__g_application_run_gtk_icon_theme_list_contexts_g_bytes_get_data__imp__gtk_menu_attach_to_widget_pango_layout_set_width__imp__epoxy_glLinkProgram_gtk_application_add_window__imp__gtk_menu_item_set_submenu_cairo_surface_destroy___crt_xc_start____imp__gtk_image_new_from_icon_name__imp__gtk_tool_button_get_icon_name__imp__gtk_widget_set_events__imp__gtk_window_new_gdk_drag_status_gtk_tree_view_set_model__imp__g_list_sort__imp__g_input_stream_close_gdk_event_free_gtk_info_bar_get_content_area__imp__gdk_rectangle_intersect__imp__epoxy_glBufferData__imp__gdk_event_get_source_device_gtk_list_store_set__imp__gtk_window_set_title__imp__strchr_gtk_widget_get_events__nm__epoxy_glClearColor__imp__gtk_entry_completion_new__imp__gtk_header_bar_pack_start_gtk_dialog_set_default_response__imp__gtk_widget_destroy_gtk_drag_get_source_widget__imp__gtk_window_set_position_gtk_print_operation_run_gtk_assistant_set_page_complete__imp__gtk_cell_layout_set_cell_data_func__imp__gtk_tree_view_get_selection_gtk_widget_destroy__imp__g_signal_lookup__lib32_libkernel32_a_iname_gtk_stack_set_transition_type_g_setenv_utf8__imp__epoxy_glGetProgramiv__imp__gtk_container_child_get_gtk_container_forall__imp__gtk_box_set_homogeneous_pango_cairo_show_layout___CTOR_LIST____imp__gtk_tool_button_set_label_gtk_radio_tool_button_get_group_gtk_button_box_new__imp__GetCurrentProcessId@0__imp__gtk_list_box_new_gdk_device_list_axes_gtk_text_buffer_create_child_anchor_gtk_combo_box_set_active_iter__imp__g_strcmp0__imp__g_get_home_dir_gtk_text_buffer_insert_pixbuf__imp__cairo_transform_gtk_frame_new_gtk_text_buffer_insert_gtk_combo_box_text_new_with_entry__imp__epoxy_glCreateShader__imp__gdk_event_get_coords__imp__gtk_tool_palette_set_style__imp__gdk_window_invalidate_rect_gtk_text_view_set_cursor_visible_gtk_widget_set_parent_gtk_icon_view_set_pixbuf_column__imp__g_hash_table_iter_next_mingw_app_type_gtk_print_operation_set_unit_gtk_text_buffer_get_text_gtk_drawing_area_new_gtk_tree_model_get_iter__imp__gdk_pixbuf_copy_area__imp__gtk_application_get_active_window__imp__gtk_icon_view_set_item_orientation__imp__gtk_widget_get_allocated_height__imp__gtk_widget_get_realized__initterm_gtk_grid_new__imp__g_static_resource_fini__imp__gtk_list_store_set_gtk_builder_new_gtk_assistant_get_current_page__imp__g_signal_handlers_disconnect_matched_gtk_tool_item_new__imp__g_bytes_get_size__imp__TerminateProcess@8__imp__gtk_text_view_new_with_buffer__rt_psrelocs_size__imp__gtk_flow_box_set_selection_mode_gtk_tree_view_column_set_fixed_width_gtk_text_buffer_insert_with_tags_gdk_cairo_set_source_rgba__imp__epoxy_glBindVertexArray__imp__g_ascii_table_GetStartupInfoA@4__imp__gtk_entry_progress_pulse_gtk_image_new_from_pixbuf_gtk_box_set_homogeneous__imp__gdk_flush__imp__g_object_add_weak_pointer__imp__gtk_text_iter_backward_chars__imp__gtk_gl_area_get_error_gtk_widget_get_allocated_height__imp__gtk_widget_set_window_gtk_tree_store_append__imp__gdk_window_get_device_position__imp__gtk_grid_set_column_spacing__imp__g_signal_connect_data__imp__gtk_text_buffer_create_mark__imp__g_malloc0__imp__g_log_gdk_display_get_name_g_strdup_printf__imp__gtk_radio_menu_item_new_with_label__imp__gtk_window_set_titlebar_gtk_tree_view_column_set_clickable_gtk_drag_dest_find_target_gtk_print_context_get_height_gtk_event_controller_set_propagation_phase__imp__gtk_combo_box_text_append_gtk_text_view_get_buffer_cairo_restore_gtk_widget_get_realized_GetCurrentProcessId@0__imp__gtk_box_pack_start__imp____dllonexit__imp__cairo_destroy_gtk_container_get_children_gtk_tree_view_get_model__imp__gtk_show_about_dialog_cairo_set_source_rgb_gtk_list_store_insert_after_gtk_text_buffer_get_start_iter__imp__memcpy_gtk_application_set_app_menu_gtk_tool_palette_get_drag_item__imp__gtk_tree_model_get__imp__gtk_expander_new_gtk_widget_get_toplevel__imp__gtk_combo_box_set_active_pango_layout_get_pixel_size_gtk_builder_connect_signals__imp__g_strconcat__imp__gtk_tree_path_new_from_string_gtk_stack_add_named__imp__epoxy_glDeleteProgram_gtk_container_propagate_draw__imp__g_file_test_utf8_gdk_atom_intern__imp__gtk_icon_theme_get_default_gtk_combo_box_set_active__imp__g_hash_table_remove_all_gtk_tree_store_set_gtk_tree_view_new__imp__strcmp__imp__gtk_image_get_pixbuf__imp__epoxy_glEnableVertexAttribArray__nm__g_ascii_table__imp__gdk_window_new__imp__gtk_widget_get_screen__imp__gtk_clipboard_set_text__imp__gtk_widget_set_halign_gtk_image_get_storage_type_cairo_line_to_cairo_pattern_create_linear_gtk_color_chooser_get_rgba_gtk_tree_sortable_set_sort_column_id__file_alignment____imp__gdk_pixbuf_get_width_gtk_text_view_scroll_mark_onscreen_gtk_icon_view_set_item_orientation_gtk_widget_set_sensitive__imp__gtk_builder_add_objects_from_resource_libepoxy_0_dll_iname__imp__gtk_image_get_storage_type_gtk_frame_set_shadow_type_gdk_display_close__nm__epoxy_glCreateProgram_gtk_button_box_set_layout__imp__gtk_icon_size_lookup_gtk_flow_box_new_gtk_window_set_default_size__imp__gtk_style_context_add_class__imp___unlock__imp__g_return_if_fail_warning__imp__gtk_overlay_add_overlay__head_lib32_libmsvcrt_a_gtk_widget_create_pango_layout__imp__gtk_tree_sortable_set_default_sort_func__imp__g_main_context_iteration_cairo_show_text__imp__epoxy_glGenVertexArrays__imp__gtk_list_store_insert_after__imp__gdk_event_free_gdk_device_get_axis_value_gtk_dialog_new_with_buttons__imp__LeaveCriticalSection@4__imp__gtk_widget_is_visible_gtk_size_group_new__imp__gtk_image_new_from_pixbuf_gtk_widget_set_valign_gtk_widget_destroyed__imp__gtk_assistant_set_page_complete__imp__gtk_list_box_set_activate_on_single_click_gtk_show_about_dialog__imp__cairo_new_sub_path__imp__gtk_notebook_set_show_border_gtk_container_add__imp__malloc__imp__atoi__imp__gtk_combo_box_new_with_model_gtk_size_group_set_mode__imp__gtk_selection_data_get_pixbuf__imp__gtk_progress_bar_new__imp__gtk_print_operation_set_n_pages__imp__gtk_radio_menu_item_get_group__imp__gtk_orientable_get_orientation__imp__gtk_search_bar_new__imp__gdk_device_grab__imp__gtk_scrolled_window_set_policy__imp__g_timeout_add_full___mingw_pinit__imp__gtk_assistant_get_current_page_gtk_bin_get_child__imp__gdk_cairo_rectangle_g_slice_free1_gtk_spinner_start_pango_font_metrics_get_ascent__major_os_version___libgdk_pixbuf_2_0_0_dll_iname_gtk_window_set_modal_gtk_label_set_attributes_gtk_container_get_type__lib32_libmsvcrt_a_iname__imp__gdk_window_create_similar_surface_gtk_window_set_transient_for_gtk_tree_view_set_search_column__imp__gtk_entry_get_text_length__imp__gtk_list_store_clear_gtk_text_view_get_window__imp__gtk_tool_item_new__imp__cairo_matrix_init_gtk_widget_set_margin_start_g_bytes_get_size__imp__gtk_font_button_new_gtk_gesture_is_recognized_g_application_run_gtk_entry_set_icon_tooltip_text__imp__gtk_css_section_get_start_position__imp__g_object_ref__imp__g_static_resource_init_gtk_assistant_get_nth_page__imp__gtk_range_set_range__head_libgio_2_0_0_dll__imp__gtk_text_iter_forward_chars_gtk_tool_palette_unset_style_gtk_image_new_from_resource_g_utf8_collate__imp__gtk_tree_view_column_set_sizing__imp__gtk_text_buffer_get_iter_at_line_index__imp__gtk_widget_unparent__imp__g_object_unref__imp__gtk_css_section_get_start_line__imp__gdk_window_geometry_changed__imp__gtk_flow_box_set_max_children_per_line__imp__g_utf8_collate_gtk_radio_tool_button_new__IAT_start____imp__gdk_device_list_axes__imp__g_strnfill_g_signal_connect_data__imp__gtk_tree_path_new_from_indices__imp__gtk_tree_view_get_model__imp__gtk_header_bar_new__imp__gtk_widget_get_parent_window_g_path_get_dirname__imp__gtk_widget_set_margin_bottom_g_string_append_printf__nm__epoxy_glBindBuffer__imp__gtk_drag_finish_gtk_print_context_create_pango_layout__imp__gtk_drag_source_set_gtk_get_current_event_device__imp__gtk_window_set_screen_gtk_widget_get_parent_window_g_utf8_pointer_to_offset_pango_attr_shape_new_with_data_gtk_tree_view_append_column__imp__gdk_window_get_width_gtk_tool_palette_set_style__imp__gtk_scale_new_g_resources_enumerate_children__imp__gtk_image_set_pixel_size_g_slist_free_gdk_window_destroy__imp__gtk_assistant_set_page_title_pango_attr_list_insert__imp__g_type_class_adjust_private_offset__tls_end_gtk_clipboard_get_gdk_device_get_name_gtk_box_new_gtk_tree_selection_get_selected__imp__gtk_overlay_new__imp____initenv_g_get_home_dir_g_type_register_static_simple_gtk_image_get_icon_name__imp__gtk_selection_data_set_pixbuf__imp__gtk_tree_view_set_model__imp__gtk_text_view_get_window__imp__gtk_gesture_rotate_get_angle_delta__imp__gtk_widget_set_sensitive__imp___get_invalid_parameter_handler__imp__GetModuleHandleA@4_gtk_widget_set_margin_bottom_gtk_entry_set_placeholder_text_gtk_paned_add2__imp__cairo_matrix_scale__imp__cairo_show_text__imp__cairo_get_current_point__imp__g_strdup_printf__imp__gtk_tool_palette_unset_style___dllonexit_gtk_print_context_get_cairo_context_gtk_gesture_zoom_new__imp__gtk_tree_view_append_column_gtk_tool_item_group_set_item_position_gtk_radio_menu_item_get_group__imp__gtk_label_set_markup_gtk_window_set_screen_g_hash_table_insert_gtk_button_set_label__imp___lock__imp__gtk_grid_set_row_spacing__DTOR_LIST____nm__epoxy_glDisableVertexAttribArray__imp__gtk_progress_bar_get_fraction__imp__fprintf__imp__gtk_icon_view_set_text_column_gtk_text_iter_backward_word_start_gtk_combo_box_get_active_iter_TerminateProcess@8__imp__epoxy_glGetShaderiv__imp__g_hash_table_iter_init_gtk_notebook_new_gtk_paned_get_child2_gtk_widget_set_margin_top_gtk_progress_bar_get_fraction_g_string_new_EnterCriticalSection@4__imp__cairo_pattern_create_linear_gtk_revealer_get_reveal_child__imp__gtk_text_buffer_insert_with_tags_by_name_gtk_info_bar_new_with_buttons_gtk_text_buffer_get_end_iter__imp__gtk_file_chooser_button_new__imp__gtk_stack_sidebar_set_stack_gtk_entry_completion_new_gtk_text_iter_forward_line__imp__gtk_drawing_area_new__imp__gtk_info_bar_get_content_area_gtk_list_box_row_get_type__imp__gdk_display_get_screen__imp__gtk_popover_set_position__imp___initterm__imp__gtk_css_provider_load_from_data_gtk_tree_path_new_from_indices_gtk_tree_model_get_path__imp__gtk_range_get_value__imp__gtk_widget_class_set_template_from_resource_GetCurrentThreadId@0__size_of_heap_reserve____imp__cairo_set_source_rgb__imp__gtk_application_add_window__imp__gtk_tree_view_get_column___crt_xt_start___gtk_icon_theme_get_for_screen__imp__gtk_tool_palette_get_type__imp__gtk_app_chooser_button_new__imp__gtk_render_frame_gtk_tree_view_column_set_sort_column_id_g_once_init_enter___ImageBase__imp__cairo_matrix_translate__imp__gtk_assistant_get_n_pages__subsystem____imp__gtk_radio_tool_button_get_group_gtk_text_buffer_get_insert__imp__epoxy_glDetachShader_gtk_assistant_append_page_gtk_text_buffer_get_bounds_gtk_cell_view_new_libpangocairo_1_0_0_dll_iname__imp__gtk_entry_set_icon_from_icon_name_gtk_header_bar_set_title__imp__strlen__imp__gtk_tool_item_group_set_label_widget_gtk_tool_button_set_icon_name_gtk_text_buffer_set_text_g_file_test_utf8__imp__cairo_surface_destroy__imp__gdk_window_move_resize__imp__epoxy_glUniformMatrix4fv_pango_attr_list_new__imp__gtk_size_group_new__imp__gtk_frame_new__imp__strtol_cairo_pattern_destroy__imp__gtk_tool_item_set_visible_vertical__imp__g_type_check_instance_is_a_gtk_calendar_new__imp__gtk_entry_get_type__imp__gtk_label_new__imp__gtk_gesture_is_recognized_libgdk_3_0_dll_iname__imp__gdk_cursor_new_for_display__imp__gtk_gesture_swipe_new_g_input_stream_read___mingw_oldexcpt_handler__imp__cairo_pattern_destroy_gtk_container_child_get__imp__calloc_gtk_list_box_new__imp__gtk_icon_view_set_selection_mode__imp__gtk_text_buffer_insert_gtk_paned_pack2_libgobject_2_0_0_dll_iname__imp__gtk_tree_selection_select_iter_gtk_tree_view_get_cursor_gdk_device_grab__imp__gdk_pixbuf_get_type_gtk_container_child_set_g_array_sized_new__imp__gtk_container_get_border_width__imp__gtk_image_get_animation__head_libepoxy_0_dll___native_vcclrit_reason__imp__gtk_widget_get_clipboard_g_object_add_weak_pointer__Jv_RegisterClasses__imp__GetSystemTimeAsFileTime@4__imp__gdk_pixbuf_new_from_resource_gtk_toggle_button_set_active_gtk_clipboard_set_image__imp__gtk_notebook_remove_page_gtk_get_micro_version_gtk_tree_view_get_column_gtk_cell_renderer_progress_new_gtk_grid_set_row_spacing___lconv_init__imp__g_object_set_gdk_offscreen_window_set_embedder_gtk_header_bar_pack_end_cairo_clip_gtk_widget_set_can_default__imp__gtk_tree_sortable_set_sort_column_id__imp__g_utf8_pointer_to_offset_gtk_message_dialog_new_with_markup_gtk_builder_add_from_resource__amsg_exit_gdk_rectangle_intersect_gdk_window_invalidate_rect_cairo_get_current_point_gtk_orientable_set_orientation_gtk_widget_is_visible_gtk_widget_grab_default_gtk_revealer_set_reveal_child_cairo_close_path_gtk_text_iter_forward_chars__imp____getmainargs__nm__epoxy_glAttachShader__imp__g_spawn_command_line_async_utf8__imp__gtk_get_micro_version_gtk_search_bar_new__imp__gtk_style_context_set_background_gtk_image_new_from_icon_name_gdk_offscreen_window_get_surface___mingw_winmain_nShowCmd_gtk_text_buffer_get_selection_bounds_g_hash_table_iter_next_libintl_8_dll_iname___native_dllmain_reason__imp__gtk_cell_view_new_gtk_selection_data_get_length___tls_end____imp__gtk_widget_add_events_g_type_class_peek_parent_gtk_image_get_pixbuf__imp__gtk_widget_set_can_default__imp__gtk_info_bar_new_with_buttons__imp__gtk_tree_store_new_gdk_pixbuf_loader_write__imp__pango_layout_get_context__imp__cairo_matrix_rotate__imp__gtk_dialog_get_content_area_gtk_dialog_run_pango_cairo_update_layout_cairo_new_sub_path_gtk_widget_get_visual_g_object_weak_ref_gtk_widget_size_allocate__imp__gtk_clipboard_wait_for_image_gtk_widget_set_size_request__imp__gtk_flow_box_new_gtk_header_bar_set_show_close_button_GetSystemTimeAsFileTime@4_gtk_scale_set_draw_value__imp__gtk_spinner_new_gtk_widget_set_events__imp__gdk_pixbuf_loader_new_mingw_pcppinit_gtk_widget_get_clipboard_gtk_cell_renderer_combo_new__imp__gtk_tree_model_iter_next__head_libglib_2_0_0_dll_gtk_entry_set_visibility_GetCurrentProcess@0__imp__gtk_print_settings_set__imp__cairo_close_path__imp__g_intern_static_string_gtk_icon_view_get_model_gtk_css_provider_load_from_data_g_type_add_interface_static_cairo_matrix_init_translate_mingw_initltssuo_force__imp__gdk_cairo_set_source_pixbuf__imp__g_hash_table_lookup_gtk_widget_set_realized__imp__gtk_widget_get_display__imp__gtk_clipboard_request_text_g_error_matches_gtk_icon_view_new_with_model_InitializeCriticalSection@4__imp__cairo_set_source__imp__gtk_stack_new__imp__pango_font_description_free__imp__free__imp__gtk_widget_show_all__imp__cairo_set_line_width__imp__gtk_entry_get_icon_area__imp__g_array_remove_index__imp__gtk_window_present__imp__pango_cairo_show_layout__imp__SetUnhandledExceptionFilter@4__imp__gtk_text_iter_get_text_gtk_expander_new__imp__gdk_pixbuf_get_height__imp__g_type_class_peek_parent__imp__g_type_add_interface_static__imp__g_object_set_data_full__imp__gtk_message_dialog_new_with_markup_gtk_print_operation_set_embed_page_setup__imp__gtk_tree_view_column_set_fixed_width_pango_font_description_set_size__imp___set_invalid_parameter_handler_cairo_paint_g_signal_override_class_closure_g_hash_table_remove__major_image_version____imp__gtk_label_new_with_mnemonic__nm__epoxy_glDetachShader_gtk_combo_box_set_row_separator_func_gtk_widget_add_tick_callback_gtk_widget_class_bind_template_callback_full__imp__gtk_paned_new_gdk_window_coords_to_parent_gtk_css_section_get_end_position__loader_flags___gtk_widget_show_g_signal_lookup_g_dbus_connection_call_sync__imp__gtk_menu_bar_new__imp__epoxy_glBindBuffer__imp__UnhandledExceptionFilter@4__imp__gtk_scale_set_draw_value_gtk_demos__imp__g_bytes_get_data__imp__gtk_list_store_append_gdk_frame_clock_get_frame_time_gdk_cursor_new_for_display_gdk_event_get_event_sequence_cairo_create__imp__gtk_combo_box_text_new_with_entry__imp__epoxy_glFlush_gtk_assistant_get_n_pages__head_lib32_libkernel32_a__imp__gtk_event_controller_set_propagation_phase_gtk_popover_set_pointing_to_g_timeout_add_full__imp__cairo_rotate_gtk_check_button_new_with_label___chkstk_ms__imp__gtk_widget_set_parent__imp__pango_attr_list_new_gtk_entry_progress_pulse__imp__g_date_time_format__imp__g_resources_enumerate_children_gtk_menu_attach_to_widget__imp__gtk_combo_box_get_model__imp__gtk_text_iter_backward_word_start__imp__gtk_window_set_default_size__imp__gtk_cell_layout_pack_start_gtk_toggle_button_new_with_label__imp__gdk_device_get_name_g_object_set_data_full__imp__gtk_tree_view_column_set_clickable_gtk_tree_selection_select_iter_g_utf8_validate_gtk_gl_area_get_error__imp__gtk_list_box_set_sort_func_gtk_toolbar_new__rt_psrelocs_end_gtk_css_provider_new__imp__gtk_text_iter_set_line_offset_gtk_entry_get_text_length_gtk_entry_set_width_chars__imp__cairo_pattern_add_color_stop_rgba__imp__gtk_builder_get_object__imp___cexit_g_str_equal__nm__epoxy_glBufferData__imp__gdk_window_get_height_cairo_save_gtk_css_section_get_start_line__imp__gtk_grid_attach__imp__gtk_tree_store_set_gtk_list_store_remove__imp__gtk_cell_renderer_progress_new__imp__gtk_notebook_get_n_pages__imp__gtk_widget_init_template_gdk_pixbuf_new_from_resource__imp__gtk_search_bar_connect_entry_gtk_text_buffer_get_iter_at_offset__minor_subsystem_version____minor_image_version____imp__gtk_selection_data_get_length__imp__g_path_get_dirname_gdk_window_show__imp__Sleep@4__imp__vfprintf__imp__gtk_text_buffer_set_text_g_malloc0_gtk_box_set_spacing_cairo_pattern_create_radial_gtk_gesture_rotate_get_angle_delta_gtk_widget_get_state_flags__imp__gtk_text_view_set_wrap_mode__imp__gtk_editable_get_chars_libglib_2_0_0_dll_iname__imp__g_malloc__imp__gdk_pixbuf_loader_write__imp__gtk_notebook_set_show_tabs_gtk_popover_set_position__imp__gtk_spinner_start_gtk_toggle_button_new_with_mnemonic__imp__gtk_text_iter_get_tags_g_array_remove_index__imp__gtk_cell_renderer_spinner_new__imp____set_app_type__nm__epoxy_glGetShaderiv_gtk_radio_menu_item_new_with_label___mingw_winmain_hInstance_gdk_pixbuf_copy_area__imp__gtk_assistant_commit_g_object_set_gtk_tool_item_group_set_label_widget__imp__g_resources_lookup_data__imp__gtk_widget_get_preferred_size_gtk_drag_dest_set__imp__gtk_toggle_button_new_with_mnemonic_g_dir_read_name_utf8_gtk_entry_set_progress_fraction__imp__gtk_color_chooser_dialog_new_g_variant_new__imp__g_timeout_add_seconds__imp__gtk_message_dialog_new_g_object_ref_sink_gtk_overlay_add_overlay__imp__gtk_paned_pack1_mingw_initltsdyn_force_gtk_menu_shell_append__imp__GetCurrentThreadId@0_gtk_size_group_add_widget_gtk_text_iter_forward_char_g_themed_icon_new_gtk_list_box_set_activate_on_single_click_TlsGetValue@4__imp__gtk_gesture_long_press_new_gtk_widget_queue_resize__imp__gtk_drag_dest_add_image_targets__imp__gtk_entry_set_visibility__imp__g_str_has_suffix_g_strconcat__imp__epoxy_glVertexAttribPointer__imp__gtk_widget_get_toplevel_g_resources_lookup_data__imp__gtk_list_box_row_get_type_g_strdup__imp__cairo_line_to_gdk_screen_get_root_window_g_hash_table_iter_init_gtk_entry_set_completion__imp__DeleteCriticalSection@4___security_cookie__imp__gtk_entry_set_completion_gdk_display_manager_list_displays__imp__gtk_icon_view_new_with_model__imp__gtk_text_view_window_to_buffer_coords_LeaveCriticalSection@4__imp__gdk_display_manager_get_gtk_text_view_new__imp__gtk_tree_view_collapse_all__imp__g_once_init_enter__imp__g_object_get_data__imp__gtk_cell_renderer_combo_new_gtk_entry_set_icon_from_icon_name__imp__gdk_pixbuf_loader_close_gdk_pixbuf_new_gtk_window_add_accel_group__imp__gtk_revealer_get_reveal_child_g_type_add_instance_private__imp__gtk_text_buffer_remove_all_tags_gtk_icon_theme_load_icon__imp__gtk_cell_layout_set_attributes_gtk_text_buffer_get_iter_at_mark__nm__epoxy_glDeleteBuffers_gtk_widget_set_window_gtk_render_frame__imp__gtk_text_iter_get_offset_gdk_event_get_coords_gtk_icon_theme_list_icons__imp__gtk_drag_source_add_image_targets_gtk_combo_box_text_append__imp__gtk_text_buffer_insert_with_tags_gtk_tree_path_get_indices_gtk_tool_button_set_use_underline__imp__g_free_gtk_image_set_from_pixbuf__nm__epoxy_glShaderSource_g_input_stream_close__imp__gtk_css_section_get_end_line__imp__gtk_window_set_transient_for__imp__gdk_display_close__imp__gtk_icon_theme_load_icon__imp__gtk_widget_set_margin_top_gdk_window_create_similar_surface__imp__gtk_box_pack_end__imp__g_action_map_add_action_entries__imp__gtk_dialog_run_gtk_widget_set_has_window_cairo_translate__imp__pango_font_description_from_string__imp__gtk_tree_view_column_set_sort_column_id_gtk_cell_layout_set_attributes__imp__gdk_device_get_axis_value__imp__gtk_accel_group_new__imp__gtk_check_button_new_with_mnemonic__imp__gtk_widget_show_gtk_window_set_resizable_gtk_css_section_get_start_position__RUNTIME_PSEUDO_RELOC_LIST_END___gtk_flow_box_set_max_children_per_line_g_static_resource_get_resource_gtk_info_bar_new_gtk_toggle_button_get_active___dyn_tls_init_callback__imp__gtk_tool_item_group_get_item_position_gtk_gl_area_new_gtk_app_chooser_button_set_show_dialog_item__imp__cairo_move_to__imp__g_slice_alloc0__imp__gtk_tree_selection_set_mode_gtk_tool_button_new__imp__cairo_paint_g_static_resource_fini_mingw_initcharmax__imp____setusermatherr_gtk_event_box_new__imp__gtk_cell_renderer_pixbuf_new__imp__gtk_check_button_new_with_label__imp__cairo_rel_line_to__imp__cairo_translate_gtk_widget_set_halign__imp__gtk_label_set_use_markup__imp__gtk_tool_button_new__imp__gtk_text_view_set_cursor_visible_gtk_text_view_set_pixels_above_lines__imp__gtk_print_operation_set_use_full_page__tls_used__imp__gtk_print_settings_new__imp__gtk_style_context_reset_widgets_gtk_drag_set_icon_pixbuf_gdk_pixbuf_loader_get_pixbuf_cairo_new_path__imp__cairo_new_path__imp__pango_attr_list_insert__imp__gtk_text_iter_forward_word_end__imp__gtk_tree_selection_get_selected__head_libgdk_3_0_dll__head_libgobject_2_0_0_dll_gdk_pixbuf_get_height_gtk_style_context_add_provider__imp__g_object_new__imp__gtk_label_set_attributes_gtk_get_current_event___crt_xt_end____head_libintl_8_dll_gtk_button_new_with_mnemonic__imp__gtk_tool_item_set_visible_horizontal__imp__gtk_icon_view_get_model_gdk_pixbuf_get_type__imp__gtk_tool_item_get_type__imp__gtk_text_view_set_buffer_gtk_widget_get_allocation_cairo_stroke_g_type_check_instance_is_a__imp__g_str_equal__imp__gtk_gesture_zoom_get_scale_delta__imp__gtk_popover_set_pointing_to_gtk_tree_model_iter_next__imp__gtk_frame_set_shadow_type__imp__gtk_dialog_set_default_response_vfprintf__imp__gdk_display_open__imp__g_regex_match_simple__imp__gtk_header_bar_set_show_close_button__imp__gtk_search_bar_set_show_close_button_gtk_tool_item_set_visible_vertical__imp__gtk_get_minor_version__imp__gtk_print_operation_run__imp__gtk_text_iter_forward_line__imp__gtk_tree_model_get_iter_gtk_widget_set_visible__imp__pango_attr_foreground_new__imp__gtk_info_bar_new__imp__EnterCriticalSection@4__imp__pango_layout_new_gtk_tool_button_set_label__imp__gtk_notebook_set_current_page__imp__pango_cairo_context_set_shape_renderer__imp__gtk_text_buffer_get_selection_bounds__imp__gtk_widget_get_style_context_gtk_tree_model_get__imp__g_static_resource_get_resource__imp__gtk_gl_area_new__imp__gtk_print_operation_set_unit_g_list_sort__imp__pango_layout_set_attributes__imp__fwrite__imp__gdk_window_show__imp__gtk_combo_box_text_new_gtk_widget_hide