1
1
# ----------------------------------------------------------------------------
2
2
# panedw.tcl
3
3
# This file is part of Unifix BWidget Toolkit
4
+ # $Id: panedw.tcl,v 1.15 2009/09/06 21:29:34 oberdorfer Exp $
4
5
# ----------------------------------------------------------------------------
5
6
# Index of commands:
6
7
# - PanedWindow::create
@@ -34,13 +35,20 @@ namespace eval PanedWindow {
34
35
{-side Enum top 1 {top left bottom right}}
35
36
{-width Int 10 1 " %d >=3" }
36
37
{-pad Int 4 1 " %d >= 0" }
37
- {-background TkResource " " 0 frame }
38
+ {-background Color " SystemWindowFrame " 0 }
38
39
{-bg Synonym -background}
39
40
{-activator Enum " " 1 {line button}}
40
41
{-weights Enum extra 1 {extra available}}
41
42
}
42
43
43
44
variable _panedw
45
+
46
+ if { [BWidget::using ttk] } {
47
+ if {[lsearch [bindtags .] PanedWThemeChanged] < 0} {
48
+ bindtags . [linsert [bindtags .] 1 PanedWThemeChanged]
49
+ }
50
+ }
51
+
44
52
}
45
53
46
54
@@ -52,8 +60,9 @@ proc PanedWindow::create { path args } {
52
60
variable _panedw
53
61
54
62
Widget::init PanedWindow $path $args
63
+ frame $path -background [Widget::cget $path -background] \
64
+ -class PanedWindow
55
65
56
- frame $path -background [Widget::cget $path -background] -class PanedWindow
57
66
set _panedw($path ,nbpanes) 0
58
67
set _panedw($path ,weights) " "
59
68
set _panedw($path ,configuredone) 0
@@ -73,6 +82,12 @@ proc PanedWindow::create { path args } {
73
82
bind $path <Configure> [list PanedWindow::_realize $path %w %h]
74
83
bind $path <Destroy> [list PanedWindow::_destroy $path ]
75
84
85
+ if { [BWidget::using ttk] } {
86
+ bind PanedWThemeChanged <<ThemeChanged>> \
87
+ " +[ namespace current] ::_themechanged $path "
88
+ }
89
+
90
+
76
91
return [Widget::create PanedWindow $path ]
77
92
}
78
93
@@ -383,3 +398,16 @@ proc PanedWindow::_destroy { path } {
383
398
unset _panedw($path ,nbpanes)
384
399
Widget::destroy $path
385
400
}
401
+
402
+
403
+ # ----------------------------------------------------------------------------
404
+ # Command PanedWindow::_themechanged
405
+ # ----------------------------------------------------------------------------
406
+ proc PanedWindow::_themechanged { path } {
407
+
408
+ if { ![winfo exists $path ] } { return }
409
+ BWidget::set_themedefaults
410
+
411
+ $path configure \
412
+ -background $BWidget::colors(SystemWindowFrame)
413
+ }
0 commit comments