Import Tix 8.4.3.5 (as of svn r86089)
This commit is contained in:
157
library/MultView.tcl
Normal file
157
library/MultView.tcl
Normal file
@@ -0,0 +1,157 @@
|
||||
# -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
|
||||
#
|
||||
# $Id: MultView.tcl,v 1.3 2001/12/09 05:04:02 idiscovery Exp $
|
||||
#
|
||||
# MultView.tcl --
|
||||
#
|
||||
# Implements the multi-view widget
|
||||
#
|
||||
# Copyright (c) 1993-1999 Ioi Kim Lam.
|
||||
# Copyright (c) 2000-2001 Tix Project Group.
|
||||
#
|
||||
# See the file "license.terms" for information on usage and redistribution
|
||||
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
#
|
||||
|
||||
|
||||
tixWidgetClass tixMultiView {
|
||||
-classname TixMultiView
|
||||
-superclass tixPrimitive
|
||||
-method {
|
||||
add
|
||||
}
|
||||
-flag {
|
||||
-browsecmd -command -view
|
||||
}
|
||||
-forcecall {
|
||||
-view
|
||||
}
|
||||
-configspec {
|
||||
{-browsecmd browseCmd BrowseCmd ""}
|
||||
{-command command Command ""}
|
||||
{-view view View icon tixMultiView:VerifyView}
|
||||
}
|
||||
-alias {
|
||||
}
|
||||
|
||||
-default {
|
||||
}
|
||||
}
|
||||
|
||||
proc tixMultiView:InitWidgetRec {w} {
|
||||
upvar #0 $w data
|
||||
global env
|
||||
|
||||
tixChainMethod $w InitWidgetRec
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
# Construct widget
|
||||
#----------------------------------------------------------------------
|
||||
proc tixMultiView:ConstructWidget {w} {
|
||||
upvar #0 $w data
|
||||
|
||||
tixChainMethod $w ConstructWidget
|
||||
|
||||
set data(w:stlist) [tixScrolledTList $w.stlist]
|
||||
set data(w:sgrid) [tixScrolledGrid $w.sgrid]
|
||||
set data(w:icon) [tixIconView $w.icon]
|
||||
|
||||
set data(w:tlist) [$data(w:stlist) subwidget tlist]
|
||||
set data(w:grid) [$data(w:sgrid) subwidget grid]
|
||||
|
||||
$data(w:grid) config -formatcmd [list tixMultiView:GridFormat $w] \
|
||||
-leftmargin 0 -topmargin 1
|
||||
}
|
||||
|
||||
proc tixMultiView:SetBindings {w} {
|
||||
upvar #0 $w data
|
||||
|
||||
tixChainMethod $w SetBindings
|
||||
}
|
||||
|
||||
proc tixMultiView:GetWid {w which} {
|
||||
upvar #0 $w data
|
||||
|
||||
case $which {
|
||||
list {
|
||||
return $data(w:stlist)
|
||||
}
|
||||
icon {
|
||||
return $data(w:icon)
|
||||
}
|
||||
detail {
|
||||
return $data(w:sgrid)
|
||||
}
|
||||
}
|
||||
}
|
||||
#----------------------------------------------------------------------
|
||||
# Configuration
|
||||
#----------------------------------------------------------------------
|
||||
proc tixMultiView:config-view {w value} {
|
||||
upvar #0 $w data
|
||||
|
||||
if {$data(-view) != ""} {
|
||||
pack forget [tixMultiView:GetWid $w $data(-view)]
|
||||
}
|
||||
|
||||
pack [tixMultiView:GetWid $w $value] -expand yes -fill both
|
||||
}
|
||||
#----------------------------------------------------------------------
|
||||
# Private methods
|
||||
#----------------------------------------------------------------------
|
||||
proc tixMultiView:GridFormat {w area x1 y1 x2 y2} {
|
||||
upvar #0 $w data
|
||||
|
||||
case $area {
|
||||
main {
|
||||
}
|
||||
{x-margin y-margin s-margin} {
|
||||
# cborder specifies consecutive 3d borders
|
||||
#
|
||||
$data(w:grid) format cborder $x1 $y1 $x2 $y2 \
|
||||
-fill 1 -relief raised -bd 2 -bg gray60 \
|
||||
-selectbackground gray80
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
# Public methods
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
# Return value is the index of "$name" in the grid subwidget
|
||||
#
|
||||
#
|
||||
proc tixMultiView:add {w name args} {
|
||||
upvar #0 $w data
|
||||
|
||||
set validOptions {-image -text}
|
||||
|
||||
set opt(-image) ""
|
||||
set opt(-text) ""
|
||||
|
||||
tixHandleOptions -nounknown opt $validOptions $args
|
||||
|
||||
$data(w:icon) add $name $opt(-image) $opt(-text)
|
||||
$data(w:tlist) insert end -itemtype imagetext \
|
||||
-image $opt(-image) -text $opt(-text)
|
||||
$data(w:grid) set 0 end -itemtype imagetext \
|
||||
-image $opt(-image) -text $opt(-text)
|
||||
|
||||
return max
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
# checker
|
||||
#----------------------------------------------------------------------
|
||||
proc tixMultiView:VerifyView {value} {
|
||||
case $value {
|
||||
{icon list detail} {
|
||||
return $value
|
||||
}
|
||||
}
|
||||
error "bad view \"$value\", must be detail, icon or list"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user