diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:13:14 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:13:14 +0000 |
commit | d0233291bc8a5068e52c69c210e5979e5324b5bc (patch) | |
tree | 7d9459449c33792c63eeb7baa071e76352e0baab /trunk/ext/tk/lib/tkextlib/blt/tabset.rb | |
parent | 0dc342de848a642ecce8db697b8fecd83a63e117 (diff) | |
parent | 72eaacaa15256ab95c3b52ea386f88586fb9da40 (diff) |
re-adding tag v1_9_0_4 as an alias of trunk@18848v1_9_0_4
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_9_0_4@18849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'trunk/ext/tk/lib/tkextlib/blt/tabset.rb')
-rw-r--r-- | trunk/ext/tk/lib/tkextlib/blt/tabset.rb | 430 |
1 files changed, 0 insertions, 430 deletions
diff --git a/trunk/ext/tk/lib/tkextlib/blt/tabset.rb b/trunk/ext/tk/lib/tkextlib/blt/tabset.rb deleted file mode 100644 index ca81ad8f95..0000000000 --- a/trunk/ext/tk/lib/tkextlib/blt/tabset.rb +++ /dev/null @@ -1,430 +0,0 @@ -# -# tkextlib/blt/tabset.rb -# by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp) -# - -require 'tk' -require 'tkextlib/blt.rb' - -module Tk::BLT - class Tabset < TkWindow - class Tab < TkObject - include TkTreatItemFont - - TabID_TBL = TkCore::INTERP.create_table - - (TabsetTab_ID = ['blt_tabset_tab'.freeze, '00000'.taint]).instance_eval{ - @mutex = Mutex.new - def mutex; @mutex; end - freeze - } - - TkCore::INTERP.init_ip_env{ - TabID_TBL.mutex.synchronize{ TabID_TBL.clear } - } - - def self.id2obj(tabset, id) - tpath = tabset.path - TabID_TBL.mutex.synchronize{ - if TabID_TBL[tpath] - TabID_TBL[tpath][id]? TabID_TBL[tpath]: id - else - id - end - } - end - - def self.new(parent, pos=nil, name=nil, keys={}) - if pos.kind_of?(Hash) - keys = pos - name = nil - pos = nil - end - if name.kind_of?(Hash) - keys = name - name = nil - end - obj = nil - TabID_TBL.mutex.synchronize{ - if name && TabID_TBL[parent.path] && TabID_TBL[parent.path][name] - obj = TabID_TBL[parent.path][name] - obj.configure if keys && ! keys.empty? - else - (obj = self.allocate).instance_eval{ - initialize(parent, pos, name, keys) - TabID_TBL[@tpath] = {} unless TabID_TBL[@tpath] - TabID_TBL[@tpath][@id] = self - } - end - } - obj - end - - def initialize(parent, pos, name, keys) - @t = parent - @tpath = parent.path - if name - @path = @id = name - unless (list(tk_call(@tpath, 'tab', 'names', @id)).empty?) - if pos - idx = tk_call(@tpath, 'index', '-name', @id) - if pos.to_s == 'end' - tk_call(@tpath, idx, 'moveto', 'after', 'end') - else - tk_call(@tpath, idx, 'moveto', 'before', pos) - end - end - tk_call(@tpath, 'tab', 'configure', @id, keys) - else - pos = 'end' unless pos - tk_call(@tpath, 'insert', pos, @id, keys) - end - else - TabsetTab_ID.mutex.synchronize{ - @path = @id = TabsetTab_ID.join(TkCore::INTERP._ip_id_) - TabsetTab_ID[1].succ! - } - pos = 'end' unless pos - tk_call(@tpath, 'insert', pos, @id, keys) - end - end - - #def bind(context, cmd=Proc.new, *args) - # @t.tab_bind(@id, context, cmd, *args) - # self - #end - def bind(context, *args) - # if args[0].kind_of?(Proc) || args[0].kind_of?(Method) - if TkComm._callback_entry?(args[0]) || !block_given? - cmd = args.shift - else - cmd = Proc.new - end - @t.tab_bind(@id, context, cmd, *args) - self - end - #def bind_append(context, cmd=Proc.new, *args) - # @t.tab_bind_append(@id, context, cmd, *args) - # self - #end - def bind_append(context, *args) - # if args[0].kind_of?(Proc) || args[0].kind_of?(Method) - if TkComm._callback_entry?(args[0]) || !block_given? - cmd = args.shift - else - cmd = Proc.new - end - @t.tab_bind_append(@id, context, cmd, *args) - self - end - def bind_remove(context) - @t.tab_bind_remove(@id, context) - self - end - def bindinfo(context=nil) - @t.tab_bindinfo(@id, context) - end - - def cget(*args) - @t.tab_cget(@id, *args) - end - def cget_strict(*args) - @t.tab_cget_strict(@id, *args) - end - def configure(*args) - @t.tab_configure(@id, *args) - end - def configinfo(*args) - @t.tab_configinfo(@id, *args) - end - def current_configinfo(*args) - @t.current_tab_configinfo(@id, *args) - end - - def delete() - @t.delete(@id) - TabID_TBL.mutex.synchronize{ - TabID_TBL[@tpath].delete(@id) - } - self - end - - def get_name() - @id.dup - end - - def focus() - @t.focus(self.index) - end - - def index() - @t.index_name(@id) - end - - def invoke() - @t.invoke(self.index) - end - - def move_before(idx) - @t.move_before(self.index, idx) - end - def move_after(idx) - @t.move_after(self.index, idx) - end - - def perforation_highlight(mode) - @t.perforation.highlight(self.index, mode) - end - def perforation_invoke() - @t.perforation.invoke(self.index) - end - - def see() - @t.see(self.index) - end - - def tearoff(name=None) - @t.tab_tearoff(self.index, *args) - end - end - - ######################################## - - class NamedTab < Tab - def self.new(parent, name) - super(parent, nil, name, {}) - end - end - - ######################################## - - include X_Scrollable - include TkItemConfigMethod - - TkCommandNames = ['::blt::tabset'.freeze].freeze - WidgetClassName = 'Tabset'.freeze - WidgetClassNames[WidgetClassName] = self - - def __destroy_hook__ - Tk::BLT::Tabset::Tab::TabID_TBL.mutex.synchronize{ - Tk::BLT::Tabset::Tab::TabID_TBL.delete(@path) - } - end - - ######################################## - - def __boolval_optkeys - super() << 'samewidth' << 'tearoff' - end - private :__strval_optkeys - - def __strval_optkeys - super() << 'tabbackground' << 'tabforeground' - end - private :__strval_optkeys - - def __item_cget_cmd(id) - [self.path, 'tab', 'cget', id] - end - private :__item_cget_cmd - - def __item_config_cmd(id) - [self.path, 'tab', 'configure', id] - end - private :__item_config_cmd - - def __item_pathname(tagOrId) - if tagOrId.kind_of?(Tk::BLT::Tabset::Tab) - self.path + ';' + tagOrId.id.to_s - else - self.path + ';' + tagOrId.to_s - end - end - private :__item_pathname - - alias tab_cget itemcget - alias tab_cget_strict itemcget_strict - alias tab_configure itemconfigure - alias tab_configinfo itemconfiginfo - alias current_tab_configinfo current_itemconfiginfo - - def __item_strval_optkeys(id) - super(id) << 'shadow' - end - private :__item_strval_optkeys - - def tagid(tab) - if tab.kind_of?(Tk::BLT::Tabset::Tab) - tab.id - else - tab - end - end - - def tagindex(tab) - if tab.kind_of?(Tk::BLT::Tabset::Tab) - tab.index - else - tab - end - end - - ######################################## - - def activate(index) - tk_send('activate', tagindex(index)) - self - end - alias highlight activate - - #def tabbind(tag, context, cmd=Proc.new, *args) - # _bind([path, "bind", tagid(tag)], context, cmd, *args) - # self - #end - def tabbind(tag, context, *args) - # if args[0].kind_of?(Proc) || args[0].kind_of?(Method) - if TkComm._callback_entry?(args[0]) || !block_given? - cmd = args.shift - else - cmd = Proc.new - end - _bind([path, "bind", tagid(tag)], context, cmd, *args) - self - end - #def tabbind_append(tag, context, cmd=Proc.new, *args) - # _bind_append([path, "bind", tagid(tag)], context, cmd, *args) - # self - #end - def tabbind_append(tag, context, *args) - # if args[0].kind_of?(Proc) || args[0].kind_of?(Method) - if TkComm._callback_entry?(args[0]) || !block_given? - cmd = args.shift - else - cmd = Proc.new - end - _bind_append([path, "bind", tagid(tag)], context, cmd, *args) - self - end - def tabbind_remove(tag, context) - _bind_remove([path, "bind", tagid(tag)], context) - self - end - def tabbindinfo(tag, context=nil) - _bindinfo([path, "bind", tagid(tag)], context) - end - - def delete(first, last=None) - tk_send('delete', tagindex(first), tagindex(last)) - if first.kind_of?(Tk::BLT::Tabset::Tab) - TabID_TBL.mutex.synchronize{ - TabID_TBL[@path].delete(first.id) - } - end - # middle tabs of the range are unknown - if last.kind_of?(Tk::BLT::Tabset::Tab) - TabID_TBL.mutex.synchronize{ - TabID_TBL[@path].delete(last.id) - } - end - self - end - - def focus(index) - tk_send('focus', tagindex(index)) - self - end - - def get_tab(index) - Tk::BLT::Tabset::Tab.id2obj(tk_send_without_enc('get', tagindex(index))) - end - - def index(str) - num_or_str(tk_send('index', str)) - end - def index_name(tab) - num_or_str(tk_send('index', '-mame', tagid(tab))) - end - - def insert(pos, tab, keys={}) - Tk::BLT::Tabset::Tab.new(self, tagindex(pos), tagid(tab), keys) - end - - def invoke(index) - tk_send('invoke', tagindex(index)) - end - - def move_before(index, base_idx) - tk_send('move', tagindex(index), 'before', tagindex(base_idx)) - self - end - def move_after(index, base_idx) - tk_send('move', tagindex(index), 'after', tagindex(base_idx)) - self - end - - def nearest(x, y) - Tk::BLT::Tabset::Tab.id2obj(num_or_str(tk_send_without_enc('nearest', x, y))) - end - - def perforation_highlight(index, mode) - tk_send('perforation', 'highlight', tagindex(index), mode) - self - end - def perforation_invoke(index) - tk_send('perforation', 'invoke', tagindex(index)) - end - - def scan_mark(x, y) - tk_send_without_enc('scan', 'mark', x, y) - self - end - def scan_dragto(x, y) - tk_send_without_enc('scan', 'dragto', x, y) - self - end - - def see(index) - tk_send('see', tagindex(index)) - self - end - - def size() - number(tk_send_without_enc('size')) - end - - def select(index) - tk_send('select', tagindex(index)) - self - end - - def tab_names(pat=None) - simplelist(tk_send('tab', 'names', pat)).collect{|name| - Tk::BLT::Tabset::Tab.id2obj(name) - } - end - - def tab_tearoff(index, name=None) - window(tk_send('tab', 'tearoff', tagindex(index), name)) - end - - def xscrollcommand(cmd=Proc.new) - configure_cmd 'scrollcommand', cmd - self - end - alias scrollcommand xscrollcommand - - def xview(*index) - if index.empty? - list(tk_send_without_enc('view')) - else - tk_send_without_enc('view', *index) - self - end - end - alias view xview - alias view_moveto xview_moveto - alias view_scroll xview_scroll - - alias scrollbar xscrollbar - end -end |