1# RCS: @(#) $Id: layout.tcl,v 1.16 2009/06/29 20:19:44 treectrl Exp $ 2 3# 4# Demo: Layout 5# 6proc DemoLayout {} { 7 8 set T [DemoList] 9 10 # 11 # Configure the treectrl widget 12 # 13 14 $T configure -showroot no -showrootbutton yes -showbuttons yes \ 15 -showlines $::ShowLines -itemheight 0 -selectmode browse 16 17 # 18 # Create columns 19 # 20 21 $T column create -text Layout -itemjustify left -justify center -tags C0 22 $T configure -treecolumn C0 23 24 # 25 # Create elements 26 # 27 28 $T element create e1 rect -width 30 -height 30 -fill gray20 29 $T element create e2 rect -width 30 -height 30 -fill gray40 \ 30 -outline blue -outlinewidth 3 31 $T element create e3 rect -fill gray60 32 $T element create e4 rect -fill [list $::SystemHighlight {selected focus} gray80 {}] \ 33 -showfocus yes 34 $T element create e5 rect -fill {"sky blue"} -width 20 -height 20 35 $T element create e6 rect -fill {"sea green"} -width 30 -height 16 36 $T element create e7 rect -fill {"sky blue"} -width 30 -height 16 37 $T element create e8 rect -fill gray70 -height 1 38 39 # 40 # Create styles using the elements 41 # 42 43 set S [$T style create s1] 44 $T style elements $S {e4 e3 e1 e2 e5 e6 e7} 45 $T style layout $S e1 -padx {28 4} -pady 4 46 $T style layout $S e2 -expand es -padx {0 38} 47 $T style layout $S e3 -union [list e1 e2] -ipadx 4 -ipady 4 -pady 2 48 $T style layout $S e4 -detach yes -iexpand xy 49 $T style layout $S e5 -detach yes -padx {2 0} -pady 2 -iexpand y 50 $T style layout $S e6 -detach yes -expand ws -padx {0 2} -pady {2 0} 51 $T style layout $S e7 -detach yes -expand wn -padx {0 2} -pady {0 2} 52 53 # 54 # Create items and assign styles 55 # 56 57 set I [$T item create -button yes] 58 $T item style set $I C0 $S 59 $T item lastchild root $I 60 set parent $I 61 62 set I [$T item create] 63 $T item style set $I C0 $S 64 $T item lastchild $parent $I 65 66 ### 67 68 set S [$T style create s2] 69 $T style elements $S {e4 e3 e1} 70 $T style layout $S e1 -padx 8 -pady 8 -iexpand x 71 $T style layout $S e3 -union e1 -ipadx {20 4} -ipady {4 12} 72 $T style layout $S e4 -detach yes -iexpand xy 73 74 set I [$T item create -button yes] 75 $T item style set $I C0 $S 76 $T item lastchild root $I 77 78 set I2 [$T item create] 79 $T item style set $I2 C0 $S 80 $T item lastchild $I $I2 81 82 ### 83 84 set S [$T style create s3] 85 $T style elements $S {e4 e3 e1 e5 e6} 86 $T style layout $S e4 -union {e1 e6} -ipadx 8 -ipady {8 0} 87 $T style layout $S e3 -union {e1 e5} -ipadx 4 -ipady 4 88 $T style layout $S e5 -height 40 89 90 set I [$T item create -button yes] 91 $T item style set $I C0 $S 92 $T item lastchild root $I 93 94 set I2 [$T item create] 95 $T item style set $I2 C0 $S 96 $T item lastchild $I $I2 97 98 ### 99 100 $T element create eb border -background $::SystemButtonFace \ 101 -relief {sunken {selected} raised {}} -thickness 2 -filled yes 102 $T element create et text -lmargin2 20 103 104 set text "Here is a text element surrounded by a border element.\nResize the column to watch me wrap." 105 106 set S [$T style create s4] 107 $T style elements $S {eb et} 108 $T style layout $S eb -union et -ipadx 2 -ipady 2 109 $T style layout $S et -squeeze x 110 111 set I [$T item create -button yes] 112 $T item style set $I C0 $S 113 $T item text $I C0 $text 114 $T item lastchild root $I 115 set parent $I 116 117 set I [$T item create] 118 $T item style set $I C0 $S 119 $T item text $I C0 $text 120 $T item lastchild $parent $I 121 122 ### 123 124 set styleNum 5 125 foreach {orient expandList} {horizontal {s ns n} vertical {e we w}} { 126 foreach expand $expandList { 127 128 set S [$T style create s$styleNum -orient $orient] 129 $T style elements $S {e4 e8 e3 e2 e5 e6} 130 $T style layout $S e4 -detach yes -iexpand xy 131 $T style layout $S e8 -detach yes -expand n -iexpand x 132 $T style layout $S e3 -union {e2 e5 e6} -ipadx 5 -ipady 5 133 $T style layout $S e2 -expand $expand 134 $T style layout $S e5 -expand $expand -visible {no !selected} 135 $T style layout $S e6 -expand $expand 136 incr styleNum 137 138 set I [$T item create] 139 $T item style set $I C0 $S 140 $T item lastchild root $I 141 } 142 } 143 144 return 145} 146 147