From 8aa9a4c3854b448dbad09215e0cfd05e523c343f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 6 Sep 2014 21:59:23 -0400 Subject: [PATCH] Better thumbnail for GtkTreeView This one makes it more obvious that it is a tree with multiple columns and not just multiline text. https://bugzilla.gnome.org/show_bug.cgi?id=528800 --- docs/reference/gtk/images/list-and-tree.png | Bin 4175 -> 6134 bytes docs/tools/widgets.c | 30 +++++++++++++------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/docs/reference/gtk/images/list-and-tree.png b/docs/reference/gtk/images/list-and-tree.png index d370277a3c3c1f16d8cb289ab5071d4e38ca690f..1c81e68b1a0c41e3d27995ed7cd1905ecc52560a 100644 GIT binary patch literal 6134 zcmd5=XIN9wmc4WkA}CU%Bh5mu5<-#dHK3gjBYH2?r0k5v_Q0RRuY1*%Dj z!D|^l`z`Q|&{N^DJ}LMLB(;eE0J`GGit_p|(>G^)18;d>cJE?bQ*9&?4hUD}U*ACO#M0)*g4jd1E5x)0 z+-mFQCfN+}439C~q3)G;Hwb3@yKEfK9m!pnAKwr8z@zQ|Rhc~$rKF^Ur|9nAmd2P* zTRTMou!qjA#{{*drD{UbSr&_3@krV6A5m@)v^W;#Pt21PRS>Z$&ab@+8e(MR@m^dM z-!LPFlL74bM!p*avdJUJ*45+?GQr0H>5aMu&!c$>Yu5Ajs&XQ>P*RE;>Cz`@F(icS zjer87sOI9}AEazTS3BibP9T)j9Q%y*XjD094XNUfJ&j= z{OF#Xg+(UHLXFhpO?o<0ZBvQ5EOEM&Z^;8ot(U4wN<{JT@w5CL?U=RQn(1lt+UA-K ze9~;In}EXIWWo@tYutEjp|8Qb{`(`p4S%4t`IHs{flP}YOQieG`tkkwxa!4=3zWnj zZw(ZsOfa`3qT!u(mDz@?@K8c9Wx(a<_C|o} z_~|l{{1~G0)fF@J`+=k0?V;Az+P)hsw-^{A3wJpUD<|He;aqp`Mr38N0k4r4dwiQ> zGP|WTbc}tQwKHp*!lA6mxOGcOS45=;2kwZKjUx#5=);F*^%})ssI$?+ zFWqnEsKk6Z|4x<|)RMkL&YxA$kQy0zt;&=yiGo#YFOD1-T0acL&G<4&`!H3TYQ~Z9 z%MTv}t1*a1fXm?88J`iY!5S$rvSy3HKYV8Q?(%Z-^1k~bkEEBf6J6_SfTprK1l|FD zdTpF|)Hu&58ynN_?t0Kelz;sA0jyy1DZz~%9UFU}92cUTlO1qODqzG^=Pb@>3uX2w z7a}Af(bF~UI=-5bS5+k?+ua42pn=IfJr;^eO1g%5i?WR3RIIGw+^}>3!=f)074N_H zsERT`cwplmYeR#wIcWG0TvQ*UZ!Ml?l9{C9?G1TLMz#VW4j!+k)_X*7oBEejI%`Cr zFrdLr4LpgDf7h^d^Y`K+nd@}7I&+%BW`Q1+a{}rl;po0uz;Ptd5Jik_Y<>K3J09yF{PPqlqC*sxB^kjflxdvp)<% z2}wk3dZ@Z$)xDWEZe%_aPBE@@W$uops|uWUhI^mx?6?CA3=Bi-kPvCMKzSuwB0wdE zWwB@2n(q&Kbj;_WY=x1);H@=zncILr@>O`GChr;&@R9 zt0+Iy=)8{8S3Qe(JG0@e)h8P=uqH-o5fL-q{r$o4-nj;vVr3+FwiSifLNcWT@P|-I z7udXWzKxky)~JbZ8xKl%hTO6=&|+e@Xlb5USj?_sDYVp{cmK>d-yULzYomWv22kF= z|6s=07We-B`;)C!sfRx258K=29mGs2lnL(ZgFD*#?-}S=TF(6rc1k-a7ZT#+=62t+ zA)=w7IoO!^psq~eyWwf!wGgJSudl0PtZHB&CNw;ptii3Ipa9#Gy4%}H2g&*RCHdR8 zJ6;VhKIh~>FSeN&7=9QeS+)e5fZGf6g$e`&jM6W`n`{LN|xDEX)WWEWK<< zCm$Q2>*`uEf+2ht8HsNUq~pUw*18G`CpJw#!HC%cV|j>Mc*4To)JT;{rLx||-=Bgg zL}0i+^#Y7jvhk(yxBx;;~&!hwcbekpEA#;~^l+ zr=g?soNvR6jEpQZEq3A0H$*+w(6Ct<%I4(cd|9S2Y;qI$c8`mTYh$uH>fpeOTQhZZ zVNXm=n>h6qjFO77AIaBd{n6KFa&-D) zti){aJ(kvUxa=9fWvM`=F|QWiwi|NpdHD|7GyqdTgEI8ohjrc(g#Uf21aq07rd4_#y!(%ZtOw7Y~S^z_aG?; zJFEn&PAAj$Y6V3Cl%v`ykLK(5kLI2j>wiDmZt*>B2ukUE?%}`3^T05uGvxB3emRek z3<9yW<-xI?aI{haWmjS4&pf9kQW#$Dl_U07Nw(uf-PvM)BACirJrIav)?s)xFK#Dj z*8J=m7^UpsP{K55rXxHS5PW{JV~CAq@FTO@j>fKe{RmuG*_VXhR0<)=$EM+9Vhyo(a-3HB;nkW+`@8GNf z=GC!r)K7S|u8xB&{A#{q-;|dc-R0O%Kzu-Ab-cw||6*(cV>?&xBmp3aDcr$b$q+%H zFA6>_Mxu`fE+$&*wu-vD-?1!5zn{K8Pmon#mrM_U2WWkExH+}32crI${M`6jI1T1! zisoJ%dyF5CR{H!Ym%xYQIJvd)gzHllQjM;bxw-{lcM%d1WuTV}#GXBSW?XDI3ZI)B zF9K-<(PwD)Gg;oQ(r2DEc#q5pQ;cnCz3gO{7t9`lA&mFUQTN-`~ zLm&o&3-jI64vse5Zpb#nYlQrTusMoJt)%skpy)@3&96?M|B22i8C50?9qT**`uJnm9M>MID4o z->w0(T3WKHahZD4YqK_L>5W3GIXd2RbaZ6-x;0&NzV_gaW#ALAklh{ah)s(Vn?9ll z_<>tfjAbn?nGI0sX8*&3lO$MEy{i!jEOy(o%?Sw!RRQkWxw`Sm$vt6o7I*ClG6_~8 zE5zUdgocIPbDb%POHN*)OFQ^%-GZ=DCS4H!U&Y~n)r)!Ko_LBF5JD>vSHY1{QB%$O ziE6o@wLi&l^6;qZQL%F2v897R_-$*Z@wRL*Y^Kq7+x>KH4bF0o?N~xIGNU@b{oI^_ z>Ey2Pk^u|1?9GtPdz0(V{d4$oRTsAm79N4B!(B~Y9*-e9Pp`P01#xzJ*6)e{5KVPY zY#BX`swExVN#hGCn2@xw)0of3ZMp2eeEO8Re!Hc6>1|R&lgLm+!cpny{_n~t)nnv? znL1rPr?QwtKmXmzz?yS%;7-8d?;q*T#Mf80FYyP5M>m+fmX~92LPA0s&CbHd)80JK z@O-4@c5(oRC@C|f^yRh+bFHjJ&AUgktbhJi>8^2>Pt>YvK(q{4LE8N0ilAHp{<19{ zt-w+^vlPr=R#N@8NGgi|lTuI+fl3VX;svGb=Kw{*+BqLot-7aVElJz4luy~_)Hc-I z)f|4!T3He?Ve4B%oF?N^xOh~vId$(ozw2(Yu9yp+MrI~N?&yH`GVqwSY{D5PS~@HqWhv5cT|4Wh9_XSB;!gMGR&d!;$WrRhtbMB zRp=G?$!GPj&kLG2*znqqQd)Iw{8rvTy3*Kaf%A0JZDc#BMxR}B?AM8M5R}zo{pVRJ zD{=XsbWms;?ZMx#TCbvAXBs4%x5EEiM7h->y4M7fatu-B6VCmq(&2G&Rx-GiM{To? zcDiF;C5=a>mpeGAuf@f-yW|2Dk_d9|Gblfc&kaNaj{iL|WbN1XHbm15SXfwCIrKLy zxx7}b7F|BugIT{KkUQR*@e3Xn;pF~qEu7M1QZk|e;Rc2NJ-!Fl+m{y`6OFOqtbuJ) zw)J6Cl=y}E_e)yV)PzO2tDv$X*7!!2-pi6tnMR%#w?n}_@%rHf^|?CX00NG;^Rvq0 zI#gm_ob)^a#FyRVOC{nyWJIIk%Rd7y6)zKu&liq;cgCCijEiai%m$L%LZ2of5ZX@A zp4y$aM4=Mmvb|>2KZH&=s!TJ@PDDYu1r8KA11G_dWj{X~bMY{zk}I04a}0-~Lp6og z-lq_sH!3njItBXuj$DLbeu7vg5`+^Bo$0iZETpKSA|>u;RBF;!MlQe!y&qYMDRv5U zhR|Ktw3`pPJooLU+?Z}o3*Tx?+E_IKX#!h7v|nyq9C*;1UvhRhQ&KQvbQOGIeDZxU zh6(@`KX34#d%vGQcW`jnX&kcxKr#B#bM-+}%@P+a?2Po{>~PsgVzz(xwSrsHpBF4R z`k@>6(ac7|JYO1ZcRm#qADLqYo8#B9vpr*OwR$Ed6S){e6dEL=uGCV@GjNosJaV$L z9kg0Y=re8%miG3SP7}vU9r47{(E@^BO+=`R4b{P7%n?U`i-qVZ(&wb&^XdBY2T!ph zrEZqA(ubTLLPGS>%H4^tTc4i6pwQI#q<2>RD^LE$*eCzg4ubD;B+V@Uz%uOYUWi)m z^Pd~2l@V;9uAVOJvddj1pd@7^fB&d)d-u$&e&t7B3Upcc8acV&RYz=35ca8torp+9 z9^O!XZS&in1r8Nvk}go6+#OkE8n_!YlTzH?Zzs}BP5lxZjR9~HSE;qI>YRkBut>?$X|78XADo4uy+NTH`Ub9nc|#XHL&$}IGll|bw0Dz-64I!P_}4o?8_ zVDrh%k;)1HS0X=FRj|~u?;0f$ZCd;%tdrd2V0s_c>>$+T&%yDA61$19w?6)PQf^Ow1nDe}}YfZq)chZvfg zPOgqwy%4v;Ja!V4*f~BjpXDrW#}B_^Nx7krF7jWc_dnHm|0151D1&sf8oMGRj0Ny- zo*hBmQmB&m!TZm0U2mfv_`D7>hNSyE06H$4HN<)-G&rvad#&hz69&vU`yY&u@c#Wx zpUp`ne}Cu)Zp}6K)6`Ukz5V?s1^O?PvnbyKR9YT2V#&%m>|9)7(g8=RzzLfqF-SQ& zIw6LrO?@Xp&|2uVQOFtAF*o1X{FULeHhQnn2|hV9u8DYaNy8|5{=$ILXpN zq}$^{&Jvw6W@TSt%o{8cao|rN(0X=%&UyO#uyr?ptLFGM^6TZ9J1kOD?UUZdi7xIUh0!+Jpu z?6QQu1*yZ=7%2r09f_7tPYHbLtqEb2aQV~VRQjZUo4FHi>escdGr@X3 zT?GqJcg6CE*;24)XEU9h+Jn>O%iW1i8CIL0x;8-7x(y#rc9i;a!!2c$wROJ1?i*tWP%}tkuH!w z_gjXZ7v(URKeYyR4QLH$)e?WG#B2Q9#)6g(LSs)LB_&Txkwh_Vli4>E9xDBFRQ_kb z{%d;vfAgr!%BaN{bOpdUo^-*EpF9L~H;tMTsJ=b2q5BW_^Z%SIsdpab^+SVLU5P0z_V(X z88V2Dm0&&3mWyMIqEkq3%tHo4(yzbHL%y<`lq9xtG|zI}nR4*cU?T;AH!!1qV)R@u z#0LzLHJ-E4-wZpPf<=29LkC{$nLA#S#Up*Z&3} C%$Lpp literal 4175 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 diff --git a/docs/tools/widgets.c b/docs/tools/widgets.c index c468f5a8c6..ecd2399e28 100644 --- a/docs/tools/widgets.c +++ b/docs/tools/widgets.c @@ -503,25 +503,35 @@ create_tree_view (void) { GtkWidget *widget; GtkWidget *tree_view; - GtkListStore *list_store; + GtkTreeStore *store; GtkTreeIter iter; WidgetInfo *info; widget = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN); - list_store = gtk_list_store_new (1, G_TYPE_STRING); - gtk_list_store_append (list_store, &iter); - gtk_list_store_set (list_store, &iter, 0, "Line One", -1); - gtk_list_store_append (list_store, &iter); - gtk_list_store_set (list_store, &iter, 0, "Line Two", -1); - gtk_list_store_append (list_store, &iter); - gtk_list_store_set (list_store, &iter, 0, "Line Three", -1); + store = gtk_tree_store_new (3, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_STRING); + gtk_tree_store_append (store, &iter, NULL); + gtk_tree_store_set (store, &iter, 0, "Line One", 1, FALSE, 2, "A", -1); + gtk_tree_store_append (store, &iter, NULL); + gtk_tree_store_set (store, &iter, 0, "Line Two", 1, TRUE, 2, "B", -1); + gtk_tree_store_append (store, &iter, &iter); + gtk_tree_store_set (store, &iter, 0, "Line Three", 1, FALSE, 2, "C", -1); - tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (list_store)); + tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store)); + gtk_tree_view_set_enable_tree_lines (GTK_TREE_VIEW (tree_view), TRUE); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tree_view), - 0, "List and Tree", + 0, "List", gtk_cell_renderer_text_new (), "text", 0, NULL); + gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tree_view), + 1, "and", + gtk_cell_renderer_toggle_new (), + "active", 1, NULL); + gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tree_view), + 2, "Tree", + g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, "xalign", 0.5, NULL), + "text", 2, NULL); + gtk_tree_view_expand_all (GTK_TREE_VIEW (tree_view)); gtk_container_add (GTK_CONTAINER (widget), tree_view); info = new_widget_info ("list-and-tree", widget, MEDIUM);