зеркало из https://github.com/github/ruby.git
* ext/tk/lib/tk.rb, ext/tk/lib/*: make default widget set
switchable between Tk (standard Tcl/Tk widget set) and Ttk (Tile). Initial default widget set is Tk. Now, toplevel widget classes are removed and defined as aliases. For example, "TkButton" is an alias of the "Tk::Button" class. Those aliases are replaced when switching default widget set. "Tk.default_widget_set=" is the method for switching default widget set. "Tk.default_widget_set = :Ttk" defines Ttk (Tile) widget set as default. It means that "TkButton" denotes "Tk::Tile::Button" class. And then, "TkButton.new" creates a Tk::Tile::Button widget. Of course, you can back to use standard Tk widgets as the default widget set by calling "Tk.default_widget_set = :Tk", whenever you want. Based on thie feature, you can use Ttk widget styling engine on your old Ruby/Tk application without modifying its source, if you don'tuse widget options unsupported on Ttk widgets (At first, call "Tk.default_widget_set = :Ttk", and next load and run your application). This is one step for supporting Tcl/Tk8.5 features. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
4dd9fd71b3
Коммит
ee695fb164
24
ChangeLog
24
ChangeLog
|
@ -1,3 +1,25 @@
|
|||
Thu Feb 28 03:03:32 2008 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
|
||||
|
||||
* ext/tk/lib/tk.rb, ext/tk/lib/*: make default widget set
|
||||
switchable between Tk (standard Tcl/Tk widget set) and
|
||||
Ttk (Tile). Initial default widget set is Tk. Now, toplevel
|
||||
widget classes are removed and defined as aliases.
|
||||
For example, "TkButton" is an alias of the "Tk::Button" class.
|
||||
Those aliases are replaced when switching default widget set.
|
||||
"Tk.default_widget_set=" is the method for switching default
|
||||
widget set. "Tk.default_widget_set = :Ttk" defines Ttk (Tile)
|
||||
widget set as default. It means that "TkButton" denotes
|
||||
"Tk::Tile::Button" class. And then, "TkButton.new" creates
|
||||
a Tk::Tile::Button widget. Of course, you can back to use
|
||||
standard Tk widgets as the default widget set by calling
|
||||
"Tk.default_widget_set = :Tk", whenever you want. Based on
|
||||
thie feature, you can use Ttk widget styling engine on your
|
||||
old Ruby/Tk application without modifying its source, if you
|
||||
don'tuse widget options unsupported on Ttk widgets (At first,
|
||||
call "Tk.default_widget_set = :Ttk", and next load and run
|
||||
your application).
|
||||
This is one step for supporting Tcl/Tk8.5 features.
|
||||
|
||||
Wed Feb 27 22:55:42 2008 NARUSE, Yui <naruse@ruby-lang.org>
|
||||
|
||||
* string.c (rb_str_coderange_scan_restartable): coderange scaning
|
||||
|
@ -5079,7 +5101,7 @@ Fri Dec 21 18:40:54 2007 Koichi Sasada <ko1@atdot.net>
|
|||
|
||||
* bootstraptest/test_io.rb, test_knownbug.rb: move a fixed test.
|
||||
|
||||
Fri Dec 21 17:56:30 2007 <nagai@orca16.orcabay.ddo.jp>
|
||||
Fri Dec 21 17:56:30 2007 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
|
||||
|
||||
* ext/tk/tcltklib.c: provisional support on Ruby-VM.
|
||||
|
||||
|
|
|
@ -935,7 +935,7 @@ module TkComm
|
|||
|
||||
def _bindinfo(what, context=nil)
|
||||
if context
|
||||
tk_call_without_enc(*what+["<#{tk_event_sequence(context)}>"]) .collect {|cmdline|
|
||||
tk_call_without_enc(*what+["<#{tk_event_sequence(context)}>"]).each_line.collect {|cmdline|
|
||||
=begin
|
||||
if cmdline =~ /^rb_out\S* (c(?:_\d+_)?\d+)\s+(.*)$/
|
||||
#[Tk_CMDTBL[$1], $2]
|
||||
|
@ -4102,6 +4102,14 @@ class TkWindow<TkObject
|
|||
include TkWinfo
|
||||
extend TkBindCore
|
||||
|
||||
@@WIDGET_INSPECT_FULL = false
|
||||
def TkWindow._widget_inspect_full_?
|
||||
@@WIDGET_INSPECT_FULL
|
||||
end
|
||||
def TkWindow._widget_inspect_full_=(mode)
|
||||
@@WIDGET_INSPECT_FULL = (mode && true) || false
|
||||
end
|
||||
|
||||
TkCommandNames = [].freeze
|
||||
## ==> If TkCommandNames[0] is a string (not a null string),
|
||||
## assume the string is a Tcl/Tk's create command of the widget class.
|
||||
|
@ -4204,8 +4212,12 @@ class TkWindow<TkObject
|
|||
private :create_self
|
||||
|
||||
def inspect
|
||||
str = super
|
||||
str[0..(str.index(' '))] << '@path=' << @path.inspect << '>'
|
||||
if @@WIDGET_INSPECT_FULL
|
||||
super
|
||||
else
|
||||
str = super
|
||||
str[0..(str.index(' '))] << '@path=' << @path.inspect << '>'
|
||||
end
|
||||
end
|
||||
|
||||
def exist?
|
||||
|
@ -4717,6 +4729,7 @@ class TkWindow<TkObject
|
|||
bindtags(bindtags().unshift(tag))
|
||||
end
|
||||
end
|
||||
TkWidget = TkWindow
|
||||
|
||||
# freeze core modules
|
||||
#TclTkLib.freeze
|
||||
|
|
|
@ -1,21 +1,7 @@
|
|||
#
|
||||
# autoload
|
||||
#
|
||||
major, minor, type, type_name, patchlevel = TclTkLib.get_version
|
||||
|
||||
######################################
|
||||
# depend on version of Tcl/Tk
|
||||
if major > 8 ||
|
||||
(major == 8 && minor > 5) ||
|
||||
(major == 8 && minor == 5 && type >= TclTkLib::RELEASE_TYPE::BETA)
|
||||
# Tcl/Tk 8.5 beta or later
|
||||
autoload :Ttk, 'tkextlib/tile'
|
||||
module Tk
|
||||
autoload :Tile, 'tkextlib/tile'
|
||||
end
|
||||
end
|
||||
|
||||
######################################
|
||||
############################################
|
||||
# geometry manager
|
||||
module Tk
|
||||
autoload :Grid, 'tk/grid'
|
||||
|
@ -38,12 +24,7 @@ autoload :TkPlace, 'tk/place'
|
|||
def TkPlace(*args); TkPlace.configure(*args); end
|
||||
|
||||
|
||||
######################################
|
||||
# Ttk (Tile) support
|
||||
require 'tk/ttk_selector'
|
||||
|
||||
|
||||
######################################
|
||||
############################################
|
||||
# classes on Tk module
|
||||
module Tk
|
||||
autoload :Button, 'tk/button'
|
||||
|
@ -66,12 +47,15 @@ module Tk
|
|||
|
||||
autoload :Menu, 'tk/menu'
|
||||
autoload :MenuClone, 'tk/menu'
|
||||
autoload :CloneMenu, 'tk/menu'
|
||||
autoload :SystemMenu, 'tk/menu'
|
||||
autoload :SysMenu_Help, 'tk/menu'
|
||||
autoload :SysMenu_System, 'tk/menu'
|
||||
autoload :SysMenu_Apple, 'tk/menu'
|
||||
autoload :Menubutton, 'tk/menu'
|
||||
autoload :MenuButton, 'tk/menu'
|
||||
autoload :OptionMenubutton, 'tk/menu'
|
||||
autoload :OptionMenBbutton, 'tk/menu'
|
||||
|
||||
autoload :Message, 'tk/message'
|
||||
|
||||
|
@ -97,7 +81,7 @@ module Tk
|
|||
end
|
||||
|
||||
|
||||
######################################
|
||||
############################################
|
||||
# sub-module of Tk
|
||||
module Tk
|
||||
autoload :Clock, 'tk/clock'
|
||||
|
@ -129,184 +113,287 @@ module Tk
|
|||
|
||||
end
|
||||
|
||||
######################################
|
||||
# toplevel classes/modules
|
||||
autoload_list = {
|
||||
:TkBgError => 'tk/bgerror',
|
||||
|
||||
:TkBindTag => 'tk/bindtag',
|
||||
:TkBindTagAll => 'tk/bindtag',
|
||||
:TkDatabaseClass => 'tk/bindtag',
|
||||
############################################
|
||||
# toplevel classes/modules (fixed)
|
||||
autoload :TkBgError, 'tk/bgerror'
|
||||
|
||||
:TkButton => 'tk/button',
|
||||
autoload :TkBindTag, 'tk/bindtag'
|
||||
autoload :TkBindTagAll, 'tk/bindtag'
|
||||
autoload :TkDatabaseClass, 'tk/bindtag'
|
||||
|
||||
:TkCanvas => 'tk/canvas',
|
||||
autoload :TkConsole, 'tk/console'
|
||||
|
||||
:TkcItem => 'tk/canvas',
|
||||
:TkcArc => 'tk/canvas',
|
||||
:TkcBitmap => 'tk/canvas',
|
||||
:TkcImage => 'tk/canvas',
|
||||
:TkcLine => 'tk/canvas',
|
||||
:TkcOval => 'tk/canvas',
|
||||
:TkcPolygon => 'tk/canvas',
|
||||
:TkcRectangle => 'tk/canvas',
|
||||
:TkcText => 'tk/canvas',
|
||||
:TkcWindow => 'tk/canvas',
|
||||
autoload :TkcItem, 'tk/canvas'
|
||||
autoload :TkcArc, 'tk/canvas'
|
||||
autoload :TkcBitmap, 'tk/canvas'
|
||||
autoload :TkcImage, 'tk/canvas'
|
||||
autoload :TkcLine, 'tk/canvas'
|
||||
autoload :TkcOval, 'tk/canvas'
|
||||
autoload :TkcPolygon, 'tk/canvas'
|
||||
autoload :TkcRectangle, 'tk/canvas'
|
||||
autoload :TkcText, 'tk/canvas'
|
||||
autoload :TkcWindow, 'tk/canvas'
|
||||
|
||||
:TkcTagAccess => 'tk/canvastag',
|
||||
:TkcTag => 'tk/canvastag',
|
||||
:TkcTagString => 'tk/canvastag',
|
||||
:TkcNamedTag => 'tk/canvastag',
|
||||
:TkcTagAll => 'tk/canvastag',
|
||||
:TkcTagCurrent => 'tk/canvastag',
|
||||
:TkcTagGroup => 'tk/canvastag',
|
||||
autoload :TkcTagAccess, 'tk/canvastag'
|
||||
autoload :TkcTag, 'tk/canvastag'
|
||||
autoload :TkcTagString, 'tk/canvastag'
|
||||
autoload :TkcNamedTag, 'tk/canvastag'
|
||||
autoload :TkcTagAll, 'tk/canvastag'
|
||||
autoload :TkcTagCurrent, 'tk/canvastag'
|
||||
autoload :TkcTagGroup, 'tk/canvastag'
|
||||
|
||||
:TkCheckButton => 'tk/checkbutton',
|
||||
:TkCheckbutton => 'tk/checkbutton',
|
||||
autoload :TkClipboard, 'tk/clipboard'
|
||||
|
||||
:TkClipboard => 'tk/clipboard',
|
||||
autoload :TkComposite, 'tk/composite'
|
||||
|
||||
:TkComposite => 'tk/composite',
|
||||
autoload :TkConsole, 'tk/console'
|
||||
|
||||
:TkConsole => 'tk/console',
|
||||
autoload :TkDialog, 'tk/dialog'
|
||||
autoload :TkDialog2, 'tk/dialog'
|
||||
autoload :TkDialogObj, 'tk/dialog'
|
||||
autoload :TkWarning, 'tk/dialog'
|
||||
autoload :TkWarning2, 'tk/dialog'
|
||||
autoload :TkWarningObj, 'tk/dialog'
|
||||
|
||||
:TkDialog => 'tk/dialog',
|
||||
:TkDialog2 => 'tk/dialog',
|
||||
:TkDialogObj => 'tk/dialog',
|
||||
:TkWarning => 'tk/dialog',
|
||||
:TkWarning2 => 'tk/dialog',
|
||||
:TkWarningObj => 'tk/dialog',
|
||||
autoload :TkEvent, 'tk/event'
|
||||
|
||||
:TkEntry => 'tk/entry',
|
||||
autoload :TkFont, 'tk/font'
|
||||
autoload :TkTreatTagFont, 'tk/font'
|
||||
|
||||
:TkEvent => 'tk/event',
|
||||
autoload :TkImage, 'tk/image'
|
||||
autoload :TkBitmapImage, 'tk/image'
|
||||
autoload :TkPhotoImage, 'tk/image'
|
||||
|
||||
:TkFont => 'tk/font',
|
||||
:TkTreatTagFont => 'tk/font',
|
||||
autoload :TkItemConfigMethod, 'tk/itemconfig'
|
||||
|
||||
:TkFrame => 'tk/frame',
|
||||
autoload :TkTreatItemFont, 'tk/itemfont'
|
||||
|
||||
:TkImage => 'tk/image',
|
||||
:TkBitmapImage => 'tk/image',
|
||||
:TkPhotoImage => 'tk/image',
|
||||
autoload :TkKinput, 'tk/kinput'
|
||||
|
||||
:TkItemConfigMethod => 'tk/itemconfig',
|
||||
autoload :TkSystemMenu, 'tk/menu'
|
||||
|
||||
:TkTreatItemFont => 'tk/itemfont',
|
||||
autoload :TkMenubar, 'tk/menubar'
|
||||
|
||||
:TkKinput => 'tk/kinput',
|
||||
autoload :TkMenuSpec, 'tk/menuspec'
|
||||
|
||||
:TkLabel => 'tk/label',
|
||||
autoload :TkManageFocus, 'tk/mngfocus'
|
||||
|
||||
:TkLabelFrame => 'tk/labelframe',
|
||||
:TkLabelframe => 'tk/labelframe',
|
||||
autoload :TkMsgCatalog, 'tk/msgcat'
|
||||
autoload :TkMsgCat, 'tk/msgcat'
|
||||
|
||||
:TkListbox => 'tk/listbox',
|
||||
autoload :TkNamespace, 'tk/namespace'
|
||||
|
||||
:TkMacResource => 'tk/macpkg',
|
||||
autoload :TkOptionDB, 'tk/optiondb'
|
||||
autoload :TkOption, 'tk/optiondb'
|
||||
autoload :TkResourceDB, 'tk/optiondb'
|
||||
|
||||
:TkMenu => 'tk/menu',
|
||||
:TkMenuClone => 'tk/menu',
|
||||
:TkSystemMenu => 'tk/menu',
|
||||
:TkSysMenu_Help => 'tk/menu',
|
||||
:TkSysMenu_System => 'tk/menu',
|
||||
:TkSysMenu_Apple => 'tk/menu',
|
||||
:TkMenubutton => 'tk/menu',
|
||||
:TkOptionMenubutton => 'tk/menu',
|
||||
autoload :TkPackage, 'tk/package'
|
||||
|
||||
:TkMenubar => 'tk/menubar',
|
||||
autoload :TkPalette, 'tk/palette'
|
||||
|
||||
:TkMenuSpec => 'tk/menuspec',
|
||||
autoload :TkScrollbox, 'tk/scrollbox'
|
||||
|
||||
:TkMessage => 'tk/message',
|
||||
autoload :TkSelection, 'tk/selection'
|
||||
|
||||
:TkManageFocus => 'tk/mngfocus',
|
||||
autoload :TkTreatTagFont, 'tk/tagfont'
|
||||
|
||||
:TkMsgCatalog => 'tk/msgcat',
|
||||
:TkMsgCat => 'tk/msgcat',
|
||||
autoload :TkTextImage, 'tk/textimage'
|
||||
autoload :TktImage, 'tk/textimage'
|
||||
|
||||
:TkNamespace => 'tk/namespace',
|
||||
autoload :TkTextMark, 'tk/textmark'
|
||||
autoload :TkTextNamedMark, 'tk/textmark'
|
||||
autoload :TkTextMarkInsert, 'tk/textmark'
|
||||
autoload :TkTextMarkCurrent, 'tk/textmark'
|
||||
autoload :TkTextMarkAnchor, 'tk/textmark'
|
||||
autoload :TktMark, 'tk/textmark'
|
||||
autoload :TktNamedMark, 'tk/textmark'
|
||||
autoload :TktMarkInsert, 'tk/textmark'
|
||||
autoload :TktMarkCurrent, 'tk/textmark'
|
||||
autoload :TktMarkAnchor, 'tk/textmark'
|
||||
|
||||
:TkOptionDB => 'tk/optiondb',
|
||||
:TkOption => 'tk/optiondb',
|
||||
:TkResourceDB => 'tk/optiondb',
|
||||
autoload :TkTextTag, 'tk/texttag'
|
||||
autoload :TkTextNamedTag, 'tk/texttag'
|
||||
autoload :TkTextTagSel, 'tk/texttag'
|
||||
autoload :TktTag, 'tk/texttag'
|
||||
autoload :TktNamedTag, 'tk/texttag'
|
||||
autoload :TktTagSel, 'tk/texttag'
|
||||
|
||||
:TkPackage => 'tk/package',
|
||||
autoload :TkTextWindow, 'tk/textwindow'
|
||||
autoload :TktWindow, 'tk/textwindow'
|
||||
|
||||
:TkPalette => 'tk/palette',
|
||||
autoload :TkAfter, 'tk/timer'
|
||||
autoload :TkTimer, 'tk/timer'
|
||||
autoload :TkRTTimer, 'tk/timer'
|
||||
|
||||
:TkPanedWindow => 'tk/panedwindow',
|
||||
:TkPanedwindow => 'tk/panedwindow',
|
||||
autoload :TkTextWin, 'tk/txtwin_abst'
|
||||
|
||||
:TkRadioButton => 'tk/radiobutton',
|
||||
:TkRadiobutton => 'tk/radiobutton',
|
||||
autoload :TkValidation, 'tk/validation'
|
||||
autoload :TkValidateCommand, 'tk/validation'
|
||||
|
||||
:TkRoot => 'tk/root',
|
||||
autoload :TkVariable, 'tk/variable'
|
||||
autoload :TkVarAccess, 'tk/variable'
|
||||
|
||||
:TkScale => 'tk/scale',
|
||||
autoload :TkVirtualEvent, 'tk/virtevent'
|
||||
autoload :TkNamedVirtualEvent,'tk/virtevent'
|
||||
|
||||
:TkScrollbar => 'tk/scrollbar',
|
||||
:TkXScrollbar => 'tk/scrollbar',
|
||||
:TkYScrollbar => 'tk/scrollbar',
|
||||
autoload :TkWinfo, 'tk/winfo'
|
||||
|
||||
:TkScrollbox => 'tk/scrollbox',
|
||||
autoload :TkXIM, 'tk/xim'
|
||||
|
||||
:TkSelection => 'tk/selection',
|
||||
|
||||
:TkSpinbox => 'tk/spinbox',
|
||||
############################################
|
||||
# toplevel classes/modules (switchable)
|
||||
module Tk
|
||||
@TOPLEVEL_ALIAS_TABLE = {}
|
||||
@TOPLEVEL_ALIAS_TABLE[:Tk] = {
|
||||
:TkButton => 'tk/button',
|
||||
|
||||
:TkTreatTagFont => 'tk/tagfont',
|
||||
:TkCanvas => 'tk/canvas',
|
||||
|
||||
:TkText => 'tk/text',
|
||||
:TkCheckButton => 'tk/checkbutton',
|
||||
:TkCheckbutton => 'tk/checkbutton',
|
||||
|
||||
:TkTextImage => 'tk/textimage',
|
||||
:TktImage => 'tk/textimage',
|
||||
# :TkDialog => 'tk/dialog',
|
||||
# :TkDialog2 => 'tk/dialog',
|
||||
# :TkDialogObj => 'tk/dialog',
|
||||
# :TkWarning => 'tk/dialog',
|
||||
# :TkWarning2 => 'tk/dialog',
|
||||
# :TkWarningObj => 'tk/dialog',
|
||||
|
||||
:TkTextMark => 'tk/textmark',
|
||||
:TkTextNamedMark => 'tk/textmark',
|
||||
:TkTextMarkInsert => 'tk/textmark',
|
||||
:TkTextMarkCurrent => 'tk/textmark',
|
||||
:TkTextMarkAnchor => 'tk/textmark',
|
||||
:TktMark => 'tk/textmark',
|
||||
:TktNamedMark => 'tk/textmark',
|
||||
:TktMarkInsert => 'tk/textmark',
|
||||
:TktMarkCurrent => 'tk/textmark',
|
||||
:TktMarkAnchor => 'tk/textmark',
|
||||
:TkEntry => 'tk/entry',
|
||||
|
||||
:TkTextTag => 'tk/texttag',
|
||||
:TkTextNamedTag => 'tk/texttag',
|
||||
:TkTextTagSel => 'tk/texttag',
|
||||
:TktTag => 'tk/texttag',
|
||||
:TktNamedTag => 'tk/texttag',
|
||||
:TktTagSel => 'tk/texttag',
|
||||
:TkFrame => 'tk/frame',
|
||||
|
||||
:TkTextWindow => 'tk/textwindow',
|
||||
:TktWindow => 'tk/textwindow',
|
||||
:TkLabel => 'tk/label',
|
||||
|
||||
:TkAfter => 'tk/timer',
|
||||
:TkTimer => 'tk/timer',
|
||||
:TkRTTimer => 'tk/timer',
|
||||
:TkLabelFrame => 'tk/labelframe',
|
||||
:TkLabelframe => 'tk/labelframe',
|
||||
|
||||
:TkToplevel => 'tk/toplevel',
|
||||
:TkListbox => 'tk/listbox',
|
||||
|
||||
:TkTextWin => 'tk/txtwin_abst',
|
||||
:TkMacResource => 'tk/macpkg',
|
||||
|
||||
:TkValidation => 'tk/validation',
|
||||
:TkMenu => 'tk/menu',
|
||||
:TkMenuClone => 'tk/menu',
|
||||
:TkCloneMenu => 'tk/menu',
|
||||
# :TkSystemMenu => 'tk/menu',
|
||||
:TkSysMenu_Help => 'tk/menu',
|
||||
:TkSysMenu_System => 'tk/menu',
|
||||
:TkSysMenu_Apple => 'tk/menu',
|
||||
:TkMenubutton => 'tk/menu',
|
||||
:TkMenuButton => 'tk/menu',
|
||||
:TkOptionMenubutton => 'tk/menu',
|
||||
:TkOptionMenuButton => 'tk/menu',
|
||||
|
||||
:TkVariable => 'tk/variable',
|
||||
:TkVarAccess => 'tk/variable',
|
||||
:TkMessage => 'tk/message',
|
||||
|
||||
:TkVirtualEvent => 'tk/virtevent',
|
||||
:TkNamedVirtualEvent => 'tk/virtevent',
|
||||
:TkPanedWindow => 'tk/panedwindow',
|
||||
:TkPanedwindow => 'tk/panedwindow',
|
||||
|
||||
:TkWinfo => 'tk/winfo',
|
||||
:TkRadioButton => 'tk/radiobutton',
|
||||
:TkRadiobutton => 'tk/radiobutton',
|
||||
|
||||
:TkWinDDE => 'tk/winpkg',
|
||||
:TkWinRegistry => 'tk/winpkg',
|
||||
:TkRoot => 'tk/root',
|
||||
|
||||
:TkXIM => 'tk/xim',
|
||||
}
|
||||
autoload_list.each{|mod, lib|
|
||||
#autoload mod, lib unless
|
||||
autoload mod, lib unless (Object.const_defined? mod) && (autoload? mod)
|
||||
}
|
||||
:TkScale => 'tk/scale',
|
||||
|
||||
:TkScrollbar => 'tk/scrollbar',
|
||||
:TkXScrollbar => 'tk/scrollbar',
|
||||
:TkYScrollbar => 'tk/scrollbar',
|
||||
|
||||
:TkSpinbox => 'tk/spinbox',
|
||||
|
||||
:TkText => 'tk/text',
|
||||
|
||||
:TkToplevel => 'tk/toplevel',
|
||||
|
||||
:TkWinDDE => 'tk/winpkg',
|
||||
:TkWinRegistry => 'tk/winpkg',
|
||||
}
|
||||
|
||||
@TOPLEVEL_ALIAS_SETUP_PROC = {}
|
||||
|
||||
@current_default_widget_set = nil
|
||||
end
|
||||
|
||||
############################################
|
||||
|
||||
class << Tk
|
||||
def default_widget_set
|
||||
@current_default_widget_set
|
||||
end
|
||||
|
||||
def default_widget_set=(target)
|
||||
target = target.to_sym
|
||||
return target if target == @current_default_widget_set
|
||||
|
||||
if (cmd = @TOPLEVEL_ALIAS_SETUP_PROC[target])
|
||||
cmd.call(target)
|
||||
end
|
||||
|
||||
_replace_toplevel_aliases(target)
|
||||
end
|
||||
|
||||
def __set_toplevel_aliases__(target, obj, *symbols)
|
||||
@TOPLEVEL_ALIAS_TABLE[target = target.to_sym] ||= {}
|
||||
symbols.each{|sym|
|
||||
@TOPLEVEL_ALIAS_TABLE[target][sym = sym.to_sym] = obj
|
||||
if @current_default_widget_set == target
|
||||
Object.class_eval{remove_const sym} if Object.const_defined?(sym)
|
||||
Object.const_set(sym, obj)
|
||||
end
|
||||
}
|
||||
end
|
||||
|
||||
###################################
|
||||
private
|
||||
def _replace_toplevel_aliases(target)
|
||||
# check already autoloaded
|
||||
if (table = @TOPLEVEL_ALIAS_TABLE[current = @current_default_widget_set])
|
||||
table.each{|sym, file|
|
||||
if !Object.autoload?(sym) && Object.const_defined?(sym) &&
|
||||
@TOPLEVEL_ALIAS_TABLE[current][sym].kind_of?(String)
|
||||
# autoload -> class
|
||||
@TOPLEVEL_ALIAS_TABLE[current][sym] = Object.const_get(sym)
|
||||
end
|
||||
}
|
||||
end
|
||||
|
||||
# setup autoloads
|
||||
@TOPLEVEL_ALIAS_TABLE[target].each{|sym, file|
|
||||
Object.class_eval{remove_const sym} if Object.const_defined?(sym)
|
||||
if file.kind_of?(String)
|
||||
# file => autoload target file
|
||||
Object.autoload(sym, file)
|
||||
else
|
||||
# file => loaded class object
|
||||
Object.const_set(sym, file)
|
||||
end
|
||||
}
|
||||
|
||||
# update current alias
|
||||
@current_default_widget_set = target
|
||||
end
|
||||
end
|
||||
|
||||
############################################
|
||||
# setup default widget set => :Tk
|
||||
Tk.default_widget_set = :Tk
|
||||
|
||||
|
||||
############################################
|
||||
# depend on the version of Tcl/Tk
|
||||
major, minor, type, type_name, patchlevel = TclTkLib.get_version
|
||||
|
||||
############################################
|
||||
# Ttk (Tile) support
|
||||
if major > 8 ||
|
||||
(major == 8 && minor > 5) ||
|
||||
(major == 8 && minor == 5 && type >= TclTkLib::RELEASE_TYPE::BETA)
|
||||
# Tcl/Tk 8.5 beta or later
|
||||
Object.autoload :Ttk, 'tkextlib/tile'
|
||||
Tk.autoload :Tile, 'tkextlib/tile'
|
||||
|
||||
require 'tk/ttk_selector'
|
||||
end
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
require 'tk'
|
||||
require 'tk/label'
|
||||
|
||||
class Tk::Button<TkLabel
|
||||
class Tk::Button<Tk::Label
|
||||
TkCommandNames = ['button'.freeze].freeze
|
||||
WidgetClassName = 'Button'.freeze
|
||||
WidgetClassNames[WidgetClassName] = self
|
||||
|
@ -26,4 +26,5 @@ class Tk::Button<TkLabel
|
|||
end
|
||||
end
|
||||
|
||||
TkButton = Tk::Button unless Object.const_defined? :TkButton
|
||||
#TkButton = Tk::Button unless Object.const_defined? :TkButton
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::Button, :TkButton)
|
||||
|
|
|
@ -572,7 +572,8 @@ class Tk::Canvas<TkWindow
|
|||
end
|
||||
end
|
||||
|
||||
TkCanvas = Tk::Canvas unless Object.const_defined? :TkCanvas
|
||||
#TkCanvas = Tk::Canvas unless Object.const_defined? :TkCanvas
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::Canvas, :TkCanvas)
|
||||
|
||||
|
||||
class TkcItem<TkObject
|
||||
|
@ -660,8 +661,8 @@ class TkcItem<TkObject
|
|||
########################################
|
||||
|
||||
def initialize(parent, *args)
|
||||
#unless parent.kind_of?(TkCanvas)
|
||||
# fail ArgumentError, "expect TkCanvas for 1st argument"
|
||||
#unless parent.kind_of?(Tk::Canvas)
|
||||
# fail ArgumentError, "expect Tk::Canvas for 1st argument"
|
||||
#end
|
||||
@parent = @c = parent
|
||||
@path = parent.path
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
require 'tk'
|
||||
require 'tk/radiobutton'
|
||||
|
||||
class Tk::CheckButton<TkRadioButton
|
||||
class Tk::CheckButton<Tk::RadioButton
|
||||
TkCommandNames = ['checkbutton'.freeze].freeze
|
||||
WidgetClassName = 'Checkbutton'.freeze
|
||||
WidgetClassNames[WidgetClassName] = self
|
||||
|
@ -24,5 +24,7 @@ class Tk::CheckButton<TkRadioButton
|
|||
end
|
||||
|
||||
Tk::Checkbutton = Tk::CheckButton
|
||||
TkCheckButton = Tk::CheckButton unless Object.const_defined? :TkCheckButton
|
||||
TkCheckbutton = Tk::Checkbutton unless Object.const_defined? :TkCheckbutton
|
||||
#TkCheckButton = Tk::CheckButton unless Object.const_defined? :TkCheckButton
|
||||
#TkCheckbutton = Tk::Checkbutton unless Object.const_defined? :TkCheckbutton
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::CheckButton,
|
||||
:TkCheckButton, :TkCheckbutton)
|
||||
|
|
|
@ -34,7 +34,8 @@ module TkComposite
|
|||
|
||||
if klass
|
||||
# WidgetClassName is a known class
|
||||
if klass <= TkFrame || klass < TkComposite
|
||||
#if klass <= TkFrame || klass < TkComposite
|
||||
if klass <= TkFrame || klass < Tk::Frame || klass < TkComposite
|
||||
# klass is valid for the base frame
|
||||
if self.class <= klass
|
||||
# use my classname
|
||||
|
@ -50,7 +51,8 @@ module TkComposite
|
|||
|
||||
else
|
||||
# klass is invalid for the base frame
|
||||
if self.class < TkFrame || self.class.superclass < TkComposite
|
||||
#if self.class < TkFrame || self.class.superclass < TkComposite
|
||||
if self.class < TkFrame || self.class.superclass < Tk::Frame || self.class.superclass < TkComposite
|
||||
# my class name is valid for the base frame -> use my classname
|
||||
base_class_name = self.class.name
|
||||
if base_class_name == ''
|
||||
|
@ -69,7 +71,8 @@ module TkComposite
|
|||
|
||||
else
|
||||
# no valid WidgetClassName
|
||||
if self.class < TkFrame || self.class.superclass < TkComposite
|
||||
#if self.class < TkFrame || self.class.superclass < TkComposite
|
||||
if self.class < TkFrame || self.class.superclass < Tk::Frame || self.class.superclass < TkComposite
|
||||
# my class name is valid for the base frame -> use my classname
|
||||
base_class_name = self.class.name
|
||||
if base_class_name == ''
|
||||
|
@ -108,8 +111,12 @@ module TkComposite
|
|||
end
|
||||
|
||||
if base_class_name
|
||||
# @frame = Tk::Frame.new(parent, :class=>base_class_name)
|
||||
# --> use current TkFrame class
|
||||
@frame = TkFrame.new(parent, :class=>base_class_name)
|
||||
else
|
||||
# @frame = Tk::Frame.new(parent)
|
||||
# --> use current TkFrame class
|
||||
@frame = TkFrame.new(parent)
|
||||
end
|
||||
@path = @epath = @frame.path
|
||||
|
|
|
@ -7,7 +7,7 @@ require 'tk/label'
|
|||
require 'tk/scrollable'
|
||||
require 'tk/validation'
|
||||
|
||||
class Tk::Entry<TkLabel
|
||||
class Tk::Entry<Tk::Label
|
||||
include X_Scrollable
|
||||
include TkValidation
|
||||
|
||||
|
@ -115,4 +115,5 @@ class Tk::Entry<TkLabel
|
|||
end
|
||||
end
|
||||
|
||||
TkEntry = Tk::Entry unless Object.const_defined? :TkEntry
|
||||
#TkEntry = Tk::Entry unless Object.const_defined? :TkEntry
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::Entry, :TkEntry)
|
||||
|
|
|
@ -15,6 +15,8 @@ require 'tk'
|
|||
module TkEvent
|
||||
class Event < TkUtil::CallbackSubst
|
||||
module Grp
|
||||
major, minor, type, type_name, patchlevel = TclTkLib.get_version
|
||||
|
||||
KEY = 0x1
|
||||
BUTTON = 0x2
|
||||
MOTION = 0x4
|
||||
|
@ -39,7 +41,7 @@ module TkEvent
|
|||
RESIZEREQ = 0x200000
|
||||
CIRCREQ = 0x400000
|
||||
|
||||
MWHEEL = 0x10000000
|
||||
MWHEEL = KEY
|
||||
|
||||
ALL = 0xFFFFFFFF
|
||||
|
||||
|
@ -298,31 +300,54 @@ module TkEvent
|
|||
[ ?b, ?n, :num ],
|
||||
[ ?c, ?n, :count ],
|
||||
[ ?d, ?s, :detail ],
|
||||
# ?e
|
||||
[ ?f, ?b, :focus ],
|
||||
# ?g
|
||||
[ ?h, ?n, :height ],
|
||||
[ ?i, ?s, :win_hex ],
|
||||
# ?j
|
||||
[ ?k, ?n, :keycode ],
|
||||
# ?l
|
||||
[ ?m, ?s, :mode ],
|
||||
# ?n
|
||||
[ ?o, ?b, :override ],
|
||||
[ ?p, ?s, :place ],
|
||||
# ?q
|
||||
# ?r
|
||||
[ ?s, ?x, :state ],
|
||||
[ ?t, ?n, :time ],
|
||||
# ?u
|
||||
[ ?v, ?n, :value_mask ],
|
||||
[ ?w, ?n, :width ],
|
||||
[ ?x, ?n, :x ],
|
||||
[ ?y, ?n, :y ],
|
||||
# ?z
|
||||
[ ?A, ?s, :char ],
|
||||
[ ?B, ?n, :borderwidth ],
|
||||
# ?C
|
||||
[ ?D, ?n, :wheel_delta ],
|
||||
[ ?E, ?b, :send_event ],
|
||||
# ?F
|
||||
# ?G
|
||||
# ?H
|
||||
# ?I
|
||||
# ?J
|
||||
[ ?K, ?s, :keysym ],
|
||||
# ?L
|
||||
# ?M
|
||||
[ ?N, ?n, :keysym_num ],
|
||||
# ?O
|
||||
[ ?P, ?s, :property ],
|
||||
# ?Q
|
||||
[ ?R, ?s, :rootwin_id ],
|
||||
[ ?S, ?s, :subwindow ],
|
||||
[ ?T, ?n, :type ],
|
||||
# ?U
|
||||
# ?V
|
||||
[ ?W, ?w, :widget ],
|
||||
[ ?X, ?n, :x_root ],
|
||||
[ ?Y, ?n, :y_root ],
|
||||
# ?Z
|
||||
nil
|
||||
]
|
||||
|
||||
|
|
|
@ -899,13 +899,15 @@ class TkFont
|
|||
if key.include?(';')
|
||||
win, tag, optkey = key.split(';')
|
||||
winobj = tk_tcl2ruby(win)
|
||||
if winobj.kind_of? TkText
|
||||
#if winobj.kind_of? TkText
|
||||
if winobj.kind_of?(TkText) || winobj.kind_of?(Tk::Text)
|
||||
if optkey
|
||||
ret.push([winobj, winobj.tagid2obj(tag), optkey])
|
||||
else
|
||||
ret.push([winobj, winobj.tagid2obj(tag)])
|
||||
end
|
||||
elsif winobj.kind_of? TkCanvas
|
||||
#elsif winobj.kind_of? TkCanvas
|
||||
elsif winobj.kind_of?(TkCanvas) || winobj.kind_of?(Tk::Canvas)
|
||||
if (tagobj = TkcTag.id2obj(winobj, tag)).kind_of? TkcTag
|
||||
if optkey
|
||||
ret.push([winobj, tagobj, optkey])
|
||||
|
@ -925,7 +927,8 @@ class TkFont
|
|||
ret.push([winobj, tag])
|
||||
end
|
||||
end
|
||||
elsif winobj.kind_of? TkMenu
|
||||
#elsif winobj.kind_of? TkMenu
|
||||
elsif winobj.kind_of?(TkMenu) || winobj.kind_of?(Tk::Menu)
|
||||
if optkey
|
||||
ret.push([winobj, tag, optkey])
|
||||
else
|
||||
|
@ -1504,11 +1507,14 @@ module TkFont::CoreMethods
|
|||
optkey = 'font' if optkey == nil || optkey == ''
|
||||
winobj = tk_tcl2ruby(win)
|
||||
# winobj.tagfont_configure(tag, {'font'=>@latinfont})
|
||||
if winobj.kind_of? TkText
|
||||
#if winobj.kind_of? TkText
|
||||
if winobj.kind_of?(TkText) || winobj.kind_of?(Tk::Text)
|
||||
tk_call(win, 'tag', 'configure', tag, "-#{optkey}", @latinfont)
|
||||
elsif winobj.kind_of? TkCanvas
|
||||
#elsif winobj.kind_of? TkCanvas
|
||||
elsif winobj.kind_of?(TkCanvas) || winobj.kind_of?(Tk::Canvas)
|
||||
tk_call(win, 'itemconfigure', tag, "-#{optkey}", @latinfont)
|
||||
elsif winobj.kind_of? TkMenu
|
||||
#elsif winobj.kind_of? TkMenu
|
||||
elsif winobj.kind_of?(TkMenu) || winobj.kind_of?(Tk::Menu)
|
||||
tk_call(win, 'entryconfigure', tag, "-#{optkey}", @latinfont)
|
||||
else
|
||||
raise RuntimeError, "unknown widget type"
|
||||
|
@ -1539,11 +1545,14 @@ module TkFont::CoreMethods
|
|||
optkey = 'kanjifont' unless optkey
|
||||
winobj = tk_tcl2ruby(win)
|
||||
# winobj.tagfont_configure(tag, {'kanjifont'=>@kanjifont})
|
||||
if winobj.kind_of? TkText
|
||||
#if winobj.kind_of? TkText
|
||||
if winobj.kind_of?(TkText) || winobj.kind_of?(Tk::Text)
|
||||
tk_call(win, 'tag', 'configure', tag, "-#{optkey}", @kanjifont)
|
||||
elsif winobj.kind_of? TkCanvas
|
||||
#elsif winobj.kind_of? TkCanvas
|
||||
elsif winobj.kind_of?(TkCanvas) || winobj.kind_of?(Tk::Canvas)
|
||||
tk_call(win, 'itemconfigure', tag, "-#{optkey}", @kanjifont)
|
||||
elsif winobj.kind_of? TkMenu
|
||||
#elsif winobj.kind_of? TkMenu
|
||||
elsif winobj.kind_of?(TkMenu) || winobj.kind_of?(Tk::Menu)
|
||||
tk_call(win, 'entryconfigure', tag, "-#{optkey}", @latinfont)
|
||||
else
|
||||
raise RuntimeError, "unknown widget type"
|
||||
|
|
|
@ -127,4 +127,5 @@ class Tk::Frame<TkWindow
|
|||
end
|
||||
end
|
||||
|
||||
TkFrame = Tk::Frame unless Object.const_defined? :TkFrame
|
||||
#TkFrame = Tk::Frame unless Object.const_defined? :TkFrame
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::Frame, :TkFrame)
|
||||
|
|
|
@ -17,4 +17,5 @@ class Tk::Label<TkWindow
|
|||
#private :create_self
|
||||
end
|
||||
|
||||
TkLabel = Tk::Label unless Object.const_defined? :TkLabel
|
||||
#TkLabel = Tk::Label unless Object.const_defined? :TkLabel
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::Label, :TkLabel)
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
require 'tk'
|
||||
require 'tk/frame'
|
||||
|
||||
class Tk::LabelFrame<TkFrame
|
||||
class Tk::LabelFrame<Tk::Frame
|
||||
TkCommandNames = ['labelframe'.freeze].freeze
|
||||
WidgetClassName = 'Labelframe'.freeze
|
||||
WidgetClassNames[WidgetClassName] = self
|
||||
|
@ -23,6 +23,7 @@ class Tk::LabelFrame<TkFrame
|
|||
private :__val2ruby_optkeys
|
||||
end
|
||||
|
||||
Tk::Labelframe = TkLabelFrame
|
||||
TkLabelFrame = Tk::LabelFrame unless Object.const_defined? :TkLabelFrame
|
||||
TkLabelframe = Tk::Labelframe unless Object.const_defined? :TkLabelframe
|
||||
Tk::Labelframe = Tk::LabelFrame
|
||||
#TkLabelFrame = Tk::LabelFrame unless Object.const_defined? :TkLabelFrame
|
||||
#TkLabelframe = Tk::Labelframe unless Object.const_defined? :TkLabelframe
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::LabelFrame, :TkLabelFrame, :TkLabelframe)
|
||||
|
|
|
@ -278,4 +278,5 @@ class Tk::Listbox<TkTextWin
|
|||
=end
|
||||
end
|
||||
|
||||
TkListbox = Tk::Listbox unless Object.const_defined? :TkListbox
|
||||
#TkListbox = Tk::Listbox unless Object.const_defined? :TkListbox
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::Listbox, :TkListbox)
|
||||
|
|
|
@ -22,7 +22,8 @@ end
|
|||
|
||||
module Tk::MacResource
|
||||
end
|
||||
TkMacResource = Tk::MacResource
|
||||
#TkMacResource = Tk::MacResource
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::MacResource, :TkMacResource)
|
||||
|
||||
module Tk::MacResource
|
||||
extend Tk
|
||||
|
|
|
@ -140,9 +140,9 @@ class Tk::Menu<TkWindow
|
|||
type = keys.delete('type') if keys.has_key?('type')
|
||||
|
||||
if keys.empty?
|
||||
TkMenuClone.new(self, parent, type)
|
||||
Tk::MenuClone.new(self, parent, type)
|
||||
else
|
||||
TkMenuClone.new(self, parent, type, keys)
|
||||
Tk::MenuClone.new(self, parent, type, keys)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -381,10 +381,11 @@ class Tk::Menu<TkWindow
|
|||
=end
|
||||
end
|
||||
|
||||
TkMenu = Tk::Menu unless Object.const_defined? :TkMenu
|
||||
#TkMenu = Tk::Menu unless Object.const_defined? :TkMenu
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::Menu, :TkMenu)
|
||||
|
||||
|
||||
class Tk::MenuClone<TkMenu
|
||||
class Tk::MenuClone<Tk::Menu
|
||||
=begin
|
||||
def initialize(parent, type=None)
|
||||
widgetname = nil
|
||||
|
@ -439,10 +440,11 @@ class Tk::MenuClone<TkMenu
|
|||
end
|
||||
end
|
||||
Tk::CloneMenu = Tk::MenuClone
|
||||
TkMenuClone = Tk::MenuClone unless Object.const_defined? :TkMenuClone
|
||||
TkCloneMenu = Tk::CloneMenu unless Object.const_defined? :TkCloneMenu
|
||||
#TkMenuClone = Tk::MenuClone unless Object.const_defined? :TkMenuClone
|
||||
#TkCloneMenu = Tk::CloneMenu unless Object.const_defined? :TkCloneMenu
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::MenuClone, :TkMenuClone, :TkCloneMenu)
|
||||
|
||||
module TkSystemMenu
|
||||
module Tk::SystemMenu
|
||||
def initialize(parent, keys=nil)
|
||||
if parent.kind_of? Hash
|
||||
keys = _symbolkey2str(parent)
|
||||
|
@ -465,33 +467,37 @@ module TkSystemMenu
|
|||
end
|
||||
end
|
||||
end
|
||||
TkSystemMenu = Tk::SystemMenu
|
||||
|
||||
|
||||
class Tk::SysMenu_Help<TkMenu
|
||||
class Tk::SysMenu_Help<Tk::Menu
|
||||
# for all platform
|
||||
include TkSystemMenu
|
||||
include Tk::SystemMenu
|
||||
SYSMENU_NAME = 'help'
|
||||
end
|
||||
TkSysMenu_Help = Tk::SysMenu_Help unless Object.const_defined? :TkSysMenu_Help
|
||||
#TkSysMenu_Help = Tk::SysMenu_Help unless Object.const_defined? :TkSysMenu_Help
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::SysMenu_Help, :TkSysMenu_Help)
|
||||
|
||||
|
||||
class Tk::SysMenu_System<TkMenu
|
||||
class Tk::SysMenu_System<Tk::Menu
|
||||
# for Windows
|
||||
include TkSystemMenu
|
||||
include Tk::SystemMenu
|
||||
SYSMENU_NAME = 'system'
|
||||
end
|
||||
TkSysMenu_System = Tk::SysMenu_System unless Object.const_defined? :TkSysMenu_System
|
||||
#TkSysMenu_System = Tk::SysMenu_System unless Object.const_defined? :TkSysMenu_System
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::SysMenu_System, :TkSysMenu_System)
|
||||
|
||||
|
||||
class Tk::SysMenu_Apple<TkMenu
|
||||
class Tk::SysMenu_Apple<Tk::Menu
|
||||
# for Machintosh
|
||||
include TkSystemMenu
|
||||
include Tk::SystemMenu
|
||||
SYSMENU_NAME = 'apple'
|
||||
end
|
||||
TkSysMenu_Apple = Tk::SysMenu_Apple unless Object.const_defined? :TkSysMenu_Apple
|
||||
#TkSysMenu_Apple = Tk::SysMenu_Apple unless Object.const_defined? :TkSysMenu_Apple
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::SysMenu_Apple, :TkSysMenu_Apple)
|
||||
|
||||
|
||||
class Tk::Menubutton<TkLabel
|
||||
class Tk::Menubutton<Tk::Label
|
||||
TkCommandNames = ['menubutton'.freeze].freeze
|
||||
WidgetClassName = 'Menubutton'.freeze
|
||||
WidgetClassNames[WidgetClassName] = self
|
||||
|
@ -514,11 +520,12 @@ class Tk::Menubutton<TkLabel
|
|||
|
||||
end
|
||||
Tk::MenuButton = Tk::Menubutton
|
||||
TkMenubutton = Tk::Menubutton unless Object.const_defined? :TkMenubutton
|
||||
TkMenuButton = Tk::MenuButton unless Object.const_defined? :TkMenuButton
|
||||
#TkMenubutton = Tk::Menubutton unless Object.const_defined? :TkMenubutton
|
||||
#TkMenuButton = Tk::MenuButton unless Object.const_defined? :TkMenuButton
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::Menubutton, :TkMenubutton, :TkMenuButton)
|
||||
|
||||
|
||||
class Tk::OptionMenubutton<TkMenubutton
|
||||
class Tk::OptionMenubutton<Tk::Menubutton
|
||||
TkCommandNames = ['tk_optionMenu'.freeze].freeze
|
||||
|
||||
class OptionMenu<TkMenu
|
||||
|
@ -640,5 +647,7 @@ class Tk::OptionMenubutton<TkMenubutton
|
|||
end
|
||||
|
||||
Tk::OptionMenuButton = Tk::OptionMenubutton
|
||||
TkOptionMenubutton = Tk::OptionMenubutton unless Object.const_defined? :TkOptionMenubutton
|
||||
TkOptionMenuButton = Tk::OptionMenuButton unless Object.const_defined? :TkOptionMenuButton
|
||||
#TkOptionMenubutton = Tk::OptionMenubutton unless Object.const_defined? :TkOptionMenubutton
|
||||
#TkOptionMenuButton = Tk::OptionMenuButton unless Object.const_defined? :TkOptionMenuButton
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::OptionMenubutton,
|
||||
:TkOptionMenubutton, :TkOptionMenuButton)
|
||||
|
|
|
@ -89,7 +89,7 @@ require 'tk/frame'
|
|||
require 'tk/composite'
|
||||
require 'tk/menuspec'
|
||||
|
||||
class TkMenubar<TkFrame
|
||||
class TkMenubar<Tk::Frame
|
||||
include TkComposite
|
||||
include TkMenuSpec
|
||||
|
||||
|
|
|
@ -61,8 +61,12 @@ module TkMenuSpec
|
|||
tearoff = orig_opts.delete('tearoff') if orig_opts.key?('tearoff')
|
||||
|
||||
if menu_name
|
||||
#menu = Tk::Menu.new(parent, :widgetname=>menu_name, :tearoff=>tearoff)
|
||||
# --> use current TkMenu class
|
||||
menu = TkMenu.new(parent, :widgetname=>menu_name, :tearoff=>tearoff)
|
||||
else
|
||||
#menu = Tk::Menu.new(parent, :tearoff=>tearoff)
|
||||
# --> use current TkMenu class
|
||||
menu = TkMenu.new(parent, :tearoff=>tearoff)
|
||||
end
|
||||
|
||||
|
@ -150,7 +154,7 @@ module TkMenuSpec
|
|||
|
||||
def _use_menubar?(parent)
|
||||
use_menubar = false
|
||||
if parent.kind_of?(TkRoot) || parent.kind_of?(TkToplevel)
|
||||
if parent.kind_of?(Tk::Root) || parent.kind_of?(Tk::Toplevel)
|
||||
return true
|
||||
else
|
||||
begin
|
||||
|
@ -164,7 +168,11 @@ module TkMenuSpec
|
|||
private :_use_menubar?
|
||||
|
||||
def _create_menu_for_menubar(parent)
|
||||
unless (mbar = parent.menu).kind_of?(TkMenu)
|
||||
#unless (mbar = parent.menu).kind_of?(TkMenu)
|
||||
# --> use current TkMenu class
|
||||
mbar = parent.menu
|
||||
unless parent.menu.kind_of?(Tk::Menu) || parent.menu.kind_of?(TkMenu)
|
||||
#mbar = Tk::Menu.new(parent, :tearoff=>false)
|
||||
mbar = TkMenu.new(parent, :tearoff=>false)
|
||||
parent.menu(mbar)
|
||||
end
|
||||
|
@ -221,6 +229,8 @@ module TkMenuSpec
|
|||
|
||||
else
|
||||
# menubar by menubuttons
|
||||
#mbtn = Tk::Menubutton.new(parent)
|
||||
# --> use current TkMenubutton class
|
||||
mbtn = TkMenubutton.new(parent)
|
||||
|
||||
menu_name = nil
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
require 'tk'
|
||||
require 'tk/label'
|
||||
|
||||
class Tk::Message<TkLabel
|
||||
class Tk::Message<Tk::Label
|
||||
TkCommandNames = ['message'.freeze].freeze
|
||||
WidgetClassName = 'Message'.freeze
|
||||
WidgetClassNames[WidgetClassName] = self
|
||||
|
@ -18,4 +18,5 @@ class Tk::Message<TkLabel
|
|||
private :create_self
|
||||
end
|
||||
|
||||
TkMessage = Tk::Message unless Object.const_defined? :TkMessage
|
||||
#TkMessage = Tk::Message unless Object.const_defined? :TkMessage
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::Message, :TkMessage)
|
||||
|
|
|
@ -362,7 +362,7 @@ module TkOptionDB
|
|||
|
||||
def new_proc_class_random(klass, func, safe = 4, add = false, &b)
|
||||
eval_under_random_base(){
|
||||
TkOption.new_proc_class(klass, func, safe, add, self, &b)
|
||||
TkOptionDB.new_proc_class(klass, func, safe, add, self, &b)
|
||||
}
|
||||
end
|
||||
module_function :new_proc_class_random
|
||||
|
|
|
@ -231,5 +231,7 @@ class Tk::PanedWindow<TkWindow
|
|||
end
|
||||
|
||||
Tk::Panedwindow = Tk::PanedWindow
|
||||
TkPanedWindow = Tk::PanedWindow unless Object.const_defined? :TkPanedWindow
|
||||
TkPanedwindow = Tk::Panedwindow unless Object.const_defined? :TkPanedwindow
|
||||
#TkPanedWindow = Tk::PanedWindow unless Object.const_defined? :TkPanedWindow
|
||||
#TkPanedwindow = Tk::Panedwindow unless Object.const_defined? :TkPanedwindow
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::PanedWindow,
|
||||
:TkPanedWindow, :TkPanedwindow)
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
require 'tk'
|
||||
require 'tk/button'
|
||||
|
||||
class Tk::RadioButton<TkButton
|
||||
class Tk::RadioButton<Tk::Button
|
||||
TkCommandNames = ['radiobutton'.freeze].freeze
|
||||
WidgetClassName = 'Radiobutton'.freeze
|
||||
WidgetClassNames[WidgetClassName] = self
|
||||
|
@ -65,5 +65,7 @@ class Tk::RadioButton<TkButton
|
|||
end
|
||||
|
||||
Tk::Radiobutton = Tk::RadioButton
|
||||
TkRadioButton = Tk::RadioButton unless Object.const_defined? :TkRadioButton
|
||||
TkRadiobutton = Tk::Radiobutton unless Object.const_defined? :TkRadiobutton
|
||||
#TkRadioButton = Tk::RadioButton unless Object.const_defined? :TkRadioButton
|
||||
#TkRadiobutton = Tk::Radiobutton unless Object.const_defined? :TkRadiobutton
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::RadioButton,
|
||||
:TkRadioButton, :TkRadiobutton)
|
||||
|
|
|
@ -14,28 +14,7 @@ class Tk::Root<TkWindow
|
|||
end
|
||||
private :__methodcall_optkeys
|
||||
|
||||
=begin
|
||||
ROOT = []
|
||||
def TkRoot.new(keys=nil)
|
||||
if ROOT[0]
|
||||
Tk_WINDOWS["."] = ROOT[0]
|
||||
return ROOT[0]
|
||||
end
|
||||
new = super(:without_creating=>true, :widgetname=>'.')
|
||||
if keys # wm commands
|
||||
keys.each{|k,v|
|
||||
if v.kind_of? Array
|
||||
new.send(k,*v)
|
||||
else
|
||||
new.send(k,v)
|
||||
end
|
||||
}
|
||||
end
|
||||
ROOT[0] = new
|
||||
Tk_WINDOWS["."] = new
|
||||
end
|
||||
=end
|
||||
def TkRoot.new(keys=nil, &b)
|
||||
def Root.new(keys=nil, &b)
|
||||
unless TkCore::INTERP.tk_windows['.']
|
||||
TkCore::INTERP.tk_windows['.'] =
|
||||
super(:without_creating=>true, :widgetname=>'.'){}
|
||||
|
@ -102,9 +81,10 @@ class Tk::Root<TkWindow
|
|||
self.menu
|
||||
end
|
||||
|
||||
def TkRoot.destroy
|
||||
def Root.destroy
|
||||
TkCore::INTERP._invoke('destroy', '.')
|
||||
end
|
||||
end
|
||||
|
||||
TkRoot = Tk::Root unless Object.const_defined? :TkRoot
|
||||
#TkRoot = Tk::Root unless Object.const_defined? :TkRoot
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::Root, :TkRoot)
|
||||
|
|
|
@ -85,4 +85,5 @@ class Tk::Scale<TkWindow
|
|||
end
|
||||
end
|
||||
|
||||
TkScale = Tk::Scale unless Object.const_defined? :TkScale
|
||||
#TkScale = Tk::Scale unless Object.const_defined? :TkScale
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::Scale, :TkScale)
|
||||
|
|
|
@ -105,10 +105,11 @@ class Tk::Scrollbar<TkWindow
|
|||
end
|
||||
end
|
||||
|
||||
TkScrollbar = Tk::Scrollbar unless Object.const_defined? :TkScrollbar
|
||||
#TkScrollbar = Tk::Scrollbar unless Object.const_defined? :TkScrollbar
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::Scrollbar, :TkScrollbar)
|
||||
|
||||
|
||||
class Tk::XScrollbar<TkScrollbar
|
||||
class Tk::XScrollbar<Tk::Scrollbar
|
||||
def create_self(keys)
|
||||
keys = {} unless keys
|
||||
keys['orient'] = 'horizontal'
|
||||
|
@ -117,10 +118,11 @@ class Tk::XScrollbar<TkScrollbar
|
|||
private :create_self
|
||||
end
|
||||
|
||||
TkXScrollbar = Tk::XScrollbar unless Object.const_defined? :TkXScrollbar
|
||||
#TkXScrollbar = Tk::XScrollbar unless Object.const_defined? :TkXScrollbar
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::XScrollbar, :TkXScrollbar)
|
||||
|
||||
|
||||
class Tk::YScrollbar<TkScrollbar
|
||||
class Tk::YScrollbar<Tk::Scrollbar
|
||||
def create_self(keys)
|
||||
keys = {} unless keys
|
||||
keys['orient'] = 'vertical'
|
||||
|
@ -129,4 +131,5 @@ class Tk::YScrollbar<TkScrollbar
|
|||
private :create_self
|
||||
end
|
||||
|
||||
TkYScrollbar = Tk::YScrollbar unless Object.const_defined? :TkYScrollbar
|
||||
#TkYScrollbar = Tk::YScrollbar unless Object.const_defined? :TkYScrollbar
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::YScrollbar, :TkYScrollbar)
|
||||
|
|
|
@ -6,10 +6,14 @@
|
|||
require 'tk'
|
||||
require 'tk/listbox'
|
||||
|
||||
class TkScrollbox<TkListbox
|
||||
class TkScrollbox<Tk::Listbox
|
||||
include TkComposite
|
||||
def initialize_composite(keys=nil)
|
||||
#list = Tk::Listbox.new(@frame)
|
||||
# -> use current TkListbox class
|
||||
list = TkListbox.new(@frame)
|
||||
#scroll = Tk::Scrollbar.new(@frame)
|
||||
# -> use current TkScrollbar class
|
||||
scroll = TkScrollbar.new(@frame)
|
||||
@path = list.path
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
require 'tk'
|
||||
require 'tk/entry'
|
||||
|
||||
class Tk::Spinbox<TkEntry
|
||||
class Tk::Spinbox<Tk::Entry
|
||||
TkCommandNames = ['spinbox'.freeze].freeze
|
||||
WidgetClassName = 'Spinbox'.freeze
|
||||
WidgetClassNames[WidgetClassName] = self
|
||||
|
@ -97,4 +97,5 @@ class Tk::Spinbox<TkEntry
|
|||
end
|
||||
end
|
||||
|
||||
TkSpinbox = Tk::Spinbox unless Object.const_defined? :TkSpinbox
|
||||
#TkSpinbox = Tk::Spinbox unless Object.const_defined? :TkSpinbox
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::Spinbox, :TkSpinbox)
|
||||
|
|
|
@ -73,9 +73,9 @@ class Tk::Text<TkTextWin
|
|||
|
||||
mod = mod.to_s
|
||||
if mod =~ /^\s*[+-]?\d/
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod)
|
||||
Tk::Text::IndexString.new(String.new(id) << ' + ' << mod)
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' ' << mod)
|
||||
Tk::Text::IndexString.new(String.new(id) << ' ' << mod)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -84,20 +84,20 @@ class Tk::Text<TkTextWin
|
|||
|
||||
mod = mod.to_s
|
||||
if mod =~ /^\s*[+-]?\d/
|
||||
TkText::IndexString.new(String.new(id) << ' - ' << mod)
|
||||
Tk::Text::IndexString.new(String.new(id) << ' - ' << mod)
|
||||
elsif mod =~ /^\s*[-]\s+(\d.*)$/
|
||||
TkText::IndexString.new(String.new(id) << ' - -' << $1)
|
||||
Tk::Text::IndexString.new(String.new(id) << ' - -' << $1)
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' ' << mod)
|
||||
Tk::Text::IndexString.new(String.new(id) << ' ' << mod)
|
||||
end
|
||||
end
|
||||
|
||||
def chars(mod)
|
||||
fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer)
|
||||
if mod < 0
|
||||
TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' chars')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' chars')
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' chars')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' chars')
|
||||
end
|
||||
end
|
||||
alias char chars
|
||||
|
@ -106,9 +106,9 @@ class Tk::Text<TkTextWin
|
|||
# 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')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' display chars')
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' display chars')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' display chars')
|
||||
end
|
||||
end
|
||||
alias display_char display_chars
|
||||
|
@ -117,9 +117,9 @@ class Tk::Text<TkTextWin
|
|||
# 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')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' any chars')
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' any chars')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' any chars')
|
||||
end
|
||||
end
|
||||
alias any_char any_chars
|
||||
|
@ -128,9 +128,9 @@ class Tk::Text<TkTextWin
|
|||
# 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')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' indices')
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' indices')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' indices')
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -138,9 +138,9 @@ class Tk::Text<TkTextWin
|
|||
# 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')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' display indices')
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' display indices')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' display indices')
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -148,18 +148,18 @@ class Tk::Text<TkTextWin
|
|||
# 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')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' any indices')
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' any indices')
|
||||
Tk::Text::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
|
||||
TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' lines')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' lines')
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' lines')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' lines')
|
||||
end
|
||||
end
|
||||
alias line lines
|
||||
|
@ -168,9 +168,9 @@ class Tk::Text<TkTextWin
|
|||
# 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')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' display_lines')
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' display lines')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' display lines')
|
||||
end
|
||||
end
|
||||
alias display_line display_lines
|
||||
|
@ -179,43 +179,43 @@ class Tk::Text<TkTextWin
|
|||
# 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')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' any_lines')
|
||||
else
|
||||
TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' any lines')
|
||||
Tk::Text::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')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' linestart')
|
||||
end
|
||||
def lineend
|
||||
TkText::IndexString.new(String.new(id) << ' lineend')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' lineend')
|
||||
end
|
||||
|
||||
def display_linestart
|
||||
# Tk8.5 feature
|
||||
TkText::IndexString.new(String.new(id) << ' display linestart')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' display linestart')
|
||||
end
|
||||
def display_lineend
|
||||
# Tk8.5 feature
|
||||
TkText::IndexString.new(String.new(id) << ' display lineend')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' display lineend')
|
||||
end
|
||||
|
||||
def wordstart
|
||||
TkText::IndexString.new(String.new(id) << ' wordstart')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' wordstart')
|
||||
end
|
||||
def wordend
|
||||
TkText::IndexString.new(String.new(id) << ' wordend')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' wordend')
|
||||
end
|
||||
|
||||
def display_wordstart
|
||||
# Tk8.5 feature
|
||||
TkText::IndexString.new(String.new(id) << ' display wordstart')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' display wordstart')
|
||||
end
|
||||
def display_wordend
|
||||
# Tk8.5 feature
|
||||
TkText::IndexString.new(String.new(id) << ' display wordend')
|
||||
Tk::Text::IndexString.new(String.new(id) << ' display wordend')
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -284,16 +284,16 @@ class Tk::Text<TkTextWin
|
|||
private :__strval_optkeys
|
||||
|
||||
def self.at(x, y)
|
||||
TkText::IndexString.at(x, y)
|
||||
Tk::Text::IndexString.at(x, y)
|
||||
end
|
||||
|
||||
def at(x, y)
|
||||
TkText::IndexString.at(x, y)
|
||||
Tk::Text::IndexString.at(x, y)
|
||||
end
|
||||
|
||||
def index(idx)
|
||||
TkText::IndexString.new(tk_send_without_enc('index',
|
||||
_get_eval_enc_str(idx)))
|
||||
Tk::Text::IndexString.new(tk_send_without_enc('index',
|
||||
_get_eval_enc_str(idx)))
|
||||
end
|
||||
|
||||
def get_displaychars(*index)
|
||||
|
@ -967,7 +967,7 @@ class Tk::Text<TkTextWin
|
|||
false, true)
|
||||
r = []
|
||||
while key=l.shift
|
||||
r.push [TkText::IndexString.new(key), TkText::IndexString.new(l.shift)]
|
||||
r.push [Tk::Text::IndexString.new(key), Tk::Text::IndexString.new(l.shift)]
|
||||
end
|
||||
r
|
||||
end
|
||||
|
@ -977,7 +977,7 @@ class Tk::Text<TkTextWin
|
|||
_get_eval_enc_str(tag),
|
||||
_get_eval_enc_str(first),
|
||||
_get_eval_enc_str(last))).collect{|idx|
|
||||
TkText::IndexString.new(idx)
|
||||
Tk::Text::IndexString.new(idx)
|
||||
}
|
||||
end
|
||||
|
||||
|
@ -986,7 +986,7 @@ class Tk::Text<TkTextWin
|
|||
_get_eval_enc_str(tag),
|
||||
_get_eval_enc_str(first),
|
||||
_get_eval_enc_str(last))).collect{|idx|
|
||||
TkText::IndexString.new(idx)
|
||||
Tk::Text::IndexString.new(idx)
|
||||
}
|
||||
end
|
||||
|
||||
|
@ -1236,7 +1236,7 @@ class Tk::Text<TkTextWin
|
|||
if ret == ""
|
||||
nil
|
||||
else
|
||||
TkText::IndexString.new(ret)
|
||||
Tk::Text::IndexString.new(ret)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1271,7 +1271,7 @@ class Tk::Text<TkTextWin
|
|||
if ret == ""
|
||||
nil
|
||||
else
|
||||
TkText::IndexString.new(ret)
|
||||
Tk::Text::IndexString.new(ret)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1460,10 +1460,10 @@ class Tk::Text<TkTextWin
|
|||
# retrieve index
|
||||
idx = str.index(/ /, i)
|
||||
if idx
|
||||
result.push(TkText::IndexString.new(str[i..(idx-1)]))
|
||||
result.push(Tk::Text::IndexString.new(str[i..(idx-1)]))
|
||||
i = idx + 1
|
||||
else
|
||||
result.push(TkText::IndexString.new(str[i..-1]))
|
||||
result.push(Tk::Text::IndexString.new(str[i..-1]))
|
||||
break
|
||||
end
|
||||
end
|
||||
|
@ -1531,15 +1531,16 @@ class Tk::Text<TkTextWin
|
|||
end
|
||||
end
|
||||
|
||||
TkText = Tk::Text unless Object.const_defined? :TkText
|
||||
#TkText = Tk::Text unless Object.const_defined? :TkText
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::Text, :TkText)
|
||||
|
||||
|
||||
#######################################
|
||||
|
||||
class TkText::Peer < TkText
|
||||
class Tk::Text::Peer < Tk::Text
|
||||
# Tk8.5 feature
|
||||
def initialize(text, parent=nil, keys={})
|
||||
unless text.kind_of?(TkText)
|
||||
unless text.kind_of?(Tk::Text)
|
||||
fail ArgumentError, "TkText is expected for 1st argument"
|
||||
end
|
||||
@src_text = text
|
||||
|
|
|
@ -5,11 +5,11 @@ require 'tk'
|
|||
require 'tk/text'
|
||||
|
||||
class TkTextImage<TkObject
|
||||
include TkText::IndexModMethods
|
||||
include Tk::Text::IndexModMethods
|
||||
|
||||
def initialize(parent, index, keys)
|
||||
#unless parent.kind_of?(TkText)
|
||||
# fail ArgumentError, "expect TkText for 1st argument"
|
||||
#unless parent.kind_of?(Tk::Text)
|
||||
# fail ArgumentError, "expect Tk::Text for 1st argument"
|
||||
#end
|
||||
@t = parent
|
||||
if index == 'end' || index == :end
|
||||
|
@ -34,7 +34,7 @@ class TkTextImage<TkObject
|
|||
end
|
||||
|
||||
def id
|
||||
TkText::IndexString.new(@id)
|
||||
Tk::Text::IndexString.new(@id)
|
||||
end
|
||||
def mark
|
||||
@path
|
||||
|
|
|
@ -5,7 +5,7 @@ require 'tk'
|
|||
require 'tk/text'
|
||||
|
||||
class TkTextMark<TkObject
|
||||
include TkText::IndexModMethods
|
||||
include Tk::Text::IndexModMethods
|
||||
|
||||
TMarkID_TBL = TkCore::INTERP.create_table
|
||||
Tk_TextMark_ID = ['mark'.freeze, '00000'.taint].freeze
|
||||
|
@ -19,8 +19,8 @@ class TkTextMark<TkObject
|
|||
end
|
||||
|
||||
def initialize(parent, index)
|
||||
#unless parent.kind_of?(TkText)
|
||||
# fail ArgumentError, "expect TkText for 1st argument"
|
||||
#unless parent.kind_of?(Tk::Text)
|
||||
# fail ArgumentError, "expect Tk::Text for 1st argument"
|
||||
#end
|
||||
@parent = @t = parent
|
||||
@tpath = parent.path
|
||||
|
@ -36,7 +36,7 @@ class TkTextMark<TkObject
|
|||
end
|
||||
|
||||
def id
|
||||
TkText::IndexString.new(@id)
|
||||
Tk::Text::IndexString.new(@id)
|
||||
end
|
||||
|
||||
def exist?
|
||||
|
@ -49,15 +49,15 @@ class TkTextMark<TkObject
|
|||
end
|
||||
|
||||
=begin
|
||||
# move to TkText::IndexModMethods module
|
||||
# move to Tk::Text::IndexModMethods module
|
||||
def +(mod)
|
||||
return chars(mod) if mod.kind_of?(Numeric)
|
||||
|
||||
mod = mod.to_s
|
||||
if mod =~ /^\s*[+-]?\d/
|
||||
TkText::IndexString.new(@id + ' + ' + mod)
|
||||
Tk::Text::IndexString.new(@id + ' + ' + mod)
|
||||
else
|
||||
TkText::IndexString.new(@id + ' ' + mod)
|
||||
Tk::Text::IndexString.new(@id + ' ' + mod)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -66,11 +66,11 @@ class TkTextMark<TkObject
|
|||
|
||||
mod = mod.to_s
|
||||
if mod =~ /^\s*[+-]?\d/
|
||||
TkText::IndexString.new(@id + ' - ' + mod)
|
||||
Tk::Text::IndexString.new(@id + ' - ' + mod)
|
||||
elsif mod =~ /^\s*[-]\s+(\d.*)$/
|
||||
TkText::IndexString.new(@id + ' - -' + $1)
|
||||
Tk::Text::IndexString.new(@id + ' - -' + $1)
|
||||
else
|
||||
TkText::IndexString.new(@id + ' ' + mod)
|
||||
Tk::Text::IndexString.new(@id + ' ' + mod)
|
||||
end
|
||||
end
|
||||
=end
|
||||
|
@ -133,8 +133,8 @@ class TkTextNamedMark<TkTextMark
|
|||
end
|
||||
|
||||
def initialize(parent, name, index=nil)
|
||||
#unless parent.kind_of?(TkText)
|
||||
# fail ArgumentError, "expect TkText for 1st argument"
|
||||
#unless parent.kind_of?(Tk::Text)
|
||||
# fail ArgumentError, "expect Tk::Text for 1st argument"
|
||||
#end
|
||||
@parent = @t = parent
|
||||
@tpath = parent.path
|
||||
|
|
|
@ -7,7 +7,7 @@ require 'tk/tagfont'
|
|||
|
||||
class TkTextTag<TkObject
|
||||
include TkTreatTagFont
|
||||
include TkText::IndexModMethods
|
||||
include Tk::Text::IndexModMethods
|
||||
|
||||
TTagID_TBL = TkCore::INTERP.create_table
|
||||
Tk_TextTag_ID = ['tag'.freeze, '00000'.taint].freeze
|
||||
|
@ -47,7 +47,7 @@ class TkTextTag<TkObject
|
|||
end
|
||||
|
||||
def id
|
||||
TkText::IndexString.new(@id)
|
||||
Tk::Text::IndexString.new(@id)
|
||||
end
|
||||
|
||||
def exist?
|
||||
|
@ -60,11 +60,11 @@ class TkTextTag<TkObject
|
|||
end
|
||||
|
||||
def first
|
||||
TkText::IndexString.new(@id + '.first')
|
||||
Tk::Text::IndexString.new(@id + '.first')
|
||||
end
|
||||
|
||||
def last
|
||||
TkText::IndexString.new(@id + '.last')
|
||||
Tk::Text::IndexString.new(@id + '.last')
|
||||
end
|
||||
|
||||
def add(*indices)
|
||||
|
@ -83,7 +83,7 @@ class TkTextTag<TkObject
|
|||
l = tk_split_simplelist(tk_call_without_enc(@t.path, 'tag', 'ranges', @id))
|
||||
r = []
|
||||
while key=l.shift
|
||||
r.push [TkText::IndexString.new(key), TkText::IndexString.new(l.shift)]
|
||||
r.push [Tk::Text::IndexString.new(key), Tk::Text::IndexString.new(l.shift)]
|
||||
end
|
||||
r
|
||||
end
|
||||
|
@ -92,7 +92,7 @@ class TkTextTag<TkObject
|
|||
simplelist(tk_call_without_enc(@t.path, 'tag', 'nextrange', @id,
|
||||
_get_eval_enc_str(first),
|
||||
_get_eval_enc_str(last))).collect{|idx|
|
||||
TkText::IndexString.new(idx)
|
||||
Tk::Text::IndexString.new(idx)
|
||||
}
|
||||
end
|
||||
|
||||
|
@ -100,7 +100,7 @@ class TkTextTag<TkObject
|
|||
simplelist(tk_call_without_enc(@t.path, 'tag', 'prevrange', @id,
|
||||
_get_eval_enc_str(first),
|
||||
_get_eval_enc_str(last))).collect{|idx|
|
||||
TkText::IndexString.new(idx)
|
||||
Tk::Text::IndexString.new(idx)
|
||||
}
|
||||
end
|
||||
|
||||
|
@ -248,8 +248,8 @@ class TkTextNamedTag<TkTextTag
|
|||
end
|
||||
|
||||
def initialize(parent, name, *args)
|
||||
#unless parent.kind_of?(TkText)
|
||||
# fail ArgumentError, "expect TkText for 1st argument"
|
||||
#unless parent.kind_of?(Tk::Text)
|
||||
# fail ArgumentError, "expect Tk::Text for 1st argument"
|
||||
#end
|
||||
@parent = @t = parent
|
||||
@tpath = parent.path
|
||||
|
|
|
@ -5,11 +5,11 @@ require 'tk'
|
|||
require 'tk/text'
|
||||
|
||||
class TkTextWindow<TkObject
|
||||
include TkText::IndexModMethods
|
||||
include Tk::Text::IndexModMethods
|
||||
|
||||
def initialize(parent, index, keys = {})
|
||||
#unless parent.kind_of?(TkText)
|
||||
# fail ArgumentError, "expect TkText for 1st argument"
|
||||
#unless parent.kind_of?(Tk::Text)
|
||||
# fail ArgumentError, "expect Tk::Text for 1st argument"
|
||||
#end
|
||||
@t = parent
|
||||
if index == 'end' || index == :end
|
||||
|
@ -55,7 +55,7 @@ class TkTextWindow<TkObject
|
|||
end
|
||||
|
||||
def id
|
||||
TkText::IndexString.new(_epath(@id))
|
||||
Tk::Text::IndexString.new(_epath(@id))
|
||||
end
|
||||
def mark
|
||||
@path
|
||||
|
|
|
@ -258,4 +258,5 @@ class Tk::Toplevel<TkWindow
|
|||
end
|
||||
end
|
||||
|
||||
TkToplevel = Tk::Toplevel unless Object.const_defined? :TkToplevel
|
||||
#TkToplevel = Tk::Toplevel unless Object.const_defined? :TkToplevel
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::Toplevel, :TkToplevel)
|
||||
|
|
|
@ -1,55 +1,67 @@
|
|||
#
|
||||
# ttk_selector
|
||||
#
|
||||
module Ttk_Selector
|
||||
@TTK_CLASS_NAMES = {}
|
||||
######################################
|
||||
# toplevel classes/modules
|
||||
module Tk
|
||||
@TOPLEVEL_ALIAS_TABLE[:Ttk] = {
|
||||
:TkButton => 'tkextlib/tile/tbutton',
|
||||
|
||||
def self.use_ttk_as_default(mode = true)
|
||||
if mode # Use Ttk widgets
|
||||
@TTK_CLASS_NAMES.each{|name, status|
|
||||
eval("::Tk#{name} = ::Tk::#{(status)? 'Tile::': '::'}#{name}",
|
||||
TOPLEVEL_BINDING)
|
||||
}
|
||||
else # Use standard Tk widagets
|
||||
@TTK_CLASS_NAMES.each{|name, status|
|
||||
eval("::Tk#{name} = ::Tk::#{name}", TOPLEVEL_BINDING)
|
||||
}
|
||||
:TkCheckbutton => 'tkextlib/tile/tcheckbutton',
|
||||
:TkCheckButton => 'tkextlib/tile/tcheckbutton',
|
||||
|
||||
# :TkDialog => 'tkextlib/tile/dialog',
|
||||
|
||||
:TkEntry => 'tkextlib/tile/tentry',
|
||||
|
||||
:TkCombobox => 'tkextlib/tile/tcombobox',
|
||||
|
||||
:TkFrame => 'tkextlib/tile/tframe',
|
||||
|
||||
:TkLabel => 'tkextlib/tile/tlabel',
|
||||
|
||||
:TkLabelframe => 'tkextlib/tile/tlabelframe',
|
||||
:TkLabelFrame => 'tkextlib/tile/tlabelframe',
|
||||
|
||||
:TkMenubutton => 'tkextlib/tile/tmenubutton',
|
||||
:TkMenuButton => 'tkextlib/tile/tmenubutton',
|
||||
|
||||
:TkNotebook => 'tkextlib/tile/tnotebook',
|
||||
|
||||
# :TkPaned => 'tkextlib/tile/tpaned',
|
||||
:TkPanedwindow => 'tkextlib/tile/tpaned',
|
||||
:TkPanedWindow => 'tkextlib/tile/tpaned',
|
||||
|
||||
:TkProgressbar => 'tkextlib/tile/tprogressbar',
|
||||
|
||||
:TkRadiobutton => 'tkextlib/tile/tradiobutton',
|
||||
:TkRadioButton => 'tkextlib/tile/tradiobutton',
|
||||
|
||||
:TkScale => 'tkextlib/tile/tscale',
|
||||
# :TkProgress => 'tkextlib/tile/tscale',
|
||||
|
||||
:TkScrollbar => 'tkextlib/tile/tscrollbar',
|
||||
:TkXScrollbar => 'tkextlib/tile/tscrollbar',
|
||||
:TkYScrollbar => 'tkextlib/tile/tscrollbar',
|
||||
|
||||
:TkSeparator => 'tkextlib/tile/tseparator',
|
||||
|
||||
:TkSizeGrip => 'tkextlib/tile/sizegrip',
|
||||
:TkSizegrip => 'tkextlib/tile/sizegrip',
|
||||
|
||||
# :TkSquare => 'tkextlib/tile/tsquare',
|
||||
|
||||
:TkTreeview => 'tkextlib/tile/treeview',
|
||||
}
|
||||
@TOPLEVEL_ALIAS_TABLE[:Tile] = @TOPLEVEL_ALIAS_TABLE[:Ttk]
|
||||
|
||||
################################################
|
||||
|
||||
@TOPLEVEL_ALIAS_SETUP_PROC[:Tile] =
|
||||
@TOPLEVEL_ALIAS_SETUP_PROC[:Ttk] = proc{|mod|
|
||||
unless Tk.autoload?(:Tile) || Tk.const_defined?(:Tile)
|
||||
Object.autoload :Ttk, 'tkextlib/tile'
|
||||
Tk.autoload :Tile, 'tkextlib/tile'
|
||||
end
|
||||
end
|
||||
|
||||
def self.add(name)
|
||||
@TTK_CLASS_NAMES[name] = true
|
||||
end
|
||||
|
||||
def self.remove(name)
|
||||
@TTK_CLASS_NAMES[name] = false
|
||||
end
|
||||
}
|
||||
end
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
Ttk_Selector.add('Button')
|
||||
Ttk_Selector.add('Checkbutton')
|
||||
Ttk_Selector.add('Entry')
|
||||
##(ttk only) Ttk_Selector.add('Combobox')
|
||||
##(ttk only) Ttk_Selector.add('Dialog')
|
||||
Ttk_Selector.add('Frame')
|
||||
Ttk_Selector.add('Label')
|
||||
Ttk_Selector.add('Labelframe')
|
||||
##(std only) Ttk_Selector.add('Listbox')
|
||||
Ttk_Selector.add('Menubutton')
|
||||
##(ttk only) Ttk_Selector.add('Notebook')
|
||||
Ttk_Selector.add('Panedwindow')
|
||||
##(ttk only) Ttk_Selector.add('Progressbar')
|
||||
Ttk_Selector.add('Radiobutton')
|
||||
Ttk_Selector.add('Scale')
|
||||
##(ttk only) Ttk_Selector.add('Progress')
|
||||
Ttk_Selector.add('Scrollbar')
|
||||
Ttk_Selector.add('XScrollbar')
|
||||
Ttk_Selector.add('YScrollbar')
|
||||
##(ttk only) Ttk_Selector.add('Separator')
|
||||
##(ttk only) Ttk_Selector.add('SizeGrip')
|
||||
##(ttk only) Ttk_Selector.add('Square')
|
||||
##(ttk only) Ttk_Selector.add('Treeview')
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
|
|
|
@ -20,7 +20,7 @@ class TkVariable
|
|||
|
||||
#TkCore::INTERP.add_tk_procs('rb_var', 'args',
|
||||
# "ruby [format \"TkVariable.callback %%Q!%s!\" $args]")
|
||||
TkCore::INTERP.add_tk_procs('rb_var', 'args', <<-'EOL')
|
||||
TkCore::INTERP.add_tk_procs('rb_var', 'args', <<-'EOL')
|
||||
if {[set st [catch {eval {ruby_cmd TkVariable callback} $args} ret]] != 0} {
|
||||
set idx [string first "\n\n" $ret]
|
||||
if {$idx > 0} {
|
||||
|
|
|
@ -9,7 +9,8 @@ require 'tk'
|
|||
|
||||
module Tk::WinDDE
|
||||
end
|
||||
TkWinDDE = Tk::WinDDE
|
||||
#TkWinDDE = Tk::WinDDE
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::WinDDE, :TkWinDDE)
|
||||
|
||||
module Tk::WinDDE
|
||||
extend Tk
|
||||
|
@ -91,7 +92,8 @@ end
|
|||
|
||||
module Tk::WinRegistry
|
||||
end
|
||||
TkWinRegistry = Tk::WinRegistry
|
||||
#TkWinRegistry = Tk::WinRegistry
|
||||
Tk.__set_toplevel_aliases__(:Tk, Tk::WinRegistry, :TkWinRegistry)
|
||||
|
||||
module Tk::WinRegistry
|
||||
extend Tk
|
||||
|
|
|
@ -19,7 +19,7 @@ module Tk::BLT
|
|||
class Shield < TkWindow
|
||||
def self.shield_path(win)
|
||||
win = window(win) unless win.kind_of?(TkWindow)
|
||||
if win.kind_of?(TkToplevel)
|
||||
if win.kind_of?(Tk::Toplevel)
|
||||
win.path + '._Busy'
|
||||
else
|
||||
win.path + '_Busy'
|
||||
|
|
|
@ -14,7 +14,7 @@ module Tk::BLT
|
|||
end
|
||||
end
|
||||
|
||||
class TkCanvas
|
||||
class Tk::Canvas
|
||||
alias __BLT_EPS_item_strval_optkeys __item_strval_optkeys
|
||||
def __item_strval_optkeys(id)
|
||||
__BLT_EPS_item_strval_optkeys(id) + [
|
||||
|
|
|
@ -9,7 +9,7 @@ require 'tkextlib/blt/tile.rb'
|
|||
|
||||
module Tk::BLT
|
||||
module Tile
|
||||
class Button < TkButton
|
||||
class Button < Tk::Button
|
||||
TkCommandNames = ['::blt::tile::button'.freeze].freeze
|
||||
end
|
||||
end
|
||||
|
|
|
@ -9,7 +9,7 @@ require 'tkextlib/blt/tile.rb'
|
|||
|
||||
module Tk::BLT
|
||||
module Tile
|
||||
class CheckButton < TkCheckButton
|
||||
class CheckButton < Tk::CheckButton
|
||||
TkCommandNames = ['::blt::tile::checkbutton'.freeze].freeze
|
||||
end
|
||||
Checkbutton = CheckButton
|
||||
|
|
|
@ -9,7 +9,7 @@ require 'tkextlib/blt/tile.rb'
|
|||
|
||||
module Tk::BLT
|
||||
module Tile
|
||||
class Frame < TkFrame
|
||||
class Frame < Tk::Frame
|
||||
TkCommandNames = ['::blt::tile::frame'.freeze].freeze
|
||||
end
|
||||
end
|
||||
|
|
|
@ -9,7 +9,7 @@ require 'tkextlib/blt/tile.rb'
|
|||
|
||||
module Tk::BLT
|
||||
module Tile
|
||||
class Label < TkLabel
|
||||
class Label < Tk::Label
|
||||
TkCommandNames = ['::blt::tile::label'.freeze].freeze
|
||||
end
|
||||
end
|
||||
|
|
|
@ -9,7 +9,7 @@ require 'tkextlib/blt/tile.rb'
|
|||
|
||||
module Tk::BLT
|
||||
module Tile
|
||||
class RadioButton < TkRadioButton
|
||||
class RadioButton < Tk::RadioButton
|
||||
TkCommandNames = ['::blt::tile::radiobutton'.freeze].freeze
|
||||
end
|
||||
Radiobutton = RadioButton
|
||||
|
|
|
@ -9,7 +9,7 @@ require 'tkextlib/blt/tile.rb'
|
|||
|
||||
module Tk::BLT
|
||||
module Tile
|
||||
class Scrollbar < TkScrollbar
|
||||
class Scrollbar < Tk::Scrollbar
|
||||
TkCommandNames = ['::blt::tile::scrollbar'.freeze].freeze
|
||||
end
|
||||
end
|
||||
|
|
|
@ -9,7 +9,7 @@ require 'tkextlib/blt/tile.rb'
|
|||
|
||||
module Tk::BLT
|
||||
module Tile
|
||||
class Toplevel < TkToplevel
|
||||
class Toplevel < Tk::Toplevel
|
||||
TkCommandNames = ['::blt::tile::toplevel'.freeze].freeze
|
||||
end
|
||||
end
|
||||
|
|
|
@ -9,7 +9,7 @@ require 'tkextlib/bwidget.rb'
|
|||
|
||||
module Tk
|
||||
module BWidget
|
||||
class Button < TkButton
|
||||
class Button < Tk::Button
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -31,7 +31,7 @@ class Tk::BWidget::ButtonBox
|
|||
name = tagOrId[:name]
|
||||
return index(name) unless name.empty?
|
||||
end
|
||||
if tagOrId.kind_of?(TkButton)
|
||||
if tagOrId.kind_of?(Tk::Button)
|
||||
return index(tagOrId[:text])
|
||||
end
|
||||
# index(tagOrId.to_s)
|
||||
|
@ -54,7 +54,7 @@ class Tk::BWidget::ButtonBox
|
|||
name = idx[:name]
|
||||
idx = name unless name.empty?
|
||||
end
|
||||
if idx.kind_of?(TkButton)
|
||||
if idx.kind_of?(Tk::Button)
|
||||
idx = idx[:text]
|
||||
end
|
||||
number(tk_send('index', idx.to_s))
|
||||
|
|
|
@ -103,7 +103,7 @@ class Tk::BWidget::Dialog
|
|||
name = tagOrId[:name]
|
||||
return index(name) unless name.empty?
|
||||
end
|
||||
if tagOrId.kind_of?(TkButton)
|
||||
if tagOrId.kind_of?(Tk::Button)
|
||||
return index(tagOrId[:text])
|
||||
end
|
||||
# index(tagOrId.to_s)
|
||||
|
|
|
@ -9,7 +9,7 @@ require 'tkextlib/bwidget.rb'
|
|||
|
||||
module Tk
|
||||
module BWidget
|
||||
class Entry < TkEntry
|
||||
class Entry < Tk::Entry
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -9,7 +9,7 @@ require 'tkextlib/bwidget.rb'
|
|||
|
||||
module Tk
|
||||
module BWidget
|
||||
class Label < TkLabel
|
||||
class Label < Tk::Label
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -11,7 +11,7 @@ require 'tkextlib/bwidget/entry'
|
|||
|
||||
module Tk
|
||||
module BWidget
|
||||
class LabelEntry < TkEntry
|
||||
class LabelEntry < Tk::Entry
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -10,7 +10,7 @@ require 'tkextlib/bwidget/entry'
|
|||
|
||||
module Tk
|
||||
module BWidget
|
||||
class SpinBox < TkEntry
|
||||
class SpinBox < Tk::Entry
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -156,7 +156,7 @@ module Tk
|
|||
master = master.to_s
|
||||
end
|
||||
return id unless ComponentID_TBL.key?(master)
|
||||
(ComponentID_TBL.key?(id))? ComponentID_TBL[master][id]: id
|
||||
(ComponentID_TBL[master].key?(id))? ComponentID_TBL[master][id]: id
|
||||
end
|
||||
|
||||
def self.new(master, component=nil)
|
||||
|
|
|
@ -85,12 +85,24 @@ class Tk::Iwidgets::Checkbox
|
|||
self
|
||||
end
|
||||
|
||||
def get(idx)
|
||||
simplelist(tk_call(@path, 'get', index(idx))).collect{|id|
|
||||
def get_tags
|
||||
simplelist(tk_call_without_enc(@path, 'get'))
|
||||
end
|
||||
|
||||
def get_objs
|
||||
simplelist(tk_call_without_enc(@path, 'get')).collect{|id|
|
||||
Tk::Itk::Component.id2obj(self, id)
|
||||
}
|
||||
end
|
||||
|
||||
def get(idx=nil)
|
||||
if idx
|
||||
bool(tk_call_without_enc(@path, 'get', index(idx)))
|
||||
else
|
||||
get_tags
|
||||
end
|
||||
end
|
||||
|
||||
def index(idx)
|
||||
number(tk_call(@path, 'index', tagid(idx)))
|
||||
end
|
||||
|
|
|
@ -207,7 +207,7 @@ class Tk::Iwidgets::Hierarchy
|
|||
self
|
||||
end
|
||||
|
||||
# based on TkText widget
|
||||
# based on Tk::Text widget
|
||||
|
||||
def bbox(index)
|
||||
list(tk_send_without_enc('bbox', _get_eval_enc_str(index)))
|
||||
|
|
|
@ -146,7 +146,12 @@ class Tk::Iwidgets::Notebook
|
|||
|
||||
def view(*idxs)
|
||||
if idxs.size == 0
|
||||
window(tk_send_without_enc('view'))
|
||||
idx = num_or_str(tk_send_without_enc('view'))
|
||||
if idx.kind_of?(Fixnum) && idx < 0
|
||||
nil
|
||||
else
|
||||
idx
|
||||
end
|
||||
else
|
||||
tk_send_without_enc('view', *idxs)
|
||||
self
|
||||
|
@ -160,8 +165,8 @@ class Tk::Iwidgets::Notebook
|
|||
end
|
||||
alias xview_moveto view_moveto
|
||||
alias yview_moveto view_moveto
|
||||
def view_scroll(*idxs)
|
||||
view('scroll', *idxs)
|
||||
def view_scroll(index, what='pages')
|
||||
view('scroll', index, what)
|
||||
end
|
||||
alias xview_scroll view_scroll
|
||||
alias yview_scroll view_scroll
|
||||
|
|
|
@ -85,10 +85,13 @@ class Tk::Iwidgets::Radiobox
|
|||
self
|
||||
end
|
||||
|
||||
def get(idx)
|
||||
simplelist(tk_call(@path, 'get', index(idx))).collect{|id|
|
||||
Tk::Itk::Component.id2obj(self, id)
|
||||
}
|
||||
def get_tag
|
||||
((tag = tk_call_without_enc(@path, 'get')).empty?)? nil: tag
|
||||
end
|
||||
alias get get_tag
|
||||
|
||||
def get_obj
|
||||
(tag = get_tag)? Tk::Itk::Component.id2obj(self, tag): nil
|
||||
end
|
||||
|
||||
def index(idx)
|
||||
|
|
|
@ -59,7 +59,7 @@ class Tk::Iwidgets::Selectionbox
|
|||
self
|
||||
end
|
||||
|
||||
# based on TkListbox ( and TkTextWin )
|
||||
# based on Tk::Listbox ( and TkTextWin )
|
||||
def curselection
|
||||
list(tk_send_without_enc('curselection'))
|
||||
end
|
||||
|
|
|
@ -49,7 +49,7 @@ class Tk::Iwidgets::Selectiondialog
|
|||
self
|
||||
end
|
||||
|
||||
# based on TkListbox ( and TkTextWin )
|
||||
# based on Tk::Listbox ( and TkTextWin )
|
||||
def curselection
|
||||
list(tk_send_without_enc('curselection'))
|
||||
end
|
||||
|
|
|
@ -116,6 +116,11 @@ class Tk::Iwidgets::Tabnotebook
|
|||
self
|
||||
end
|
||||
|
||||
def show_tab(idx)
|
||||
@tabset.show_tab(idx)
|
||||
self
|
||||
end
|
||||
|
||||
def scrollcommand(cmd=Proc.new)
|
||||
configure_cmd 'scrollcommand', cmd
|
||||
self
|
||||
|
@ -147,7 +152,12 @@ class Tk::Iwidgets::Tabnotebook
|
|||
|
||||
def view(*index)
|
||||
if index.size == 0
|
||||
window(tk_send_without_enc('view'))
|
||||
idx = num_or_str(tk_send_without_enc('view'))
|
||||
if idx.kind_of?(Fixnum) && idx < 0
|
||||
nil
|
||||
else
|
||||
idx
|
||||
end
|
||||
else
|
||||
tk_send_without_enc('view', *index)
|
||||
self
|
||||
|
@ -161,8 +171,8 @@ class Tk::Iwidgets::Tabnotebook
|
|||
end
|
||||
alias xview_moveto view_moveto
|
||||
alias yview_moveto view_moveto
|
||||
def view_scroll(*index)
|
||||
view('scroll', *index)
|
||||
def view_scroll(index, what='pages')
|
||||
view('scroll', index, what)
|
||||
end
|
||||
alias xview_scroll view_scroll
|
||||
alias yview_scroll view_scroll
|
||||
|
|
|
@ -96,4 +96,48 @@ class Tk::Iwidgets::Tabset
|
|||
tk_call(@path, 'select', index(idx))
|
||||
self
|
||||
end
|
||||
|
||||
def show_tab(idx)
|
||||
if index(idx) == 0
|
||||
self.start = 0
|
||||
return
|
||||
end
|
||||
|
||||
reutrn unless @canvas ||= self.winfo_children[0]
|
||||
|
||||
delta = 1 if (delta = cget(:gap)) == 'overlap' ||
|
||||
(delta = self.winfo_pixels(delta) + 1) <= 0
|
||||
|
||||
case cget(:tabpos)
|
||||
when 's', 'n'
|
||||
if (head = tabcget(idx, :left)) < 0
|
||||
self.start -= head
|
||||
return
|
||||
end
|
||||
tabs_size = @canvas.winfo_width
|
||||
tab_start, tab_end = @canvas .
|
||||
find_overlapping(head, 0, head + delta, @canvas.winfo_height) .
|
||||
find_all{|id| @canvas.itemtype(id) == TkcPolygon} .
|
||||
map!{|id| bbox = @canvas.bbox(id); [bbox[0], bbox[2]]} . max
|
||||
|
||||
when 'e', 'w'
|
||||
if (head = tabcget(idx, :top)) < 0
|
||||
self.start -= head
|
||||
return
|
||||
end
|
||||
tabs_size = @canvas.winfo_height
|
||||
tab_start, tab_end = @canvas .
|
||||
find_overlapping(0, head, @canvas.winfo_width, head + delta) .
|
||||
find_all{|id| @canvas.itemtype(id) == TkcPolygon} .
|
||||
map!{|id| bbox = @canvas.bbox(id); [bbox[1], bbox[3]]} . max
|
||||
end
|
||||
|
||||
if (size = tab_end - tab_start + 1) > tabs_size
|
||||
self.start -= tab_start
|
||||
elsif head + size > tabs_size
|
||||
self.start -= head + size - tabs_size
|
||||
end
|
||||
|
||||
self
|
||||
end
|
||||
end
|
||||
|
|
|
@ -108,7 +108,7 @@ module Tk
|
|||
end
|
||||
end
|
||||
|
||||
class TkScrollbar
|
||||
class Tk::Scrollbar
|
||||
def autoscroll
|
||||
# Arranges for the already existing scrollbar to be mapped
|
||||
# and unmapped as needed.
|
||||
|
|
|
@ -15,7 +15,7 @@ TkPackage.require('ctext')
|
|||
|
||||
module Tk
|
||||
module Tcllib
|
||||
class CText < TkText
|
||||
class CText < Tk::Text
|
||||
PACKAGE_NAME = 'ctext'.freeze
|
||||
def self.package_name
|
||||
PACKAGE_NAME
|
||||
|
|
|
@ -24,7 +24,7 @@ TkPackage.require('datefield')
|
|||
|
||||
module Tk
|
||||
module Tcllib
|
||||
class Datefield < TkEntry
|
||||
class Datefield < Tk::Entry
|
||||
PACKAGE_NAME = 'datefield'.freeze
|
||||
def self.package_name
|
||||
PACKAGE_NAME
|
||||
|
|
|
@ -18,7 +18,7 @@ TkPackage.require('ipentry')
|
|||
|
||||
module Tk
|
||||
module Tcllib
|
||||
class IP_Entry < TkEntry
|
||||
class IP_Entry < Tk::Entry
|
||||
PACKAGE_NAME = 'ipentry'.freeze
|
||||
def self.package_name
|
||||
PACKAGE_NAME
|
||||
|
|
|
@ -225,7 +225,7 @@ module Tk::Tcllib::Plotchart
|
|||
end
|
||||
|
||||
############################
|
||||
class XYPlot < TkCanvas
|
||||
class XYPlot < Tk::Canvas
|
||||
include ChartMethod
|
||||
|
||||
TkCommandNames = [
|
||||
|
@ -247,7 +247,7 @@ module Tk::Tcllib::Plotchart
|
|||
@xaxis = args.shift
|
||||
@yaxis = args.shift
|
||||
|
||||
if parent.kind_of?(TkCanvas)
|
||||
if parent.kind_of?(Tk::Canvas)
|
||||
@path = parent.path
|
||||
else
|
||||
super(parent, *args) # create canvas widget
|
||||
|
@ -337,7 +337,7 @@ module Tk::Tcllib::Plotchart
|
|||
end
|
||||
|
||||
############################
|
||||
class PolarPlot < TkCanvas
|
||||
class PolarPlot < Tk::Canvas
|
||||
include ChartMethod
|
||||
|
||||
TkCommandNames = [
|
||||
|
@ -356,7 +356,7 @@ module Tk::Tcllib::Plotchart
|
|||
|
||||
@radius_data = args.shift
|
||||
|
||||
if parent.kind_of?(TkCanvas)
|
||||
if parent.kind_of?(Tk::Canvas)
|
||||
@path = parent.path
|
||||
else
|
||||
super(parent, *args) # create canvas widget
|
||||
|
@ -395,7 +395,7 @@ module Tk::Tcllib::Plotchart
|
|||
Polarplot = PolarPlot
|
||||
|
||||
############################
|
||||
class IsometricPlot < TkCanvas
|
||||
class IsometricPlot < Tk::Canvas
|
||||
include ChartMethod
|
||||
|
||||
TkCommandNames = [
|
||||
|
@ -430,7 +430,7 @@ module Tk::Tcllib::Plotchart
|
|||
@stepsize = args.shift
|
||||
end
|
||||
|
||||
if parent.kind_of?(TkCanvas)
|
||||
if parent.kind_of?(Tk::Canvas)
|
||||
@path = parent.path
|
||||
else
|
||||
super(parent, *args) # create canvas widget
|
||||
|
@ -475,7 +475,7 @@ module Tk::Tcllib::Plotchart
|
|||
Isometricplot = IsometricPlot
|
||||
|
||||
############################
|
||||
class Plot3D < TkCanvas
|
||||
class Plot3D < Tk::Canvas
|
||||
include ChartMethod
|
||||
|
||||
TkCommandNames = [
|
||||
|
@ -500,7 +500,7 @@ module Tk::Tcllib::Plotchart
|
|||
@yaxis = args.shift
|
||||
@zaxis = args.shift
|
||||
|
||||
if parent.kind_of?(TkCanvas)
|
||||
if parent.kind_of?(Tk::Canvas)
|
||||
@path = parent.path
|
||||
else
|
||||
super(parent, *args) # create canvas widget
|
||||
|
@ -557,7 +557,7 @@ module Tk::Tcllib::Plotchart
|
|||
end
|
||||
|
||||
############################
|
||||
class Piechart < TkCanvas
|
||||
class Piechart < Tk::Canvas
|
||||
include ChartMethod
|
||||
|
||||
TkCommandNames = [
|
||||
|
@ -566,7 +566,7 @@ module Tk::Tcllib::Plotchart
|
|||
].freeze
|
||||
|
||||
def initialize(*args) # args := ([parent] [, keys])
|
||||
if args[0].kind_of?(TkCanvas)
|
||||
if args[0].kind_of?(Tk::Canvas)
|
||||
parent = args.shift
|
||||
@path = parent.path
|
||||
else
|
||||
|
@ -588,7 +588,7 @@ module Tk::Tcllib::Plotchart
|
|||
end
|
||||
|
||||
############################
|
||||
class Barchart < TkCanvas
|
||||
class Barchart < Tk::Canvas
|
||||
include ChartMethod
|
||||
|
||||
TkCommandNames = [
|
||||
|
@ -626,7 +626,7 @@ module Tk::Tcllib::Plotchart
|
|||
@series_size = args.shift
|
||||
end
|
||||
|
||||
if parent.kind_of?(TkCanvas)
|
||||
if parent.kind_of?(Tk::Canvas)
|
||||
@path = parent.path
|
||||
else
|
||||
super(parent, *args) # create canvas widget
|
||||
|
@ -672,7 +672,7 @@ module Tk::Tcllib::Plotchart
|
|||
end
|
||||
|
||||
############################
|
||||
class Timechart < TkCanvas
|
||||
class Timechart < Tk::Canvas
|
||||
include ChartMethod
|
||||
|
||||
TkCommandNames = [
|
||||
|
@ -699,7 +699,7 @@ module Tk::Tcllib::Plotchart
|
|||
@time_end = args.shift
|
||||
@items = args.shift
|
||||
|
||||
if parent.kind_of?(TkCanvas)
|
||||
if parent.kind_of?(Tk::Canvas)
|
||||
@path = parent.path
|
||||
else
|
||||
super(parent, *args) # create canvas widget
|
||||
|
@ -733,7 +733,7 @@ module Tk::Tcllib::Plotchart
|
|||
end
|
||||
|
||||
############################
|
||||
class Gnattchart < TkCanvas
|
||||
class Gnattchart < Tk::Canvas
|
||||
include ChartMethod
|
||||
|
||||
TkCommandNames = [
|
||||
|
@ -772,7 +772,7 @@ module Tk::Tcllib::Plotchart
|
|||
@text_width = None
|
||||
end
|
||||
|
||||
if parent.kind_of?(TkCanvas)
|
||||
if parent.kind_of?(Tk::Canvas)
|
||||
@path = parent.path
|
||||
else
|
||||
super(parent, *args) # create canvas widget
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#
|
||||
|
||||
require 'tk'
|
||||
require 'tk/ttk_selector'
|
||||
|
||||
# call setup script for general 'tkextlib' libraries
|
||||
require 'tkextlib/setup.rb'
|
||||
|
@ -262,6 +263,9 @@ module Tk
|
|||
autoload :TSquare, 'tkextlib/tile/tsquare'
|
||||
autoload :Square, 'tkextlib/tile/tsquare'
|
||||
|
||||
autoload :SizeGrip, 'tkextlib/tile/sizegrip'
|
||||
autoload :Sizegrip, 'tkextlib/tile/sizegrip'
|
||||
|
||||
autoload :Treeview, 'tkextlib/tile/treeview'
|
||||
|
||||
autoload :Style, 'tkextlib/tile/style'
|
||||
|
|
|
@ -9,9 +9,13 @@ module Tk
|
|||
module Tile
|
||||
class SizeGrip < TkWindow
|
||||
end
|
||||
Sizegrip = SizeGrip
|
||||
end
|
||||
end
|
||||
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Sizegrip, :TkSizegrip, :TkSizeGrip)
|
||||
|
||||
|
||||
class Tk::Tile::SizeGrip < TkWindow
|
||||
include Tk::Tile::TileWidget
|
||||
|
||||
|
|
|
@ -52,11 +52,29 @@ class << Tk::Tile::Style
|
|||
style = '.' unless style
|
||||
|
||||
if keys && keys != None
|
||||
tk_call(TkCommandNames[0], 'map', style, *hash_kv(keys))
|
||||
if keys.kind_of?(Hash)
|
||||
tk_call(TkCommandNames[0], 'map', style, *hash_kv(keys))
|
||||
else
|
||||
simplelist(tk_call(TkCommandNames[0], 'map', style, '-' << keys.to_s))
|
||||
end
|
||||
else
|
||||
tk_call(TkCommandNames[0], 'map', style)
|
||||
ret = {}
|
||||
Hash[*(simplelist(tk_call(TkCommandNames[0], 'map', style)))].each{|k, v|
|
||||
ret[k[1..-1]] = list(v)
|
||||
}
|
||||
ret
|
||||
end
|
||||
end
|
||||
alias map_configure map
|
||||
|
||||
def map_configinfo(style=nil, key=None)
|
||||
style = '.' unless style
|
||||
map(style, key)
|
||||
end
|
||||
|
||||
def map_default_configinfo(key=None)
|
||||
map('.', key)
|
||||
end
|
||||
|
||||
def lookup(style, opt, state=None, fallback_value=None)
|
||||
tk_call(TkCommandNames[0], 'lookup', style,
|
||||
|
@ -92,16 +110,20 @@ class << Tk::Tile::Style
|
|||
end
|
||||
|
||||
def theme_create(name, keys=nil)
|
||||
name = name.to_s
|
||||
if keys && keys != None
|
||||
tk_call(TkCommandNames[0], 'theme', 'create', name, *hash_kv(keys))
|
||||
else
|
||||
tk_call(TkCommandNames[0], 'theme', 'create', name)
|
||||
end
|
||||
name
|
||||
end
|
||||
|
||||
def theme_settings(name, cmd=nil, &b)
|
||||
name = name.to_s
|
||||
cmd = Proc.new(&b) if !cmd && b
|
||||
tk_call(TkCommandNames[0], 'theme', 'settings', name, cmd)
|
||||
name
|
||||
end
|
||||
|
||||
def theme_names()
|
||||
|
@ -109,6 +131,8 @@ class << Tk::Tile::Style
|
|||
end
|
||||
|
||||
def theme_use(name)
|
||||
name = name.to_s
|
||||
tk_call(TkCommandNames[0], 'theme', 'use', name)
|
||||
name
|
||||
end
|
||||
end
|
||||
|
|
|
@ -7,13 +7,16 @@ require 'tkextlib/tile.rb'
|
|||
|
||||
module Tk
|
||||
module Tile
|
||||
class TButton < TkButton
|
||||
class TButton < Tk::Button
|
||||
end
|
||||
Button = TButton
|
||||
end
|
||||
end
|
||||
|
||||
class Tk::Tile::TButton < TkButton
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Button, :TkButton)
|
||||
|
||||
|
||||
class Tk::Tile::TButton < Tk::Button
|
||||
include Tk::Tile::TileWidget
|
||||
|
||||
if Tk::Tile::USE_TTK_NAMESPACE
|
||||
|
|
|
@ -7,7 +7,7 @@ require 'tkextlib/tile.rb'
|
|||
|
||||
module Tk
|
||||
module Tile
|
||||
class TCheckButton < TkCheckButton
|
||||
class TCheckButton < Tk::CheckButton
|
||||
end
|
||||
TCheckbutton = TCheckButton
|
||||
CheckButton = TCheckButton
|
||||
|
@ -15,7 +15,11 @@ module Tk
|
|||
end
|
||||
end
|
||||
|
||||
class Tk::Tile::TCheckButton < TkCheckButton
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Checkbutton,
|
||||
:TkCheckbutton, :TkCheckButton)
|
||||
|
||||
|
||||
class Tk::Tile::TCheckButton < Tk::CheckButton
|
||||
include Tk::Tile::TileWidget
|
||||
|
||||
if Tk::Tile::USE_TTK_NAMESPACE
|
||||
|
|
|
@ -13,6 +13,9 @@ module Tk
|
|||
end
|
||||
end
|
||||
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Combobox, :TkCombobox)
|
||||
|
||||
|
||||
class Tk::Tile::TCombobox < Tk::Tile::TEntry
|
||||
include Tk::Tile::TileWidget
|
||||
|
||||
|
|
|
@ -7,13 +7,16 @@ require 'tkextlib/tile.rb'
|
|||
|
||||
module Tk
|
||||
module Tile
|
||||
class TEntry < TkEntry
|
||||
class TEntry < Tk::Entry
|
||||
end
|
||||
Entry = TEntry
|
||||
end
|
||||
end
|
||||
|
||||
class Tk::Tile::TEntry < TkEntry
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Entry, :TkEntry)
|
||||
|
||||
|
||||
class Tk::Tile::TEntry < Tk::Entry
|
||||
include Tk::Tile::TileWidget
|
||||
|
||||
if Tk::Tile::USE_TTK_NAMESPACE
|
||||
|
|
|
@ -7,13 +7,16 @@ require 'tkextlib/tile.rb'
|
|||
|
||||
module Tk
|
||||
module Tile
|
||||
class TFrame < TkFrame
|
||||
class TFrame < Tk::Frame
|
||||
end
|
||||
Frame = TFrame
|
||||
end
|
||||
end
|
||||
|
||||
class Tk::Tile::TFrame < TkFrame
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Frame, :TkFrame)
|
||||
|
||||
|
||||
class Tk::Tile::TFrame < Tk::Frame
|
||||
include Tk::Tile::TileWidget
|
||||
|
||||
if Tk::Tile::USE_TTK_NAMESPACE
|
||||
|
|
|
@ -7,13 +7,16 @@ require 'tkextlib/tile.rb'
|
|||
|
||||
module Tk
|
||||
module Tile
|
||||
class TLabel < TkLabel
|
||||
class TLabel < Tk::Label
|
||||
end
|
||||
Label = TLabel
|
||||
end
|
||||
end
|
||||
|
||||
class Tk::Tile::TLabel < TkLabel
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Label, :TkLabel)
|
||||
|
||||
|
||||
class Tk::Tile::TLabel < Tk::Label
|
||||
include Tk::Tile::TileWidget
|
||||
|
||||
if Tk::Tile::USE_TTK_NAMESPACE
|
||||
|
|
|
@ -9,10 +9,16 @@ module Tk
|
|||
module Tile
|
||||
class TLabelframe < Tk::Tile::TFrame
|
||||
end
|
||||
Labelframe = TLabelframe
|
||||
TLabelFrame = TLabelframe
|
||||
Labelframe = TLabelframe
|
||||
LabelFrame = TLabelframe
|
||||
end
|
||||
end
|
||||
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Labelframe,
|
||||
:TkLabelframe, :TkLabelFrame)
|
||||
|
||||
|
||||
class Tk::Tile::TLabelframe < Tk::Tile::TFrame
|
||||
include Tk::Tile::TileWidget
|
||||
|
||||
|
|
|
@ -7,13 +7,19 @@ require 'tkextlib/tile.rb'
|
|||
|
||||
module Tk
|
||||
module Tile
|
||||
class TMenubutton < TkMenubutton
|
||||
class TMenubutton < Tk::Menubutton
|
||||
end
|
||||
Menubutton = TMenubutton
|
||||
TMenuButton = TMenubutton
|
||||
Menubutton = TMenubutton
|
||||
MenuButton = TMenubutton
|
||||
end
|
||||
end
|
||||
|
||||
class Tk::Tile::TMenubutton < TkMenubutton
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Menubutton,
|
||||
:TkMenubutton, :TkMenuButton)
|
||||
|
||||
|
||||
class Tk::Tile::TMenubutton < Tk::Menubutton
|
||||
include Tk::Tile::TileWidget
|
||||
|
||||
if Tk::Tile::USE_TTK_NAMESPACE
|
||||
|
|
|
@ -13,6 +13,9 @@ module Tk
|
|||
end
|
||||
end
|
||||
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Notebook, :TkNotebook)
|
||||
|
||||
|
||||
class Tk::Tile::TNotebook < TkWindow
|
||||
################################
|
||||
include TkItemConfigMethod
|
||||
|
|
|
@ -13,6 +13,10 @@ module Tk
|
|||
end
|
||||
end
|
||||
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Panedwindow,
|
||||
:TkPanedwindow, :TkPanedWindow)
|
||||
|
||||
|
||||
class Tk::Tile::TPaned < TkWindow
|
||||
include Tk::Tile::TileWidget
|
||||
|
||||
|
|
|
@ -13,6 +13,9 @@ module Tk
|
|||
end
|
||||
end
|
||||
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Progressbar, :TkProgressbar)
|
||||
|
||||
|
||||
class Tk::Tile::TProgressbar
|
||||
include Tk::Tile::TileWidget
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ require 'tkextlib/tile.rb'
|
|||
|
||||
module Tk
|
||||
module Tile
|
||||
class TRadioButton < TkRadioButton
|
||||
class TRadioButton < Tk::RadioButton
|
||||
end
|
||||
TRadiobutton = TRadioButton
|
||||
RadioButton = TRadioButton
|
||||
|
@ -15,7 +15,11 @@ module Tk
|
|||
end
|
||||
end
|
||||
|
||||
class Tk::Tile::TRadioButton < TkRadioButton
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Radiobutton,
|
||||
:TkRadiobutton, :TkRadioButton)
|
||||
|
||||
|
||||
class Tk::Tile::TRadioButton < Tk::RadioButton
|
||||
include Tk::Tile::TileWidget
|
||||
|
||||
if Tk::Tile::USE_TTK_NAMESPACE
|
||||
|
|
|
@ -12,6 +12,9 @@ module Tk
|
|||
end
|
||||
end
|
||||
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Treeview, :TkTreeview)
|
||||
|
||||
|
||||
module Tk::Tile::TreeviewConfig
|
||||
include TkItemConfigMethod
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ require 'tkextlib/tile.rb'
|
|||
|
||||
module Tk
|
||||
module Tile
|
||||
class TScale < TkScale
|
||||
class TScale < Tk::Scale
|
||||
end
|
||||
Scale = TScale
|
||||
|
||||
|
@ -17,7 +17,10 @@ module Tk
|
|||
end
|
||||
end
|
||||
|
||||
class Tk::Tile::TScale < TkScale
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Scale, :TkScale)
|
||||
|
||||
|
||||
class Tk::Tile::TScale < Tk::Scale
|
||||
include Tk::Tile::TileWidget
|
||||
|
||||
if Tk::Tile::USE_TTK_NAMESPACE
|
||||
|
|
|
@ -7,13 +7,16 @@ require 'tkextlib/tile.rb'
|
|||
|
||||
module Tk
|
||||
module Tile
|
||||
class TScrollbar < TkScrollbar
|
||||
class TScrollbar < Tk::Scrollbar
|
||||
end
|
||||
Scrollbar = TScrollbar
|
||||
end
|
||||
end
|
||||
|
||||
class Tk::Tile::TScrollbar < TkScrollbar
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Scrollbar, :TkScrollbar)
|
||||
|
||||
|
||||
class Tk::Tile::TScrollbar < Tk::Scrollbar
|
||||
include Tk::Tile::TileWidget
|
||||
|
||||
if Tk::Tile::USE_TTK_NAMESPACE
|
||||
|
@ -47,3 +50,5 @@ class Tk::Tile::YScrollbar < Tk::Tile::TScrollbar
|
|||
private :create_self
|
||||
end
|
||||
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::XScrollbar, :TkXScrollbar)
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::YScrollbar, :TkYScrollbar)
|
||||
|
|
|
@ -13,6 +13,9 @@ module Tk
|
|||
end
|
||||
end
|
||||
|
||||
Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Separator, :TkSeparator)
|
||||
|
||||
|
||||
class Tk::Tile::TSeparator < TkWindow
|
||||
include Tk::Tile::TileWidget
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ class TkWindow
|
|||
end
|
||||
end
|
||||
|
||||
class TkRoot
|
||||
class Tk::Root
|
||||
undef tktrans_set_image, tktrans_get_image
|
||||
|
||||
def tktrans_set_image(img)
|
||||
|
@ -51,7 +51,7 @@ class TkRoot
|
|||
end
|
||||
end
|
||||
|
||||
class TkToplevel
|
||||
class Tk::Toplevel
|
||||
undef tktrans_set_image, tktrans_get_image
|
||||
|
||||
def tktrans_set_image(img)
|
||||
|
|
|
@ -17,6 +17,6 @@ end
|
|||
|
||||
module Tk
|
||||
module Vu
|
||||
Spinbox = TkSpinbox
|
||||
Spinbox = Tk::Spinbox
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,6 +4,18 @@
|
|||
# Demonstration of custom widget styles.
|
||||
#
|
||||
|
||||
set tile_ver [package require tile]
|
||||
if {[package vcompare $tile_ver 0.8] >= 0} {
|
||||
set style ::ttk::style
|
||||
} {
|
||||
set style style
|
||||
}
|
||||
if {[package vcompare $tile_ver 0.7] >= 0} {
|
||||
set conf_subcmd configure
|
||||
} {
|
||||
set conf_subcmd default
|
||||
}
|
||||
|
||||
#
|
||||
# ~ BACKGROUND
|
||||
#
|
||||
|
@ -42,7 +54,8 @@
|
|||
# style; see demo.tcl.)
|
||||
#
|
||||
|
||||
style theme settings "step" {
|
||||
#$style theme settings "step" {
|
||||
$style theme settings "alt" {
|
||||
|
||||
#
|
||||
# First, we use [style layout] to define what elements to
|
||||
|
@ -51,7 +64,7 @@ style theme settings "step" {
|
|||
# and a label. (See also the TScrollbar layout definition
|
||||
# in demos/blue.tcl for a more complicated layout spec.)
|
||||
#
|
||||
style layout Toolbutton {
|
||||
$style layout Toolbutton {
|
||||
Toolbutton.background
|
||||
Toolbutton.border -children {
|
||||
Toolbutton.padding -children {
|
||||
|
@ -68,7 +81,7 @@ style theme settings "step" {
|
|||
# For many options (like -background), the defaults
|
||||
# inherited from the parent style are sufficient.
|
||||
#
|
||||
style default Toolbutton -width 0 -padding 1 -relief flat -borderwidth 2
|
||||
$style $conf_subcmd Toolbutton -width 0 -padding 1 -relief flat -borderwidth 2
|
||||
|
||||
#
|
||||
# Finally, use [style map] to specify state-specific
|
||||
|
@ -78,7 +91,7 @@ style theme settings "step" {
|
|||
# over the widget). Each state-value pair is checked
|
||||
# in order, and the first matching state takes precedence.
|
||||
#
|
||||
style map Toolbutton -relief {
|
||||
$style map Toolbutton -relief {
|
||||
disabled flat
|
||||
selected sunken
|
||||
pressed sunken
|
||||
|
@ -93,19 +106,19 @@ style theme settings "step" {
|
|||
# design decisions from an aesthetic standpoint.)
|
||||
#
|
||||
if {![catch {package require tile::theme::blue}]} {
|
||||
style theme settings "blue" {
|
||||
$style theme settings "blue" {
|
||||
|
||||
#
|
||||
# Default values:
|
||||
#
|
||||
style default Toolbutton \
|
||||
$style $conf_subcmd Toolbutton \
|
||||
-width 0 -relief flat -borderwidth 2 \
|
||||
-background #6699CC -foreground #000000 ;
|
||||
|
||||
#
|
||||
# Configure state-specific values for -relief, as before:
|
||||
#
|
||||
style map Toolbutton -relief {
|
||||
$style map Toolbutton -relief {
|
||||
disabled flat
|
||||
selected sunken
|
||||
pressed sunken
|
||||
|
@ -116,8 +129,8 @@ style theme settings "blue" {
|
|||
# Adjust the -padding at the same time, to enhance
|
||||
# the raised/sunken illusion:
|
||||
#
|
||||
style default Toolbutton -padding 4
|
||||
style map Toolbutton -padding {
|
||||
$style $conf_subcmd Toolbutton -padding 4
|
||||
$style map Toolbutton -padding {
|
||||
disabled {4}
|
||||
selected {6 6 2 2}
|
||||
pressed {6 6 2 2}
|
||||
|
@ -128,7 +141,7 @@ style theme settings "blue" {
|
|||
# ... and change the foreground and background colors
|
||||
# when the mouse cursor is over the widget:
|
||||
#
|
||||
style map Toolbutton -background {
|
||||
$style map Toolbutton -background {
|
||||
active #008800
|
||||
} -foreground {
|
||||
active #FFFFFF
|
||||
|
|
Загрузка…
Ссылка в новой задаче