[ruby-dev:26298] ext/tk/sample/tkextlib/tile/themes
From:
"H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date:
2005-06-07 03:17:06 UTC
List:
ruby-dev #26298
山本です。
tile のテーマ kroc についてですが、
http://tktable.sourceforge.net/tile/news.html にあるように
Tile 0.5 released 31 Oct 2004
What's new in 0.5:
* "pixmap" element constructor replaced by "image"; see image.n.
User-defined pixmap themes will need to be updated.
とされた関係で、tile 0.5 以上で動かなくなっています。
RuntimeError: TkPackage No such element type pixmap
---< backtrace of Ruby side >-----
E:/ruby-cvs/bcc32_1_8/.ext/tk/package.rb:86:in `require'
demo.rb:96:in `setTheme'
demo.rb:81:in `makeThemeMenu'
demo.rb:81:in `call'
E:/ruby-cvs/bcc32_1_8/.ext/tk.rb:1125:in `eval_cmd'
E:/ruby-cvs/bcc32_1_8/.ext/tk.rb:1125:in `cb_eval'
E:/ruby-cvs/bcc32_1_8/.ext/tk.rb:1076:in `call'
E:/ruby-cvs/bcc32_1_8/.ext/tk.rb:1219:in `callback'
E:/ruby-cvs/bcc32_1_8/.ext/tk.rb:1218:in `catch'
E:/ruby-cvs/bcc32_1_8/.ext/tk.rb:1218:in `callback'
E:/ruby-cvs/bcc32_1_8/.ext/tk.rb:1439:in `mainloop'
E:/ruby-cvs/bcc32_1_8/.ext/tk.rb:1439:in `mainloop'
demo.rb:744
---< backtrace of Tk side >-------
invoked from within
"rb_out c00058"
(menu invoke)
tile 0.4 でも試してみましたが、Tab.TNotebook が TNotebook.Tab に
変わったりと色々変わってる関係で、正しく表示されませんでした。
http://www.ccsnet.ne.jp/~ocean/26298/bad.png
http://www.ccsnet.ne.jp/~ocean/26298/good.png となるべき
とりあえず tile 0.5 以上を対象としたパッチです。他のテーマを参考に
したパッチで、それなりに動いているように見えます。
# http://cvs.sourceforge.net/viewcvs.py/tktable/tile-themes/kroc/ を
# 覗いてみたのですが、まだ 0.5 に対応してないようでした。
Index: kroc.rb
===================================================================
RCS file: /src/ruby/ext/tk/sample/tkextlib/tile/themes/kroc.rb,v
retrieving revision 1.2
diff -u -w -b -p -r1.2 kroc.rb
--- kroc.rb 9 Apr 2005 09:27:53 -0000 1.2
+++ kroc.rb 7 Jun 2005 02:55:02 -0000
@@ -46,7 +46,7 @@ def kroc_rb_settings
# Tk::Tile::Style.map(nil, :background=>[:active, '#694418'])
# or
Tk::Tile::Style.map(:background=>[:active, '#694418'])
- Tk::Tile::Style.map(:foreground=>[:disabled, 'B2B2B2', :active, '#FFE7CB'])
+ Tk::Tile::Style.map(:foreground=>[:disabled, '#B2B2B2', :active, '#FFE7CB'])
# Tk::Tile::Style.default('TButton', :padding=>[10,4])
Tk::Tile::Style.default(Tk::Tile::TButton, :padding=>[10,4])
@@ -89,32 +89,29 @@ def kroc_rb_settings
#
# Elements:
#
- Tk::Tile::Style.element_create('Button.button', :pixmap,
- :images=>[
+ Tk::Tile::Style.element_create('Button.button', :image, $images['button-n'],
+ :map=>[
:pressed, $images['button-p'],
:active, $images['button-h'],
- '', $images['button-n']
- ], :border=>3, :tiling=>:tile)
+ ], :border=>3, :sticky=>:ew)
- Tk::Tile::Style.element_create('Checkbutton.indicator', :pixmap,
- :images=>[
+ Tk::Tile::Style.element_create('Checkbutton.indicator', :image, $images['check-nu'],
+ :map=>[
[:pressed, :selected], $images['check-nc'],
:pressed, $images['check-nu'],
[:active, :selected], $images['check-hc'],
:active, $images['check-hu'],
:selected, $images['check-nc'],
- '', $images['check-nu'],
- ], :tiling=>:fixed)
+ ], :sticky=>:w)
- Tk::Tile::Style.element_create('Radiobutton.indicator', :pixmap,
- :images=>[
+ Tk::Tile::Style.element_create('Radiobutton.indicator', :image, $images['radio-nu'],
+ :map=>[
[:pressed, :selected], $images['radio-nc'],
:pressed, $images['radio-nu'],
[:active, :selected], $images['radio-hc'],
:active, $images['radio-hu'],
:selected, $images['radio-nc'],
- '', $images['radio-nu'],
- ], :tiling=>:fixed)
+ ], :sticky=>:w)
#
# Settings:
Index: kroc.tcl
===================================================================
RCS file: /src/ruby/ext/tk/sample/tkextlib/tile/themes/kroc.tcl,v
retrieving revision 1.2
diff -u -w -b -p -r1.2 kroc.tcl
--- kroc.tcl 9 Apr 2005 09:27:53 -0000 1.2
+++ kroc.tcl 7 Jun 2005 02:48:41 -0000
@@ -57,29 +57,29 @@ namespace eval tile::kroc {
#
# Elements:
#
- style element create Button.button pixmap -images [list \
+ style element create Button.button image $Images(button-n) \
+ -map [list \
pressed $Images(button-p) \
active $Images(button-h) \
- {} $Images(button-n) \
- ] -border 3 -tiling tile
+ ] -border 3 -sticky ew
- style element create Checkbutton.indicator pixmap -images [list \
+ style element create Checkbutton.indicator image $Images(check-nu) \
+ -map [list \
{pressed selected} $Images(check-nc) \
pressed $Images(check-nu) \
{active selected} $Images(check-hc) \
active $Images(check-hu) \
selected $Images(check-nc) \
- {} $Images(check-nu) \
- ] -tiling fixed
+ ] -sticky w
- style element create Radiobutton.indicator pixmap -images [list \
+ style element create Radiobutton.indicator image $Images(radio-nu) \
+ -map [list \
{pressed selected} $Images(radio-nc) \
pressed $Images(radio-nu) \
{active selected} $Images(radio-hc) \
active $Images(radio-hu) \
selected $Images(radio-nc) \
- {} $Images(radio-nu) \
- ] -tiling fixed
+ ] -sticky w
#
Index: pkgIndex.tcl
===================================================================
RCS file: /src/ruby/ext/tk/sample/tkextlib/tile/themes/pkgIndex.tcl,v
retrieving revision 1.2
diff -u -w -b -p -r1.2 pkgIndex.tcl
--- pkgIndex.tcl 9 Apr 2005 09:27:54 -0000 1.2
+++ pkgIndex.tcl 7 Jun 2005 03:16:16 -0000
@@ -10,6 +10,7 @@
if {![file isdirectory [file join $dir kroc]]} { return }
if {![package vsatisfies [package provide Tcl] 8.4]} { return }
+if {![package vsatisfies [package provide tile] 0.5]} { return }
package ifneeded tile::theme::kroc 0.0.1 \
[list source [file join $dir kroc.tcl]]