zoukankan      html  css  js  c++  java
  • treectrl

    namespace eval DemoIMovie {}
    treectrl .t  -height 900 -width 900
    pack .t
    set ScriptDir [file normalize [file dirname [info script]]]
    set ::thisPlatform unix
    proc Path {args} {
        return [file normalize [eval [list file join $::ScriptDir] $args]]
    }
    proc DemoIMovie::Button1 {T x y} {
        focus $T
        set id [$T identify $x $y]

        # Click outside any item
        if {$id eq ""} {

        # Click in header
        } elseif {[lindex $id 0] eq "header"} {
     ::TreeCtrl::ButtonPress1 $T $x $y

        # Click in item
        } elseif {[lindex $id 0] eq "item"} {
     ::TreeCtrl::ButtonPress1 $T $x $y
     update
     lassign $id where item arg1 arg2 arg3 arg4
     switch $arg1 {
         column {
      set I [lindex $id 1]
      if {[llength $id] == 6} {
          set E [lindex $id end]
          if {$E eq "elemName"} {
       set exists [winfo exists $T.entry]
       ::TreeCtrl::EntryOpen $T $I C0 $E
       if {!$exists} {
           $T.entry configure -borderwidth 0 -justify center \
        -background #ffdc5a
           scan [$T item bbox $I C0 $E] "%d %d %d %d" x1 y1 x2 y2
           place $T.entry -y [expr {$y1 - 1}]
       }
       $T.entry selection clear
       scan [$T item bbox $I C0 elemImg] "%d %d %d %d" x1 y1 x2 y2
       set left $x1
       set right $x2
       place $T.entry -x $left -width [expr {$right - $left}]
       $T.entry icursor [$T.entry index @[expr {$x - ($x1 + 1)}]]
       # Disable mouse tracking
       unset ::TreeCtrl::Priv(buttonMode)
          }
      }
         }
     }
        }
        return -code break
    }


    proc InitPics {args} {
        foreach pattern $args {
     if {[lsearch [image names] $pattern] == -1} {
         foreach file [glob -directory [Path pics] $pattern.gif] {
      set imageName [file root [file tail $file]]
      # I created an image called "file", which clobbered the
      # original Tcl command "file". Then I got confused.
      if {[llength [info commands $imageName]]} {
          error "don't want to create image called \"$imageName\""
      }
      image create photo $imageName -file $file

      # Hack -- Create a "selected" version too
      image create photo ${imageName}Sel
      ${imageName}Sel copy $imageName
     # imagetint ${imageName}Sel $::SystemHighlight 128
         }
     }
        }
        return
    }

    .t configure -showroot no -showbuttons no -showlines no \
    -selectmode browse -orient horizontal -wrap window \
    -showheader no -background #dcdcdc -yscrollsmoothing yes

    .t configure -canvaspadx 8 -canvaspady 8 \
    -itemgapx 8 -itemgapy 8

    .t column create -tags C0

    InitPics imovie-*

    set font1 {Helvetica 12}
    set font2 {Helvetica 14}

    .t element create elemTime text -font [list $font1]
    .t element create elemName text -font [list $font2] -lines 1 -width 80
    .t element create elemRect rect -fill {#ffdc5a {selected} white {}} \
        -outline #827878 -outlinewidth 1
    .t element create elemImg image
    .t element create elemShadow rect -outline gray -outlinewidth 1 -open wn


    set S [.t style create STYLE -orient vertical]
    .t style elements $S {elemShadow elemRect elemTime elemImg elemName}
    .t style layout $S elemShadow -detach yes -padx {1 0} -pady {1 0} -iexpand xy
    .t style layout $S elemTime -padx {2 0}
    .t style layout $S elemImg -pady {0 1}
    .t style layout $S elemName -expand we -ipady {0 2} -padx {0 3} -squeeze x
    .t style layout $S elemRect -union {elemTime elemImg elemName} \
        -ipadx 6 -padx {0 1} -pady {0 1}

        # Set default item style
    .t column configure C0 -itemstyle $S
        bind DemoIMovie <ButtonPress-1> {
     DemoIMovie::Button1 %W %x %y
        }

        for {set i 0} {$i < 5} {incr i} {
      foreach {time name image} {
          15:20 "Clip 1" imovie-01
          19:18 "Clip 2" imovie-02
          07:20 "Clip 3" imovie-03
          07:20 "Clip 4" imovie-04
          07:20 "Clip 5" imovie-05
          07:20 "Clip 6" imovie-06
          07:20 "Clip 7" imovie-07
      } {
          set I [.t item create]
     #   $T item style set $I C0 $S
          .t item element configure $I C0 \
       elemTime -text $time + \
       elemImg -image $image + \
       elemName -text $name
          .t item lastchild root $I
      }
         }
     
    bindtags .t [list .t DemoIMovie  TreeCtrl [winfo toplevel .t] all]

  • 相关阅读:
    LightOJ 1132 Summing up Powers(矩阵快速幂)
    hdu 3804 Query on a tree (树链剖分+线段树)
    LightOJ 1052 String Growth && uva 12045 Fun with Strings (矩阵快速幂)
    uva 12304 2D Geometry 110 in 1! (Geometry)
    LA 3263 That Nice Euler Circuit (2D Geometry)
    2013 SCAUCPC Summary
    poj 3321 Apple Tree (Binary Index Tree)
    uva 11796 Dog Distance (几何+模拟)
    uva 11178 Morley's Theorem (2D Geometry)
    动手动脑
  • 原文地址:https://www.cnblogs.com/greencolor/p/2180684.html
Copyright © 2011-2022 走看看