diff options
Diffstat (limited to 'ext/tk/lib/tkextlib/bwidget')
-rw-r--r-- | ext/tk/lib/tkextlib/bwidget/dialog.rb | 7 | ||||
-rw-r--r-- | ext/tk/lib/tkextlib/bwidget/dynamichelp.rb | 7 | ||||
-rw-r--r-- | ext/tk/lib/tkextlib/bwidget/listbox.rb | 3 | ||||
-rw-r--r-- | ext/tk/lib/tkextlib/bwidget/messagedlg.rb | 11 | ||||
-rw-r--r-- | ext/tk/lib/tkextlib/bwidget/tree.rb | 3 | ||||
-rw-r--r-- | ext/tk/lib/tkextlib/bwidget/widget.rb | 12 |
6 files changed, 42 insertions, 1 deletions
diff --git a/ext/tk/lib/tkextlib/bwidget/dialog.rb b/ext/tk/lib/tkextlib/bwidget/dialog.rb index 0ddee21d05..291ca4a962 100644 --- a/ext/tk/lib/tkextlib/bwidget/dialog.rb +++ b/ext/tk/lib/tkextlib/bwidget/dialog.rb @@ -59,6 +59,13 @@ class Tk::BWidget::Dialog end end + def cget_strict(slot) + if slot.to_s == 'relative' + super('parent') + else + super(slot) + end + end def cget(slot) if slot.to_s == 'relative' super('parent') diff --git a/ext/tk/lib/tkextlib/bwidget/dynamichelp.rb b/ext/tk/lib/tkextlib/bwidget/dynamichelp.rb index 224304f2ab..846e58062d 100644 --- a/ext/tk/lib/tkextlib/bwidget/dynamichelp.rb +++ b/ext/tk/lib/tkextlib/bwidget/dynamichelp.rb @@ -34,6 +34,13 @@ module Tk::BWidget::DynamicHelp ['DynamicHelp::configure'] end + def self.cget_strict(slot) + slot = slot.to_s + info = {} + self.current_configinfo.each{|k,v| info[k.to_s] = v if k.to_s == slot} + fail RuntimeError, "unknown option \"-#{slot}\"" if info.empty? + info.values[0] + end def self.cget(slot) self.current_configinfo(slot).values[0] end diff --git a/ext/tk/lib/tkextlib/bwidget/listbox.rb b/ext/tk/lib/tkextlib/bwidget/listbox.rb index d8cd72fec2..093fcb6fb3 100644 --- a/ext/tk/lib/tkextlib/bwidget/listbox.rb +++ b/ext/tk/lib/tkextlib/bwidget/listbox.rb @@ -297,6 +297,9 @@ class Tk::BWidget::ListBox::Item def cget(key) @listbox.itemcget(@id, key) end + def cget_strict(key) + @listbox.itemcget_strict(@id, key) + end def configure(key, val=None) @listbox.itemconfigure(@id, key, val) diff --git a/ext/tk/lib/tkextlib/bwidget/messagedlg.rb b/ext/tk/lib/tkextlib/bwidget/messagedlg.rb index cc8a996f46..b88461baf7 100644 --- a/ext/tk/lib/tkextlib/bwidget/messagedlg.rb +++ b/ext/tk/lib/tkextlib/bwidget/messagedlg.rb @@ -65,6 +65,17 @@ class Tk::BWidget::MessageDlg end @keys[slot] end + def cget_strict(slot) + slot = slot.to_s + if slot == 'relative' + slot = 'parent' + end + if winfo_exist? + val = super(slot) + @keys[slot] = val + end + @keys[slot] + end def configure(slot, value=None) if winfo_exist? diff --git a/ext/tk/lib/tkextlib/bwidget/tree.rb b/ext/tk/lib/tkextlib/bwidget/tree.rb index 7a46db575e..aed4512a73 100644 --- a/ext/tk/lib/tkextlib/bwidget/tree.rb +++ b/ext/tk/lib/tkextlib/bwidget/tree.rb @@ -358,6 +358,9 @@ class Tk::BWidget::Tree::Node def cget(key) @tree.itemcget(@id, key) end + def cget_strict(key) + @tree.itemcget_strict(@id, key) + end def configure(key, val=None) @tree.itemconfigure(@id, key, val) diff --git a/ext/tk/lib/tkextlib/bwidget/widget.rb b/ext/tk/lib/tkextlib/bwidget/widget.rb index 34e51308a5..a93364b567 100644 --- a/ext/tk/lib/tkextlib/bwidget/widget.rb +++ b/ext/tk/lib/tkextlib/bwidget/widget.rb @@ -29,6 +29,13 @@ module Tk::BWidget::Widget ['Widget::configure'] end + def self.cget_strict(slot) + slot = slot.to_s + info = {} + self.current_configinfo.each{|k,v| info[k.to_s] = v if k.to_s == slot} + fail RuntimeError, "unknown option \"-#{slot}\"" if info.empty? + info.values[0] + end def self.cget(slot) self.current_configinfo(slot).values[0] end @@ -105,9 +112,12 @@ module Tk::BWidget::Widget tk_call('Widget::setoption', win, option, value) end - def self.sub_cget(win, subwidget) + def self.sub_cget_strict(win, subwidget) tk_call('Widget::subcget', win, subwidget) end + def self.sub_cget(win, subwidget) + self.sub_cget_strict(win, subwidget) + end def self.sync_options(klass, subclass, subpath, options) tk_call('Widget::syncoptions', klass, subclass, subpath, options) |