head	1.5;
access;
symbols
	core-8-5-9:1.3
	core-8-5-8:1.3
	macosx-cocoa-merge:1.5
	macosx-cocoa-premerge:1.5
	macosx-carbon-freeze:1.5
	core-8-5-7:1.3
	core-8-5-6:1.3
	core-8-6-b1:1.5
	core-8-6-a3:1.4
	core-8-5-5:1.3
	core-8-6-a2:1.4
	core-8-5-4:1.3
	core-8-5-3:1.3
	core-8-6-a1:1.4
	core-8-5-branch:1.3.0.2
	core-8-5-2:1.3
	core-8-5-1:1.3
	core-8-5-0:1.3
	core-8-5-b3:1.2
	core-8-5-b2:1.2
	core-stabilizer-branch:1.1.0.2
	core-stabilizer-merge:1.3;
locks; strict;
comment	@# @;


1.5
date	2008.12.11.18.13.08;	author jenglish;	state Exp;
branches;
next	1.4;

1.4
date	2008.06.24.13.37.32;	author patthoyts;	state Exp;
branches;
next	1.3;

1.3
date	2007.12.13.15.27.07;	author dgp;	state Exp;
branches;
next	1.2;

1.2
date	2007.10.21.14.51.47;	author das;	state Exp;
branches;
next	1.1;

1.1
date	2007.10.18.14.34.10;	author dkf;	state Exp;
branches
	1.1.2.1;
next	;

1.1.2.1
date	2007.10.18.14.34.10;	author dgp;	state dead;
branches;
next	1.1.2.2;

1.1.2.2
date	2007.10.19.14.35.33;	author dgp;	state Exp;
branches;
next	1.1.2.3;

1.1.2.3
date	2007.10.24.12.59.33;	author dgp;	state Exp;
branches;
next	;


desc
@@


1.5
log
@library/demos/*.tcl: Omit contraindicated [package require Ttk].
Remove logic that switches [ttk::scrollbar]s to [tk::scrollbar]s
based on [tk windowingsystem]; this is already handled in
library/ttk/scrollbar.tcl.
@
text
@# ttkpane.tcl --
#
# This demonstration script creates a Ttk pane with some content.
#
# RCS: @@(#) $Id: ttkpane.tcl,v 1.4 2008/06/24 13:37:32 patthoyts Exp $

if {![info exists widgetDemo]} {
    error "This script should be run from the \"widget\" demo."
}

package require Tk

set w .ttkpane
catch {destroy $w}
toplevel $w
wm title $w "Themed Nested Panes"
wm iconname $w "ttkpane"
positionWindow $w

ttk::label $w.msg -font $font -wraplength 4i -justify left -text "This demonstration shows off a nested set of themed paned windows. Their sizes can be changed by grabbing the area between each contained pane and dragging the divider."
pack $w.msg [ttk::separator $w.msgSep] -side top -fill x

## See Code / Dismiss
pack [addSeeDismiss $w.seeDismiss $w] -side bottom -fill x

ttk::frame $w.f
pack $w.f -fill both -expand 1
set w $w.f
ttk::panedwindow $w.outer -orient horizontal
$w.outer add [ttk::panedwindow $w.outer.inLeft -orient vertical]
$w.outer add [ttk::panedwindow $w.outer.inRight -orient vertical]
$w.outer.inLeft  add [ttk::labelframe $w.outer.inLeft.top  -text Button]
$w.outer.inLeft  add [ttk::labelframe $w.outer.inLeft.bot  -text Clocks]
$w.outer.inRight add [ttk::labelframe $w.outer.inRight.top -text Progress]
$w.outer.inRight add [ttk::labelframe $w.outer.inRight.bot -text Text]
if {[tk windowingsystem] eq "aqua"} {
    foreach i [list inLeft.top inLeft.bot inRight.top inRight.bot] {
	$w.outer.$i configure -padding 3
    }
}

# Fill the button pane
ttk::button $w.outer.inLeft.top.b -text "Press Me" -command {
    tk_messageBox -type ok -icon info -message "Ouch!" -detail "That hurt..." \
	    -parent .ttkpane -title "Button Pressed"
}
pack $w.outer.inLeft.top.b -padx 2 -pady 5

# Fill the clocks pane
set i 0
proc every {delay script} {
    uplevel #0 $script
    after $delay [list every $delay $script]
}
set testzones {
    :Europe/Berlin
    :America/Argentina/Buenos_Aires
    :Africa/Johannesburg
    :Europe/London
    :America/Los_Angeles
    :Europe/Moscow
    :America/New_York
    :Asia/Singapore
    :Australia/Sydney
    :Asia/Tokyo
}
# Force a pre-load of all the timezones needed; otherwise can end up
# poor-looking synch problems!
set zones {}
foreach zone $testzones {
    if {![catch {clock format 0 -timezone $zone}]} {
        lappend zones $zone
    }
}
if {[llength $zones] < 2} { lappend zones -0200 :GMT :UTC +0200 }
foreach zone $zones {
    set city [string map {_ " "} [regexp -inline {[^/]+$} $zone]]
    if {$i} {
	pack [ttk::separator $w.outer.inLeft.bot.s$i] -fill x
    }
    ttk::label $w.outer.inLeft.bot.l$i -text $city -anchor w
    ttk::label $w.outer.inLeft.bot.t$i -textvariable time($zone) -anchor w
    pack $w.outer.inLeft.bot.l$i $w.outer.inLeft.bot.t$i -fill x
    every 1000 "set time($zone) \[clock format \[clock seconds\] -timezone $zone -format %T\]"
    incr i
}

# Fill the progress pane
ttk::progressbar $w.outer.inRight.top.progress -mode indeterminate
pack $w.outer.inRight.top.progress -fill both -expand 1
$w.outer.inRight.top.progress start

# Fill the text pane
if {[tk windowingsystem] ne "aqua"} {
    # The trick with the ttk::frame makes the text widget look like it fits with
    # the current Ttk theme despite not being a themed widget itself. It is done
    # by styling the frame like an entry, turning off the border in the text
    # widget, and putting the text widget in the frame with enough space to allow
    # the surrounding border to show through (2 pixels seems to be enough).
    ttk::frame $w.outer.inRight.bot.f				-style TEntry
    text $w.txt -wrap word -yscroll "$w.sb set" -width 30	-borderwidth 0
    pack $w.txt -fill both -expand 1 -in $w.outer.inRight.bot.f	-pady 2 -padx 2
    ttk::scrollbar $w.sb -orient vertical -command "$w.txt yview"
    pack $w.sb -side right -fill y -in $w.outer.inRight.bot
    pack $w.outer.inRight.bot.f -fill both -expand 1
    pack $w.outer -fill both -expand 1
} else {
    text $w.txt -wrap word -yscroll "$w.sb set" -width 30 -borderwidth 0
    scrollbar $w.sb -orient vertical -command "$w.txt yview"
    pack $w.sb -side right -fill y -in $w.outer.inRight.bot
    pack $w.txt -fill both -expand 1 -in $w.outer.inRight.bot
    pack $w.outer -fill both -expand 1 -padx 10 -pady {6 10}
}

@


1.4
log
@Work around missing timezones (eg: tclkit or some unixes)
@
text
@d5 1
a5 1
# RCS: @@(#) $Id: ttkpane.tcl,v 1.3 2007/12/13 15:27:07 dgp Exp $
a11 1
package require Ttk
@


1.3
log
@merge stable branch onto HEAD
@
text
@d5 1
a5 1
# RCS: @@(#) $Id: ttkpane.tcl,v 1.1.2.3 2007/10/24 12:59:33 dgp Exp $
d56 1
a56 1
set zones {
d70 7
a76 1
foreach zone $zones {clock format 0 -timezone $zone}
@


1.2
log
@	* library/demos/ttkmenu.tcl:	Aqua GOOBE.
	* library/demos/ttkpane.tcl:
	* library/demos/widget:
@
text
@d5 1
a5 1
# RCS: @@(#) $Id: ttkpane.tcl,v 1.1 2007/10/18 14:34:10 dkf Exp $
@


1.1
log
@More Ttk demos
@
text
@d5 1
a5 1
# RCS: @@(#) $Id: ttkpane.tcl,v 1.2 2007/10/17 18:21:49 das Exp $
d17 1
a17 1
wm title $w "Ttk Menu Buttons"
d27 3
d37 5
d89 20
a109 14
# The trick with the ttk::frame makes the text widget look like it fits with
# the current Ttk theme despite not being a themed widget itself. It is done
# by styling the frame like an entry, turning off the border in the text
# widget, and putting the text widget in the frame with enough space to allow
# the surrounding border to show through (2 pixels seems to be enough).
ttk::frame $w.outer.inRight.bot.f				-style TEntry
text $w.txt -wrap word -yscroll "$w.sb set" -width 30		-borderwidth 0
pack $w.txt -fill both -expand 1 -in $w.outer.inRight.bot.f	-pady 2 -padx 2

ttk::scrollbar $w.sb -orient vertical -command "$w.txt yview"
pack $w.sb -side right -fill y -in $w.outer.inRight.bot
pack $w.outer.inRight.bot.f -fill both -expand 1

pack $w.outer -fill both -expand 1
@


1.1.2.1
log
@file ttkpane.tcl was added on branch core-stabilizer-branch on 2007-10-19 14:35:33 +0000
@
text
@d1 95
@


1.1.2.2
log
@merge updates from HEAD
@
text
@a0 95
# ttkpane.tcl --
#
# This demonstration script creates a Ttk pane with some content.
#
# RCS: @@(#) $Id: ttkpane.tcl,v 1.1 2007/10/18 14:34:10 dkf Exp $

if {![info exists widgetDemo]} {
    error "This script should be run from the \"widget\" demo."
}

package require Tk
package require Ttk

set w .ttkpane
catch {destroy $w}
toplevel $w
wm title $w "Ttk Menu Buttons"
wm iconname $w "ttkpane"
positionWindow $w

ttk::label $w.msg -font $font -wraplength 4i -justify left -text "This demonstration shows off a nested set of themed paned windows. Their sizes can be changed by grabbing the area between each contained pane and dragging the divider."
pack $w.msg [ttk::separator $w.msgSep] -side top -fill x

## See Code / Dismiss
pack [addSeeDismiss $w.seeDismiss $w] -side bottom -fill x

ttk::panedwindow $w.outer -orient horizontal
$w.outer add [ttk::panedwindow $w.outer.inLeft -orient vertical]
$w.outer add [ttk::panedwindow $w.outer.inRight -orient vertical]
$w.outer.inLeft  add [ttk::labelframe $w.outer.inLeft.top  -text Button]
$w.outer.inLeft  add [ttk::labelframe $w.outer.inLeft.bot  -text Clocks]
$w.outer.inRight add [ttk::labelframe $w.outer.inRight.top -text Progress]
$w.outer.inRight add [ttk::labelframe $w.outer.inRight.bot -text Text]

# Fill the button pane
ttk::button $w.outer.inLeft.top.b -text "Press Me" -command {
    tk_messageBox -type ok -icon info -message "Ouch!" -detail "That hurt..." \
	    -parent .ttkpane -title "Button Pressed"
}
pack $w.outer.inLeft.top.b -padx 2 -pady 5

# Fill the clocks pane
set i 0
proc every {delay script} {
    uplevel #0 $script
    after $delay [list every $delay $script]
}
set zones {
    :Europe/Berlin
    :America/Argentina/Buenos_Aires
    :Africa/Johannesburg
    :Europe/London
    :America/Los_Angeles
    :Europe/Moscow
    :America/New_York
    :Asia/Singapore
    :Australia/Sydney
    :Asia/Tokyo
}
# Force a pre-load of all the timezones needed; otherwise can end up
# poor-looking synch problems!
foreach zone $zones {clock format 0 -timezone $zone}
foreach zone $zones {
    set city [string map {_ " "} [regexp -inline {[^/]+$} $zone]]
    if {$i} {
	pack [ttk::separator $w.outer.inLeft.bot.s$i] -fill x
    }
    ttk::label $w.outer.inLeft.bot.l$i -text $city -anchor w
    ttk::label $w.outer.inLeft.bot.t$i -textvariable time($zone) -anchor w
    pack $w.outer.inLeft.bot.l$i $w.outer.inLeft.bot.t$i -fill x
    every 1000 "set time($zone) \[clock format \[clock seconds\] -timezone $zone -format %T\]"
    incr i
}

# Fill the progress pane
ttk::progressbar $w.outer.inRight.top.progress -mode indeterminate
pack $w.outer.inRight.top.progress -fill both -expand 1
$w.outer.inRight.top.progress start

# Fill the text pane

# The trick with the ttk::frame makes the text widget look like it fits with
# the current Ttk theme despite not being a themed widget itself. It is done
# by styling the frame like an entry, turning off the border in the text
# widget, and putting the text widget in the frame with enough space to allow
# the surrounding border to show through (2 pixels seems to be enough).
ttk::frame $w.outer.inRight.bot.f				-style TEntry
text $w.txt -wrap word -yscroll "$w.sb set" -width 30		-borderwidth 0
pack $w.txt -fill both -expand 1 -in $w.outer.inRight.bot.f	-pady 2 -padx 2

ttk::scrollbar $w.sb -orient vertical -command "$w.txt yview"
pack $w.sb -side right -fill y -in $w.outer.inRight.bot
pack $w.outer.inRight.bot.f -fill both -expand 1

pack $w.outer -fill both -expand 1
@


1.1.2.3
log
@merge updates from HEAD
@
text
@d5 1
a5 1
# RCS: @@(#) $Id: ttkpane.tcl,v 1.1.2.2 2007/10/19 14:35:33 dgp Exp $
d17 1
a17 1
wm title $w "Themed Nested Panes"
a26 3
ttk::frame $w.f
pack $w.f -fill both -expand 1
set w $w.f
a33 5
if {[tk windowingsystem] eq "aqua"} {
    foreach i [list inLeft.top inLeft.bot inRight.top inRight.bot] {
	$w.outer.$i configure -padding 3
    }
}
a80 20
if {[tk windowingsystem] ne "aqua"} {
    # The trick with the ttk::frame makes the text widget look like it fits with
    # the current Ttk theme despite not being a themed widget itself. It is done
    # by styling the frame like an entry, turning off the border in the text
    # widget, and putting the text widget in the frame with enough space to allow
    # the surrounding border to show through (2 pixels seems to be enough).
    ttk::frame $w.outer.inRight.bot.f				-style TEntry
    text $w.txt -wrap word -yscroll "$w.sb set" -width 30	-borderwidth 0
    pack $w.txt -fill both -expand 1 -in $w.outer.inRight.bot.f	-pady 2 -padx 2
    ttk::scrollbar $w.sb -orient vertical -command "$w.txt yview"
    pack $w.sb -side right -fill y -in $w.outer.inRight.bot
    pack $w.outer.inRight.bot.f -fill both -expand 1
    pack $w.outer -fill both -expand 1
} else {
    text $w.txt -wrap word -yscroll "$w.sb set" -width 30 -borderwidth 0
    scrollbar $w.sb -orient vertical -command "$w.txt yview"
    pack $w.sb -side right -fill y -in $w.outer.inRight.bot
    pack $w.txt -fill both -expand 1 -in $w.outer.inRight.bot
    pack $w.outer -fill both -expand 1 -padx 10 -pady {6 10}
}
d82 14
@


