From 10a099ad9d4800d30d716379c62c3baa95790bf9 Mon Sep 17 00:00:00 2001 From: nagai Date: Wed, 12 May 2004 04:24:55 +0000 Subject: * ext/tk/lib/tk/composite.rb: improve configure methods. (based on the proposal of [ruby-talk:99671]) git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/tk/sample/tktextframe.rb | 58 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) (limited to 'ext/tk/sample') diff --git a/ext/tk/sample/tktextframe.rb b/ext/tk/sample/tktextframe.rb index 5d16f2b0b..72bc7c187 100644 --- a/ext/tk/sample/tktextframe.rb +++ b/ext/tk/sample/tktextframe.rb @@ -35,8 +35,20 @@ class TkTextFrame < TkText hscroll(keys.delete('hscroll'){true}) # set background of the text widget +=begin color = keys.delete('textbackground') textbackground(color) if color +=end + # please check the differences of the following definitions + option_methods( + [:scrollbarwidth, :get_scrollbarwidth], + [:textbackground, nil, :textbg_info], + :textborderwidth, + :textrelief + ) + + # set receiver widgets for configure methods (with alias) + delegate_alias('scrollbarrelief', 'relief', @h_scroll, @v_scroll) # set receiver widgets for configure methods delegate('DEFAULT', @text) @@ -62,6 +74,46 @@ class TkTextFrame < TkText end end + def textbg_info + info = @text.configinfo(:background) + if TkComm::GET_CONFIGINFO_AS_ARRAY + info[0] = 'textbackground' + info + else # ! TkComm::GET_CONFIGINFO_AS_ARRAY + {'textbackground' => info['background']} + end + end + + # get/set borderwidth of text widget + def set_textborderwidth(width) + @text.borderwidth(width) + end + def get_textborderwidth + @text.borderwidth + end + def textborderwidth(width = nil) + if width + set_textborderwidth(width) + else + get_textborderwidth + end + end + + # set relief of text widget + def textrelief(type) + @text.relief(type) + end + + # get/set width of scrollbar + def get_scrollbarwidth + @v_scroll.width + end + def set_scrollbarwidth(width) + @v_scroll.width(width) + @h_scroll.width(width) + end + alias :scrollbarwidth :set_scrollbarwidth + # vertical scrollbar : ON/OFF def vscroll(mode) st = TkGrid.info(@v_scroll) @@ -93,7 +145,11 @@ end ################################################ if __FILE__ == $0 f = TkFrame.new.pack('fill'=>'x') - t = TkTextFrame.new.pack + #t = TkTextFrame.new.pack + t = TkTextFrame.new(:textborderwidth=>3, + :textrelief=>:ridge, + :scrollbarrelief=>:ridge).pack + p t.configinfo TkButton.new(f, 'text'=>'vscr OFF', 'command'=>proc{t.vscroll(false)}).pack('side'=>'right') TkButton.new(f, 'text'=>'vscr ON', -- cgit