mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Add lacks for Tk8.5 support.
* ext/tk/lib/tk.rb: add Tk.pkgconfig_list and Tk.pkgconfig_get [Tk8.5 feature]. * ext/tk/lib/tk/text.rb: supports new indices modifires on a Text widget [Tk8.5 feature]. * ext/tk/lib/tk/virtevent.rb: add TkNamedVirtualEvent. * ext/tk/lib/tk/autoload.rb: ditto. * ext/tk/lib/tk/event.rb: add :data key for virtual events [Tk8.5 feature]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9601 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
29bcbe5c5e
commit
4b87fa9de2
6 changed files with 181 additions and 1 deletions
15
ChangeLog
15
ChangeLog
|
@ -1,3 +1,18 @@
|
|||
Wed Nov 23 20:59:01 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
|
||||
|
||||
* ext/tk/lib/tk.rb: add Tk.pkgconfig_list and Tk.pkgconfig_get
|
||||
[Tk8.5 feature].
|
||||
|
||||
* ext/tk/lib/tk/text.rb: supports new indices modifires on a Text
|
||||
widget [Tk8.5 feature].
|
||||
|
||||
* ext/tk/lib/tk/virtevent.rb: add TkNamedVirtualEvent.
|
||||
|
||||
* ext/tk/lib/tk/autoload.rb: ditto.
|
||||
|
||||
* ext/tk/lib/tk/event.rb: add :data key for virtual events [Tk8.5
|
||||
feature].
|
||||
|
||||
Wed Nov 23 18:52:45 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
|
||||
|
||||
* file.c (w32_io_info): should not call GetFileInformationByHandle
|
||||
|
|
|
@ -1921,6 +1921,62 @@ module Tk
|
|||
end
|
||||
end
|
||||
|
||||
def Tk.pkgconfig_list(mod)
|
||||
# Tk8.5 feature
|
||||
if mod.kind_of?(Module)
|
||||
if mod.respond_to?(:package_name)
|
||||
pkgname = mod.package_name
|
||||
elsif mod.const_defined?(:PACKAGE_NAME)
|
||||
pkgname = mod::PACKAGE_NAME
|
||||
else
|
||||
fail NotImplementedError, 'may not be a module for a Tcl extension'
|
||||
end
|
||||
else
|
||||
pkgname = mod.to_s
|
||||
end
|
||||
|
||||
pkgname = '::' << pkgname unless pkgname =~ /^::/
|
||||
|
||||
tk_split_list(tk_call(pkgname + '::pkgconfig', 'list'))
|
||||
end
|
||||
|
||||
def Tk.pkgconfig_get(mod, key)
|
||||
# Tk8.5 feature
|
||||
if mod.kind_of?(Module)
|
||||
if mod.respond_to?(:package_name)
|
||||
pkgname = mod.package_name
|
||||
else
|
||||
fail NotImplementedError, 'may not be a module for a Tcl extension'
|
||||
end
|
||||
else
|
||||
pkgname = mod.to_s
|
||||
end
|
||||
|
||||
pkgname = '::' << pkgname unless pkgname =~ /^::/
|
||||
|
||||
tk_call(pkgname + '::pkgconfig', 'get', key)
|
||||
end
|
||||
|
||||
def Tk.tcl_pkgconfig_list
|
||||
# Tk8.5 feature
|
||||
Tk.pkgconfig_list('::tcl')
|
||||
end
|
||||
|
||||
def Tk.tcl_pkgconfig_get(key)
|
||||
# Tk8.5 feature
|
||||
Tk.pkgconfig_get('::tcl', key)
|
||||
end
|
||||
|
||||
def Tk.tk_pkgconfig_list
|
||||
# Tk8.5 feature
|
||||
Tk.pkgconfig_list('::tk')
|
||||
end
|
||||
|
||||
def Tk.tk_pkgconfig_get(key)
|
||||
# Tk8.5 feature
|
||||
Tk.pkgconfig_get('::tk', key)
|
||||
end
|
||||
|
||||
def Tk.bell(nice = false)
|
||||
if nice
|
||||
tk_call_without_enc('bell', '-nice')
|
||||
|
@ -4499,7 +4555,7 @@ end
|
|||
#Tk.freeze
|
||||
|
||||
module Tk
|
||||
RELEASE_DATE = '2005-11-19'.freeze
|
||||
RELEASE_DATE = '2005-11-23'.freeze
|
||||
|
||||
autoload :AUTO_PATH, 'tk/variable'
|
||||
autoload :TCL_PACKAGE_PATH, 'tk/variable'
|
||||
|
|
|
@ -162,6 +162,7 @@ autoload :TkVariable, 'tk/variable'
|
|||
autoload :TkVarAccess, 'tk/variable'
|
||||
|
||||
autoload :TkVirtualEvent, 'tk/virtevent'
|
||||
autoload :TkNamedVirtualEvent,'tk/virtevent'
|
||||
|
||||
autoload :TkWinfo, 'tk/winfo'
|
||||
|
||||
|
|
|
@ -384,6 +384,7 @@ module TkEvent
|
|||
=end
|
||||
ALIAS_TBL = {
|
||||
:button => :num,
|
||||
:data => :detail,
|
||||
:delta => :wheel_delta,
|
||||
:root => :rootwin_id,
|
||||
:rootx => :x_root,
|
||||
|
|
|
@ -103,6 +103,58 @@ class TkText<TkTextWin
|
|||
end
|
||||
alias char chars
|
||||
|
||||
def display_chars(mod)
|
||||
# Tk8.5 feature
|
||||
fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer)
|
||||
if mod < 0
|
||||
TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' display chars')
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' display chars')
|
||||
end
|
||||
end
|
||||
alias display_char display_chars
|
||||
|
||||
def any_chars(mod)
|
||||
# Tk8.5 feature
|
||||
fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer)
|
||||
if mod < 0
|
||||
TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' any chars')
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' any chars')
|
||||
end
|
||||
end
|
||||
alias any_char any_chars
|
||||
|
||||
def indices(mod)
|
||||
# Tk8.5 feature
|
||||
fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer)
|
||||
if mod < 0
|
||||
TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' indices')
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' indices')
|
||||
end
|
||||
end
|
||||
|
||||
def display_indices(mod)
|
||||
# Tk8.5 feature
|
||||
fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer)
|
||||
if mod < 0
|
||||
TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' display indices')
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' display indices')
|
||||
end
|
||||
end
|
||||
|
||||
def any_indices(mod)
|
||||
# Tk8.5 feature
|
||||
fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer)
|
||||
if mod < 0
|
||||
TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' any indices')
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' any indices')
|
||||
end
|
||||
end
|
||||
|
||||
def lines(mod)
|
||||
fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer)
|
||||
if mod < 0
|
||||
|
@ -113,6 +165,28 @@ class TkText<TkTextWin
|
|||
end
|
||||
alias line lines
|
||||
|
||||
def display_lines(mod)
|
||||
# Tk8.5 feature
|
||||
fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer)
|
||||
if mod < 0
|
||||
TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' display_lines')
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' display lines')
|
||||
end
|
||||
end
|
||||
alias display_line display_lines
|
||||
|
||||
def any_lines(mod)
|
||||
# Tk8.5 feature
|
||||
fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer)
|
||||
if mod < 0
|
||||
TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' any_lines')
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' any lines')
|
||||
end
|
||||
end
|
||||
alias any_line any_lines
|
||||
|
||||
def linestart
|
||||
TkText::IndexString.new(String.new(id) << ' linestart')
|
||||
end
|
||||
|
@ -120,12 +194,30 @@ class TkText<TkTextWin
|
|||
TkText::IndexString.new(String.new(id) << ' lineend')
|
||||
end
|
||||
|
||||
def display_linestart
|
||||
# Tk8.5 feature
|
||||
TkText::IndexString.new(String.new(id) << ' display linestart')
|
||||
end
|
||||
def display_lineend
|
||||
# Tk8.5 feature
|
||||
TkText::IndexString.new(String.new(id) << ' display lineend')
|
||||
end
|
||||
|
||||
def wordstart
|
||||
TkText::IndexString.new(String.new(id) << ' wordstart')
|
||||
end
|
||||
def wordend
|
||||
TkText::IndexString.new(String.new(id) << ' wordend')
|
||||
end
|
||||
|
||||
def display_wordstart
|
||||
# Tk8.5 feature
|
||||
TkText::IndexString.new(String.new(id) << ' display wordstart')
|
||||
end
|
||||
def display_wordend
|
||||
# Tk8.5 feature
|
||||
TkText::IndexString.new(String.new(id) << ' display wordend')
|
||||
end
|
||||
end
|
||||
|
||||
class IndexString < String
|
||||
|
|
|
@ -15,6 +15,19 @@ class TkVirtualEvent<TkObject
|
|||
TkCore::INTERP.init_ip_env{ TkVirtualEventTBL.clear }
|
||||
|
||||
class PreDefVirtEvent<self
|
||||
def self.new(event, *sequences)
|
||||
if event =~ /^<(<.*>)>$/
|
||||
event = $1
|
||||
elsif event !~ /^<.*>$/
|
||||
event = '<' + event + '>'
|
||||
end
|
||||
if TkVirtualEvent::TkVirtualEventTBL.has_key?(event)
|
||||
TkVirtualEvent::TkVirtualEventTBL[event]
|
||||
else
|
||||
super(event, *sequences)
|
||||
end
|
||||
end
|
||||
|
||||
def initialize(event, *sequences)
|
||||
@path = @id = event
|
||||
TkVirtualEvent::TkVirtualEventTBL[@id] = self
|
||||
|
@ -89,3 +102,5 @@ class TkVirtualEvent<TkObject
|
|||
}
|
||||
end
|
||||
end
|
||||
|
||||
TkNamedVirtualEvent = TkVirtualEvent::PreDefVirtEvent
|
||||
|
|
Loading…
Add table
Reference in a new issue