ffi-tk 2009.11.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +748 -0
- data/MANIFEST +188 -0
- data/README.md +85 -0
- data/Rakefile +47 -0
- data/TODO.md +62 -0
- data/bin/rwish +33 -0
- data/doc/MIT_LICENSE +18 -0
- data/doc/TCL_LICENSE +39 -0
- data/example/choose_color.rb +22 -0
- data/example/choose_directory.rb +22 -0
- data/example/dialog.rb +37 -0
- data/example/hello.rb +11 -0
- data/example/message_box.rb +26 -0
- data/example/option_menu.rb +17 -0
- data/example/popup.rb +24 -0
- data/example/set_palette.rb +32 -0
- data/example/text.rb +47 -0
- data/example/tile/kroc_demo_small.rb +123 -0
- data/example/tile/kroc_rb_demo.rb +135 -0
- data/example/tile/notebook.rb +48 -0
- data/example/tile/theme_hello.rb +38 -0
- data/example/tile/treeview.rb +71 -0
- data/example/various.rb +25 -0
- data/example/wait.rb +16 -0
- data/ffi-tk.gemspec +33 -0
- data/lib/ffi-tk.rb +76 -0
- data/lib/ffi-tk/command.rb +39 -0
- data/lib/ffi-tk/command/after.rb +36 -0
- data/lib/ffi-tk/command/bell.rb +34 -0
- data/lib/ffi-tk/command/bind.rb +11 -0
- data/lib/ffi-tk/command/bindtags.rb +69 -0
- data/lib/ffi-tk/command/cget.rb +92 -0
- data/lib/ffi-tk/command/choose_color.rb +29 -0
- data/lib/ffi-tk/command/choose_directory.rb +45 -0
- data/lib/ffi-tk/command/clipboard.rb +102 -0
- data/lib/ffi-tk/command/configure.rb +88 -0
- data/lib/ffi-tk/command/destroy.rb +12 -0
- data/lib/ffi-tk/command/dialog.rb +54 -0
- data/lib/ffi-tk/command/event.rb +79 -0
- data/lib/ffi-tk/command/focus.rb +70 -0
- data/lib/ffi-tk/command/font.rb +124 -0
- data/lib/ffi-tk/command/get_open_file.rb +85 -0
- data/lib/ffi-tk/command/get_save_file.rb +83 -0
- data/lib/ffi-tk/command/grab.rb +141 -0
- data/lib/ffi-tk/command/grid.rb +246 -0
- data/lib/ffi-tk/command/image.rb +79 -0
- data/lib/ffi-tk/command/lower.rb +23 -0
- data/lib/ffi-tk/command/message_box.rb +65 -0
- data/lib/ffi-tk/command/option_menu.rb +8 -0
- data/lib/ffi-tk/command/pack.rb +99 -0
- data/lib/ffi-tk/command/place.rb +91 -0
- data/lib/ffi-tk/command/popup.rb +14 -0
- data/lib/ffi-tk/command/raise.rb +25 -0
- data/lib/ffi-tk/command/scrollable.rb +151 -0
- data/lib/ffi-tk/command/selection.rb +132 -0
- data/lib/ffi-tk/command/set_palette.rb +9 -0
- data/lib/ffi-tk/command/tk_cmd.rb +155 -0
- data/lib/ffi-tk/command/vars.rb +82 -0
- data/lib/ffi-tk/command/wait.rb +39 -0
- data/lib/ffi-tk/command/winfo.rb +668 -0
- data/lib/ffi-tk/command/wm.rb +1025 -0
- data/lib/ffi-tk/core_extensions.rb +154 -0
- data/lib/ffi-tk/event/data.rb +60 -0
- data/lib/ffi-tk/event/handler.rb +44 -0
- data/lib/ffi-tk/ffi/tcl.rb +92 -0
- data/lib/ffi-tk/ffi/tcl/cmd_proc.rb +10 -0
- data/lib/ffi-tk/ffi/tcl/eval_result.rb +148 -0
- data/lib/ffi-tk/ffi/tcl/interp.rb +95 -0
- data/lib/ffi-tk/ffi/tcl/obj.rb +89 -0
- data/lib/ffi-tk/ffi/tcl/time.rb +36 -0
- data/lib/ffi-tk/ffi/tk.rb +35 -0
- data/lib/ffi-tk/geometry.rb +32 -0
- data/lib/ffi-tk/thread_sender.rb +26 -0
- data/lib/ffi-tk/tk.rb +222 -0
- data/lib/ffi-tk/variable.rb +46 -0
- data/lib/ffi-tk/widget.rb +68 -0
- data/lib/ffi-tk/widget/button.rb +41 -0
- data/lib/ffi-tk/widget/canvas.rb +806 -0
- data/lib/ffi-tk/widget/canvas/arc.rb +18 -0
- data/lib/ffi-tk/widget/canvas/bitmap.rb +13 -0
- data/lib/ffi-tk/widget/canvas/image.rb +10 -0
- data/lib/ffi-tk/widget/canvas/item.rb +170 -0
- data/lib/ffi-tk/widget/canvas/line.rb +16 -0
- data/lib/ffi-tk/widget/canvas/oval.rb +15 -0
- data/lib/ffi-tk/widget/canvas/polygon.rb +16 -0
- data/lib/ffi-tk/widget/canvas/rectangle.rb +15 -0
- data/lib/ffi-tk/widget/canvas/text.rb +15 -0
- data/lib/ffi-tk/widget/canvas/window.rb +11 -0
- data/lib/ffi-tk/widget/checkbutton.rb +63 -0
- data/lib/ffi-tk/widget/entry.rb +208 -0
- data/lib/ffi-tk/widget/frame.rb +12 -0
- data/lib/ffi-tk/widget/label.rb +26 -0
- data/lib/ffi-tk/widget/labelframe.rb +7 -0
- data/lib/ffi-tk/widget/listbox.rb +192 -0
- data/lib/ffi-tk/widget/menu.rb +318 -0
- data/lib/ffi-tk/widget/menubutton.rb +7 -0
- data/lib/ffi-tk/widget/message.rb +36 -0
- data/lib/ffi-tk/widget/panedwindow.rb +164 -0
- data/lib/ffi-tk/widget/radiobutton.rb +43 -0
- data/lib/ffi-tk/widget/root.rb +8 -0
- data/lib/ffi-tk/widget/scale.rb +44 -0
- data/lib/ffi-tk/widget/scrollbar.rb +114 -0
- data/lib/ffi-tk/widget/spinbox.rb +198 -0
- data/lib/ffi-tk/widget/text.rb +893 -0
- data/lib/ffi-tk/widget/text/peer.rb +10 -0
- data/lib/ffi-tk/widget/tile.rb +70 -0
- data/lib/ffi-tk/widget/tile/button.rb +8 -0
- data/lib/ffi-tk/widget/tile/checkbutton.rb +8 -0
- data/lib/ffi-tk/widget/tile/combobox.rb +43 -0
- data/lib/ffi-tk/widget/tile/entry.rb +8 -0
- data/lib/ffi-tk/widget/tile/frame.rb +13 -0
- data/lib/ffi-tk/widget/tile/label.rb +9 -0
- data/lib/ffi-tk/widget/tile/labelframe.rb +8 -0
- data/lib/ffi-tk/widget/tile/menubutton.rb +8 -0
- data/lib/ffi-tk/widget/tile/notebook.rb +93 -0
- data/lib/ffi-tk/widget/tile/panedwindow.rb +9 -0
- data/lib/ffi-tk/widget/tile/progressbar.rb +59 -0
- data/lib/ffi-tk/widget/tile/radiobutton.rb +8 -0
- data/lib/ffi-tk/widget/tile/scale.rb +8 -0
- data/lib/ffi-tk/widget/tile/scrollbar.rb +41 -0
- data/lib/ffi-tk/widget/tile/separator.rb +23 -0
- data/lib/ffi-tk/widget/tile/sizegrip.rb +24 -0
- data/lib/ffi-tk/widget/tile/style.rb +114 -0
- data/lib/ffi-tk/widget/tile/treeview.rb +414 -0
- data/lib/ffi-tk/widget/toplevel.rb +14 -0
- data/spec/ffi-tk/command/bindtags.rb +18 -0
- data/spec/ffi-tk/command/clipboard.rb +18 -0
- data/spec/ffi-tk/command/font.rb +67 -0
- data/spec/ffi-tk/command/grid.rb +6 -0
- data/spec/ffi-tk/command/image.rb +26 -0
- data/spec/ffi-tk/command/pack.rb +20 -0
- data/spec/ffi-tk/command/place.rb +20 -0
- data/spec/ffi-tk/command/selection.rb +13 -0
- data/spec/ffi-tk/command/vars.rb +32 -0
- data/spec/ffi-tk/command/winfo.rb +233 -0
- data/spec/ffi-tk/command/wm.rb +185 -0
- data/spec/ffi-tk/event.rb +95 -0
- data/spec/ffi-tk/tile/button.rb +51 -0
- data/spec/ffi-tk/tile/checkbutton.rb +13 -0
- data/spec/ffi-tk/tile/combobox.rb +65 -0
- data/spec/ffi-tk/tile/entry.rb +61 -0
- data/spec/ffi-tk/tile/frame.rb +65 -0
- data/spec/ffi-tk/tile/label.rb +17 -0
- data/spec/ffi-tk/tile/labelframe.rb +13 -0
- data/spec/ffi-tk/tile/menubutton.rb +13 -0
- data/spec/ffi-tk/tile/notebook.rb +103 -0
- data/spec/ffi-tk/tile/panedwindow.rb +13 -0
- data/spec/ffi-tk/tile/progressbar.rb +78 -0
- data/spec/ffi-tk/tile/radiobutton.rb +13 -0
- data/spec/ffi-tk/tile/scale.rb +13 -0
- data/spec/ffi-tk/tile/scrollbar.rb +43 -0
- data/spec/ffi-tk/tile/separator.rb +22 -0
- data/spec/ffi-tk/tile/sizegrip.rb +13 -0
- data/spec/ffi-tk/tile/style.rb +161 -0
- data/spec/ffi-tk/tile/treeview.rb +101 -0
- data/spec/ffi-tk/variable.rb +24 -0
- data/spec/ffi-tk/widget/button.rb +22 -0
- data/spec/ffi-tk/widget/canvas.rb +169 -0
- data/spec/ffi-tk/widget/checkbutton.rb +44 -0
- data/spec/ffi-tk/widget/entry.rb +155 -0
- data/spec/ffi-tk/widget/frame.rb +8 -0
- data/spec/ffi-tk/widget/label.rb +16 -0
- data/spec/ffi-tk/widget/labelframe.rb +12 -0
- data/spec/ffi-tk/widget/listbox.rb +19 -0
- data/spec/ffi-tk/widget/menu.rb +12 -0
- data/spec/ffi-tk/widget/menubutton.rb +12 -0
- data/spec/ffi-tk/widget/message.rb +12 -0
- data/spec/ffi-tk/widget/panedwindow.rb +12 -0
- data/spec/ffi-tk/widget/radiobutton.rb +12 -0
- data/spec/ffi-tk/widget/root.rb +9 -0
- data/spec/ffi-tk/widget/scale.rb +12 -0
- data/spec/ffi-tk/widget/scrollbar.rb +12 -0
- data/spec/ffi-tk/widget/spinbox.rb +12 -0
- data/spec/ffi-tk/widget/text.rb +246 -0
- data/spec/ffi-tk/widget/toplevel.rb +12 -0
- data/spec/helper.rb +3 -0
- data/tasks/authors.rake +21 -0
- data/tasks/bacon.rake +66 -0
- data/tasks/changelog.rake +18 -0
- data/tasks/gem.rake +22 -0
- data/tasks/gem_setup.rake +113 -0
- data/tasks/grancher.rake +12 -0
- data/tasks/manifest.rake +4 -0
- data/tasks/rcov.rake +17 -0
- data/tasks/release.rake +65 -0
- data/tasks/reversion.rake +8 -0
- data/tasks/setup.rake +12 -0
- data/tasks/ycov.rake +84 -0
- metadata +261 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
module Tk
|
|
2
|
+
@library = Variable.new('tk_library')
|
|
3
|
+
|
|
4
|
+
@version = Variable.new('tk_version')
|
|
5
|
+
@patchlevel = Variable.new('tk_patchLevel')
|
|
6
|
+
|
|
7
|
+
@strict_motif = Variable.new('tk_strictMotif')
|
|
8
|
+
|
|
9
|
+
@text_redraw = Variable.new('tk_textRedraw')
|
|
10
|
+
@text_relayout = Variable.new('tk_textRelayout')
|
|
11
|
+
|
|
12
|
+
module_function
|
|
13
|
+
|
|
14
|
+
# This variable holds the file name for a directory containing a library of
|
|
15
|
+
# Tcl scripts related to Tk.
|
|
16
|
+
# These scripts include an initialization file that is normally processed
|
|
17
|
+
# whenever a Tk application starts up, plus other files containing procedures
|
|
18
|
+
# that implement default behaviors for widgets.
|
|
19
|
+
# The initial value of tcl_library is set when Tk is added to an interpreter;
|
|
20
|
+
# this is done by searching several different directories until one is found
|
|
21
|
+
# that contains an appropriate Tk startup script.
|
|
22
|
+
# If the TK_LIBRARY environment variable exists, then the directory it names
|
|
23
|
+
# is checked first.
|
|
24
|
+
# If TK_LIBRARY is not set or does not refer to an appropriate directory, then
|
|
25
|
+
# Tk checks several other directories based on a compiled-in default location,
|
|
26
|
+
# the location of the Tcl library directory, the location of the binary
|
|
27
|
+
# containing the application, and the current working directory.
|
|
28
|
+
# The variable can be modified by an application to switch to a different
|
|
29
|
+
# library.
|
|
30
|
+
def library
|
|
31
|
+
@library.to_s
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def library=(new_library)
|
|
35
|
+
@library.set(new_library.to_s)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Contains a decimal integer giving the current patch level for Tk.
|
|
39
|
+
# The patch level is incremented for each new release or patch, and it
|
|
40
|
+
# uniquely identifies an official version of Tk.
|
|
41
|
+
def patchlevel
|
|
42
|
+
@patchlevel.to_s
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# This variable is set to zero by default.
|
|
46
|
+
# If an application sets it to one, then Tk attempts to adhere as closely as
|
|
47
|
+
# possible to Motif look-and-feel standards.
|
|
48
|
+
# For example, active elements such as buttons and scrollbar sliders will not
|
|
49
|
+
# change color when the pointer passes over them.
|
|
50
|
+
def strict_motif
|
|
51
|
+
@strict_motif.to_boolean
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def strict_motif=(new_value)
|
|
55
|
+
@strict_motif.set(new_value ? true : false)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# These variables are set by text widgets when they have debugging turned on.
|
|
59
|
+
# The values written to these variables can be used to test or debug text
|
|
60
|
+
# widget operations.
|
|
61
|
+
# These variables are mostly used by Tk's test suite.
|
|
62
|
+
def text_redraw
|
|
63
|
+
@text_redraw.get
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def text_relayout
|
|
67
|
+
@text_relayout.get
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# Tk sets this variable in the interpreter for each application.
|
|
71
|
+
# The variable holds the current version number of the Tk library in the form
|
|
72
|
+
# major.minor. Major and minor are integers.
|
|
73
|
+
# The major version number increases in any Tk release that includes changes
|
|
74
|
+
# that are not backward compatible (i.e.
|
|
75
|
+
# whenever existing Tk applications and scripts may have to change to work
|
|
76
|
+
# with the new release).
|
|
77
|
+
# The minor version number increases with each new release of Tk, except that
|
|
78
|
+
# it resets to zero whenever the major version number changes.
|
|
79
|
+
def version
|
|
80
|
+
@version.to_s
|
|
81
|
+
end
|
|
82
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module Tk
|
|
2
|
+
# Wait for variable to change or window to be destroyed
|
|
3
|
+
#
|
|
4
|
+
# This module provides blocking calls that wait for one of several things to
|
|
5
|
+
# happen, then return without taking any other actions.
|
|
6
|
+
#
|
|
7
|
+
# The tkwait command waits for one of several things to happen, then it
|
|
8
|
+
# returns without taking any other actions.
|
|
9
|
+
# The return value is always nil.
|
|
10
|
+
#
|
|
11
|
+
# While the methods are waiting, events are processed in the normal fashion,
|
|
12
|
+
# so the application will continue to respond to user interactions.
|
|
13
|
+
# If an event handler invokes [Wait] methods again, the nested call must
|
|
14
|
+
# complete before the outer call can complete.
|
|
15
|
+
module Wait
|
|
16
|
+
module_function
|
|
17
|
+
|
|
18
|
+
# Waits for the variable called +name+ to be modified.
|
|
19
|
+
def variable(name)
|
|
20
|
+
Tk.execute_only(:tkwait, :variable, name)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Takes the +name+ of a window and waits for a change in its visibility
|
|
24
|
+
# state (as indicated by the arrival of a VisibilityNotify event).
|
|
25
|
+
# Typically used to wait for a newly-created window to appear on the screen
|
|
26
|
+
# before taking some action.
|
|
27
|
+
def visibility(name)
|
|
28
|
+
Tk.execute_only(:tkwait, :visibility, name)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# This method takes the name of a window as argument and waits until the
|
|
32
|
+
# window is destroyed.
|
|
33
|
+
# It is typically used to wait for a user to finish interacting with a
|
|
34
|
+
# dialog box before using the result of that interaction.
|
|
35
|
+
def window(name)
|
|
36
|
+
Tk.execute_only(:tkwait, :window, name)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,668 @@
|
|
|
1
|
+
module Tk
|
|
2
|
+
module Winfo
|
|
3
|
+
# @see Winfo.atom
|
|
4
|
+
def winfo_atom(name)
|
|
5
|
+
Winfo.atom(name, self)
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
# @see Winfo.atomname
|
|
9
|
+
def winfo_atomname(id)
|
|
10
|
+
Winfo.atomname(id, self)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# @see Winfo.cells
|
|
14
|
+
def winfo_cells
|
|
15
|
+
Winfo.cells(self)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# @see Winfo.children
|
|
19
|
+
def winfo_children
|
|
20
|
+
Winfo.children(self)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# @see Winfo.class_name
|
|
24
|
+
def winfo_class
|
|
25
|
+
Winfo.class_name(self)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# @see Winfo.colormapfull
|
|
29
|
+
def winfo_colormapfull
|
|
30
|
+
Winfo.colormapfull(self)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# @see Winfo.containing
|
|
34
|
+
def winfo_containing(root_x, root_y)
|
|
35
|
+
Winfo.containing(root_x, root_y, self)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# @see Winfo.depth
|
|
39
|
+
def winfo_depth
|
|
40
|
+
Winfo.depth(self)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# @see Winfo.exists
|
|
44
|
+
def winfo_exists
|
|
45
|
+
Winfo.exists(self)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# @see Winfo.fpixels
|
|
49
|
+
def winfo_fpixels(number)
|
|
50
|
+
Winfo.fpixels(self, number)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# @see Winfo.geometry
|
|
54
|
+
def winfo_geometry
|
|
55
|
+
Winfo.geometry(self)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# @see Winfo.height
|
|
59
|
+
def winfo_height
|
|
60
|
+
Winfo.height(self)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# @see Winfo.id
|
|
64
|
+
def winfo_id
|
|
65
|
+
Winfo.id(self)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# @see Winfo.interps
|
|
69
|
+
def winfo_interps
|
|
70
|
+
Winfo.interps(self)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# @see Winfo.ismapped
|
|
74
|
+
def winfo_ismapped
|
|
75
|
+
Winfo.ismapped(self)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# @see Winfo.manager
|
|
79
|
+
def winfo_manager
|
|
80
|
+
Winfo.manager(self)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# @see Winfo.name
|
|
84
|
+
def winfo_name
|
|
85
|
+
Winfo.name(self)
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# @see Winfo.parent
|
|
89
|
+
def winfo_parent
|
|
90
|
+
Winfo.parent(self)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# @see Winfo.pathname
|
|
94
|
+
def winfo_pathname(id)
|
|
95
|
+
Winfo.pathname(id, self)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# @see Winfo.pixels
|
|
99
|
+
def winfo_pixels(number)
|
|
100
|
+
Winfo.pixels(self, number)
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# @see Winfo.pointerx
|
|
104
|
+
def winfo_pointerx
|
|
105
|
+
Winfo.pointerx(self)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# @see Winfo.pointerxy
|
|
109
|
+
def winfo_pointerxy
|
|
110
|
+
Winfo.pointerxy(self)
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
# @see Winfo.pointery
|
|
114
|
+
def winfo_pointery
|
|
115
|
+
Winfo.pointery(self)
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
# @see Winfo.reqheight
|
|
119
|
+
def winfo_reqheight
|
|
120
|
+
Winfo.reqheight(self)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# @see Winfo.reqwidth
|
|
124
|
+
def winfo_reqwidth
|
|
125
|
+
Winfo.reqwidth(self)
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# @see Winfo.rgb
|
|
129
|
+
def winfo_rgb(color)
|
|
130
|
+
Winfo.rgb(self, color)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# @see Winfo.rootx
|
|
134
|
+
def winfo_rootx
|
|
135
|
+
Winfo.rootx(self)
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
# @see Winfo.rooty
|
|
139
|
+
def winfo_rooty
|
|
140
|
+
Winfo.rooty(self)
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
# @see Winfo.screen
|
|
144
|
+
def winfo_screen
|
|
145
|
+
Winfo.screen(self)
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
# @see Winfo.screencells
|
|
149
|
+
def winfo_screencells
|
|
150
|
+
Winfo.screencells(self)
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
# @see Winfo.screendepth
|
|
154
|
+
def winfo_screendepth
|
|
155
|
+
Winfo.screendepth(self)
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
# @see Winfo.screenheight
|
|
159
|
+
def winfo_screenheight
|
|
160
|
+
Winfo.screenheight(self)
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
# @see Winfo.screenmmheight
|
|
164
|
+
def winfo_screenmmheight
|
|
165
|
+
Winfo.screenmmheight(self)
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
# @see Winfo.screenmmwidth
|
|
169
|
+
def winfo_screenmmwidth
|
|
170
|
+
Winfo.screenmmwidth(self)
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
# @see Winfo.screenvisual
|
|
174
|
+
def winfo_screenvisual
|
|
175
|
+
Winfo.screenvisual(self)
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
# @see Winfo.screenwidth
|
|
179
|
+
def winfo_screenwidth
|
|
180
|
+
Winfo.screenwidth(self)
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
# @see Winfo.server
|
|
184
|
+
def winfo_server
|
|
185
|
+
Winfo.server(self)
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
# @see Winfo.toplevel
|
|
189
|
+
def winfo_toplevel
|
|
190
|
+
Winfo.toplevel(self)
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
# @see Winfo.viewable
|
|
194
|
+
def winfo_viewable
|
|
195
|
+
Winfo.viewable(self)
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
# @see Winfo.visual
|
|
199
|
+
def winfo_visual
|
|
200
|
+
Winfo.visual(self)
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
# @see Winfo.visualid
|
|
204
|
+
def winfo_visualid
|
|
205
|
+
Winfo.visualid(self)
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
# @see Winfo.visualsavailable
|
|
209
|
+
def winfo_visualsavailable(includeids = None)
|
|
210
|
+
Winfo.visualsavailable(self, includeids)
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
# @see Winfo.vrootheight
|
|
214
|
+
def winfo_vrootheight
|
|
215
|
+
Winfo.vrootheight(self)
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
# @see Winfo.vrootwidth
|
|
219
|
+
def winfo_vrootwidth
|
|
220
|
+
Winfo.vrootwidth(self)
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
# @see Winfo.vrootx
|
|
224
|
+
def winfo_vrootx
|
|
225
|
+
Winfo.vrootx(self)
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
# @see Winfo.vrooty
|
|
229
|
+
def winfo_vrooty
|
|
230
|
+
Winfo.vrooty(self)
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
# @see Winfo.width
|
|
234
|
+
def winfo_width
|
|
235
|
+
Winfo.width(self)
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
# @see Winfo.x
|
|
239
|
+
def winfo_x
|
|
240
|
+
Winfo.x(self)
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
# @see Winfo.y
|
|
244
|
+
def winfo_y
|
|
245
|
+
Winfo.y(self)
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
module_function
|
|
249
|
+
|
|
250
|
+
# Returns a decimal string giving the integer identifier for the atom whose
|
|
251
|
+
# name is +name+.
|
|
252
|
+
# If no atom exists with the +name+ then a new one is created.
|
|
253
|
+
# If +window+ is given then the atom is looked up on the
|
|
254
|
+
# display of +window+; otherwise it is looked up on the display of the
|
|
255
|
+
# application's main window.
|
|
256
|
+
def atom(name, window = None)
|
|
257
|
+
if None == window
|
|
258
|
+
Tk.execute(:winfo, :atom, name)
|
|
259
|
+
else
|
|
260
|
+
Tk.execute(:winfo, :atom, '-displayof', window, name)
|
|
261
|
+
end
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
# Returns the textual name for the atom whose integer identifier is +id+.
|
|
265
|
+
# If +window+ is given then the identifier is looked up on the
|
|
266
|
+
# display of +window+; otherwise it is looked up on the display of the
|
|
267
|
+
# application's main window.
|
|
268
|
+
# This command is the inverse of the [atom] method.
|
|
269
|
+
# It generates an error if no such atom exists.
|
|
270
|
+
def atomname(id, window = None)
|
|
271
|
+
if None == window
|
|
272
|
+
Tk.execute(:winfo, :atomname, id).to_s
|
|
273
|
+
else
|
|
274
|
+
Tk.execute(:winfo, :atomname, '-displayof', window, id).to_s
|
|
275
|
+
end
|
|
276
|
+
end
|
|
277
|
+
|
|
278
|
+
# Returns a decimal string giving the number of cells in the color map for
|
|
279
|
+
# window.
|
|
280
|
+
def cells(window)
|
|
281
|
+
Tk.execute(:winfo, :cells, window)
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
# Returns a list containing the path names of all the children of window.
|
|
285
|
+
# Top-level windows are returned as children of their logical parents.
|
|
286
|
+
# The list is in stacking order, with the lowest window first, except for
|
|
287
|
+
# Top-level windows which are not returned in stacking order.
|
|
288
|
+
# Use the wm stackorder command to query the stacking order of Top-level
|
|
289
|
+
# windows.
|
|
290
|
+
def children(window)
|
|
291
|
+
Tk.execute(:winfo, :children, window).to_a
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
# Returns the class name for window.
|
|
295
|
+
#
|
|
296
|
+
# Note: this shadows the class method, so we call it class_name.
|
|
297
|
+
def class_name(window)
|
|
298
|
+
Tk.execute(:winfo, :class, window).to_s
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
# Returns true if the colormap for window is known to be full, false
|
|
302
|
+
# otherwise.
|
|
303
|
+
# The colormap for a window is "known" to be full if the last attempt to
|
|
304
|
+
# allocate a new color on that window failed and this application has not
|
|
305
|
+
# freed any colors in the colormap since the failed allocation.
|
|
306
|
+
def colormapfull(window)
|
|
307
|
+
Tk.execute(:winfo, :colormapfull, window).to_boolean
|
|
308
|
+
end
|
|
309
|
+
|
|
310
|
+
# Returns the path name for the window containing the point given by
|
|
311
|
+
# +root_x+ and +root_y+.
|
|
312
|
+
# +root_x+ and +root_y+ are specified in screen units (i.e. any form
|
|
313
|
+
# acceptable to Tk_GetPixels) in the coordinate system of the root
|
|
314
|
+
# window (if a virtual-root window manager is in use then the coordinate
|
|
315
|
+
# system of the virtual root window is used).
|
|
316
|
+
# If +window+ is given then the coordinates refer to the screen containing
|
|
317
|
+
# window; otherwise they refer to the screen of the application's main
|
|
318
|
+
# window.
|
|
319
|
+
# If no window in this application contains the point then nil is returned.
|
|
320
|
+
# In selecting the containing window, children are given higher priority
|
|
321
|
+
# than parents and among siblings the highest one in the stacking order is
|
|
322
|
+
# chosen.
|
|
323
|
+
def containing(root_x, root_y, window = None)
|
|
324
|
+
if None == window
|
|
325
|
+
Tk.execute(:winfo, :containing, root_x, root_y).to_s?
|
|
326
|
+
else
|
|
327
|
+
Tk.execute(:winfo, :containing, '-displayof', window, root_x, root_y).to_s?
|
|
328
|
+
end
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
# Returns a decimal string giving the depth of window (number of bits per
|
|
332
|
+
# pixel).
|
|
333
|
+
def depth(window)
|
|
334
|
+
Tk.execute(:winfo, :depth, window)
|
|
335
|
+
end
|
|
336
|
+
|
|
337
|
+
# Returns true if there exists a window named window, false if no such
|
|
338
|
+
# window exists.
|
|
339
|
+
def exists(window)
|
|
340
|
+
Tk.execute(:winfo, :exists, window).to_boolean
|
|
341
|
+
end
|
|
342
|
+
|
|
343
|
+
# Returns a floating-point value giving the number of pixels in window
|
|
344
|
+
# corresponding to the distance given by number.
|
|
345
|
+
# Number may be specified in any of the forms acceptable to Tk_GetScreenMM,
|
|
346
|
+
# such as "2.0c" or "1i".
|
|
347
|
+
# The return value may be fractional; for an integer value, use winfo
|
|
348
|
+
# pixels.
|
|
349
|
+
def fpixels(window, number)
|
|
350
|
+
Tk.execute(:winfo, :fpixels, window, number)
|
|
351
|
+
end
|
|
352
|
+
|
|
353
|
+
# Returns the geometry for window, in the form widthxheight+x+y.
|
|
354
|
+
# All dimensions are in pixels.
|
|
355
|
+
def geometry(window)
|
|
356
|
+
TkGeometry.new(Tk.execute(:winfo, :geometry, window))
|
|
357
|
+
end
|
|
358
|
+
|
|
359
|
+
# Returns a decimal string giving window's height in pixels.
|
|
360
|
+
# When a window is first created its height will be 1 pixel; the height
|
|
361
|
+
# will eventually be changed by a geometry manager to fulfill the window's
|
|
362
|
+
# needs. If you need the true height immediately after creating a widget,
|
|
363
|
+
# invoke update to force the geometry manager to arrange it, or use winfo
|
|
364
|
+
# reqheight to get the window's requested height instead of its actual
|
|
365
|
+
# height.
|
|
366
|
+
def height(window)
|
|
367
|
+
Tk.execute(:winfo, :height, window)
|
|
368
|
+
end
|
|
369
|
+
|
|
370
|
+
# Returns a hexadecimal string giving a low-level platform-specific
|
|
371
|
+
# identifier for window.
|
|
372
|
+
# On Unix platforms, this is the X window identifier.
|
|
373
|
+
# Under Windows, this is the Windows HWND.
|
|
374
|
+
# On the Macintosh the value has no meaning outside Tk.
|
|
375
|
+
def id(window)
|
|
376
|
+
Tk.execute(:winfo, :id, window).to_s
|
|
377
|
+
end
|
|
378
|
+
|
|
379
|
+
# Returns a list whose members are the names of all Tcl interpreters (e.g.
|
|
380
|
+
# all Tk-based applications) currently registered for a particular display.
|
|
381
|
+
# If the -displayof option is given then the return value refers to the
|
|
382
|
+
# display of window; otherwise it refers to the display of the
|
|
383
|
+
# application's main window.
|
|
384
|
+
def interps(window = None)
|
|
385
|
+
if None == window
|
|
386
|
+
Tk.execute(:winfo, :interps).to_a
|
|
387
|
+
else
|
|
388
|
+
Tk.execute(:winfo, :interps, '-displayof', window).to_a
|
|
389
|
+
end
|
|
390
|
+
end
|
|
391
|
+
|
|
392
|
+
# Returns true if window is currently mapped, false otherwise.
|
|
393
|
+
def ismapped(window)
|
|
394
|
+
Tk.execute(:winfo, :ismapped, window).to_boolean
|
|
395
|
+
end
|
|
396
|
+
|
|
397
|
+
# Returns the name of the geometry manager currently responsible for
|
|
398
|
+
# window, or an empty string if window is not managed by any geometry
|
|
399
|
+
# manager. The name is usually the name of the Tcl command for the geometry
|
|
400
|
+
# manager, such as pack or place.
|
|
401
|
+
# If the geometry manager is a widget, such as canvases or text, the name
|
|
402
|
+
# is the widget's class command, such as canvas.
|
|
403
|
+
def manager(window)
|
|
404
|
+
Tk.execute(:winfo, :manager, window).to_s?
|
|
405
|
+
end
|
|
406
|
+
|
|
407
|
+
# Returns window's name (i.e. its name within its parent, as opposed to its
|
|
408
|
+
# full path name).
|
|
409
|
+
# `Winfo.name('.')` will return the name of the application.
|
|
410
|
+
def name(window)
|
|
411
|
+
Tk.execute(:winfo, :name, window).to_s
|
|
412
|
+
end
|
|
413
|
+
|
|
414
|
+
# Returns the path name of +window+'s parent, or nil if +window+ is the main
|
|
415
|
+
# window of the application.
|
|
416
|
+
def parent(window)
|
|
417
|
+
Tk.execute(:winfo, :parent, window).to_s?
|
|
418
|
+
end
|
|
419
|
+
|
|
420
|
+
# Returns the path name of the window whose X identifier is +id+.
|
|
421
|
+
# +id+ must be a decimal, hexadecimal, or octal integer and must correspond
|
|
422
|
+
# to a window in the invoking application.
|
|
423
|
+
# If +window+ is given then the identifier is looked up on
|
|
424
|
+
# the display of window; otherwise it is looked up on the display of the
|
|
425
|
+
# application's main window.
|
|
426
|
+
def pathname(id, window = None)
|
|
427
|
+
if None == window
|
|
428
|
+
Tk.execute(:winfo, :pathname, id).to_s
|
|
429
|
+
else
|
|
430
|
+
Tk.execute(:winfo, :pathname, '-displayo', window, id).to_s
|
|
431
|
+
end
|
|
432
|
+
end
|
|
433
|
+
|
|
434
|
+
# Returns the number of pixels in window corresponding to the distance
|
|
435
|
+
# given by number.
|
|
436
|
+
# Number may be specified in any of the forms acceptable to Tk_GetPixels,
|
|
437
|
+
# such as “2.0c” or “1i”.
|
|
438
|
+
# The result is rounded to the nearest integer value; for a fractional
|
|
439
|
+
# result, use winfo fpixels.
|
|
440
|
+
def pixels(window, number)
|
|
441
|
+
Tk.execute(:winfo, :pixels, window, number).to_i
|
|
442
|
+
end
|
|
443
|
+
|
|
444
|
+
# If the mouse pointer is on the same screen as window, returns the
|
|
445
|
+
# pointer's x coordinate, measured in pixels in the screen's root window.
|
|
446
|
+
# If a virtual root window is in use on the screen, the position is
|
|
447
|
+
# measured in the virtual root.
|
|
448
|
+
# If the mouse pointer is not on the same screen as window then -1 is
|
|
449
|
+
# returned.
|
|
450
|
+
def pointerx(window)
|
|
451
|
+
Tk.execute(:winfo, :pointerx, window).to_i
|
|
452
|
+
end
|
|
453
|
+
|
|
454
|
+
# If the mouse pointer is on the same screen as window, returns a list with
|
|
455
|
+
# two elements, which are the pointer's x and y coordinates measured in
|
|
456
|
+
# pixels in the screen's root window.
|
|
457
|
+
# If a virtual root window is in use on the screen, the position is
|
|
458
|
+
# computed in the virtual root.
|
|
459
|
+
# If the mouse pointer is not on the same screen as window then both of the
|
|
460
|
+
# returned coordinates are -1.
|
|
461
|
+
def pointerxy(window)
|
|
462
|
+
Tk.execute(:winfo, :pointerxy, window).to_a(&:to_i)
|
|
463
|
+
end
|
|
464
|
+
|
|
465
|
+
# If the mouse pointer is on the same screen as window, returns the
|
|
466
|
+
# pointer's y coordinate, measured in pixels in the screen's root window.
|
|
467
|
+
# If a virtual root window is in use on the screen, the position is
|
|
468
|
+
# computed in the virtual root.
|
|
469
|
+
# If the mouse pointer is not on the same screen as window then -1 is
|
|
470
|
+
# returned.
|
|
471
|
+
def pointery(window)
|
|
472
|
+
Tk.execute(:winfo, :pointery, window).to_i
|
|
473
|
+
end
|
|
474
|
+
|
|
475
|
+
# Returns a decimal string giving window's requested height, in pixels.
|
|
476
|
+
# This is the value used by window's geometry manager to compute its
|
|
477
|
+
# geometry.
|
|
478
|
+
def reqheight(window)
|
|
479
|
+
Tk.execute(:winfo, :reqheight, window)
|
|
480
|
+
end
|
|
481
|
+
|
|
482
|
+
# Returns a decimal string giving window's requested width, in pixels.
|
|
483
|
+
# This is the value used by window's geometry manager to compute its
|
|
484
|
+
# geometry.
|
|
485
|
+
def reqwidth(window)
|
|
486
|
+
Tk.execute(:winfo, :reqwidth, window)
|
|
487
|
+
end
|
|
488
|
+
|
|
489
|
+
# Returns a list containing three decimal values in the range 0 to 65535,
|
|
490
|
+
# which are the red, green, and blue intensities that correspond to color
|
|
491
|
+
# in the window given by window.
|
|
492
|
+
# Color may be specified in any of the forms acceptable for a color option.
|
|
493
|
+
def rgb(window, color)
|
|
494
|
+
Tk.execute(:winfo, :rgb, window, color).to_a(&:to_i)
|
|
495
|
+
end
|
|
496
|
+
|
|
497
|
+
# Returns a decimal string giving the x-coordinate, in the root window of
|
|
498
|
+
# the screen, of the upper-left corner of window's border (or window if it
|
|
499
|
+
# has no border).
|
|
500
|
+
def rootx(window)
|
|
501
|
+
Tk.execute(:winfo, :rootx, window)
|
|
502
|
+
end
|
|
503
|
+
|
|
504
|
+
# Returns a decimal string giving the y-coordinate, in the root window of
|
|
505
|
+
# the screen, of the upper-left corner of window's border (or window if it
|
|
506
|
+
# has no border).
|
|
507
|
+
def rooty(window)
|
|
508
|
+
Tk.execute(:winfo, :rooty, window)
|
|
509
|
+
end
|
|
510
|
+
|
|
511
|
+
# Returns the name of the screen associated with window, in the form
|
|
512
|
+
# displayName.screenIndex.
|
|
513
|
+
def screen(window)
|
|
514
|
+
Tk.execute(:winfo, :screen, window)
|
|
515
|
+
end
|
|
516
|
+
|
|
517
|
+
# Returns a decimal string giving the number of cells in the default color
|
|
518
|
+
# map for window's screen.
|
|
519
|
+
def screencells(window)
|
|
520
|
+
Tk.execute(:winfo, :screencells, window)
|
|
521
|
+
end
|
|
522
|
+
|
|
523
|
+
# Returns a decimal string giving the depth of the root window of window's
|
|
524
|
+
# screen (number of bits per pixel).
|
|
525
|
+
def screendepth(window)
|
|
526
|
+
Tk.execute(:winfo, :screendepth, window)
|
|
527
|
+
end
|
|
528
|
+
|
|
529
|
+
# Returns a decimal string giving the height of window's screen, in pixels.
|
|
530
|
+
def screenheight(window)
|
|
531
|
+
Tk.execute(:winfo, :screenheight, window)
|
|
532
|
+
end
|
|
533
|
+
|
|
534
|
+
# Returns a decimal string giving the height of window's screen, in
|
|
535
|
+
# millimeters.
|
|
536
|
+
def screenmmheight(window)
|
|
537
|
+
Tk.execute(:winfo, :screenmmheight, window)
|
|
538
|
+
end
|
|
539
|
+
|
|
540
|
+
# Returns a decimal string giving the width of window's screen, in
|
|
541
|
+
# millimeters.
|
|
542
|
+
def screenmmwidth(window)
|
|
543
|
+
Tk.execute(:winfo, :screenmmwidth, window)
|
|
544
|
+
end
|
|
545
|
+
|
|
546
|
+
# Returns one of the following strings to indicate the default visual class
|
|
547
|
+
# for window's screen: directcolor, grayscale, pseudocolor, staticcolor,
|
|
548
|
+
# staticgray, or truecolor.
|
|
549
|
+
def screenvisual(window)
|
|
550
|
+
Tk.execute(:winfo, :screenvisual, window).to_sym
|
|
551
|
+
end
|
|
552
|
+
|
|
553
|
+
# Returns a decimal string giving the width of window's screen, in pixels.
|
|
554
|
+
def screenwidth(window)
|
|
555
|
+
Tk.execute(:winfo, :screenwidth, window)
|
|
556
|
+
end
|
|
557
|
+
|
|
558
|
+
# Returns a string containing information about the server for window's
|
|
559
|
+
# display. The exact format of this string may vary from platform to
|
|
560
|
+
# platform. For X servers the string has the form:
|
|
561
|
+
# "XmajorRminor vendor vendorVersion"
|
|
562
|
+
# where major and minor are the version and revision numbers provided by the
|
|
563
|
+
# server (e.g., X11R5), vendor is the name of the vendor for the server, and
|
|
564
|
+
# vendorRelease is an integer release number provided by the server.
|
|
565
|
+
def server(window)
|
|
566
|
+
Tk.execute(:winfo, :server, window)
|
|
567
|
+
end
|
|
568
|
+
|
|
569
|
+
# Returns the path name of the top-of-hierarchy window containing window.
|
|
570
|
+
# In standard Tk this will always be a toplevel widget, but extensions may
|
|
571
|
+
# create other kinds of top-of-hierarchy widgets.
|
|
572
|
+
def toplevel(window)
|
|
573
|
+
Tk.execute(:winfo, :toplevel, window).to_s
|
|
574
|
+
end
|
|
575
|
+
|
|
576
|
+
# Returns true if window and all of its ancestors up through the nearest
|
|
577
|
+
# toplevel window are mapped.
|
|
578
|
+
# Returns false if any of these windows are not mapped.
|
|
579
|
+
def viewable(window)
|
|
580
|
+
Tk.execute(:winfo, :viewable, window).to_boolean
|
|
581
|
+
end
|
|
582
|
+
|
|
583
|
+
# Returns one of the following strings to indicate the visual class for
|
|
584
|
+
# window:
|
|
585
|
+
# :directcolor, :grayscale, :pseudocolor, :staticcolor, :staticgray,
|
|
586
|
+
# :truecolor
|
|
587
|
+
def visual(window)
|
|
588
|
+
Tk.execute(:winfo, :visual, window).to_sym
|
|
589
|
+
end
|
|
590
|
+
|
|
591
|
+
# Returns the X identifier for the visual for window.
|
|
592
|
+
def visualid(window)
|
|
593
|
+
Tk.execute(:winfo, :visualid, window).to_s
|
|
594
|
+
end
|
|
595
|
+
|
|
596
|
+
# Returns a list whose elements describe the visuals available for window's
|
|
597
|
+
# screen. Each element consists of a visual class followed by an integer
|
|
598
|
+
# depth. The class has the same form as returned by winfo visual.
|
|
599
|
+
# The depth gives the number of bits per pixel in the visual.
|
|
600
|
+
# In addition, if the includeids argument is provided, then the depth is
|
|
601
|
+
# followed by the X identifier for the visual.
|
|
602
|
+
def visualsavailable(window, includeids = None)
|
|
603
|
+
if None == includeids
|
|
604
|
+
list = Tk.execute(:winfo, :visualsavailable, window).to_a
|
|
605
|
+
list.uniq.map{|string|
|
|
606
|
+
klass, depth = string.split
|
|
607
|
+
[klass, depth.to_i]
|
|
608
|
+
}
|
|
609
|
+
else
|
|
610
|
+
list = Tk.execute(:winfo, :visualsavailable, window, :includeids).to_a
|
|
611
|
+
list.uniq.map{|string|
|
|
612
|
+
klass, depth, id = string.split
|
|
613
|
+
[klass, depth.to_i, id]
|
|
614
|
+
}
|
|
615
|
+
end
|
|
616
|
+
end
|
|
617
|
+
|
|
618
|
+
# Returns the height of the virtual root window associated with window if
|
|
619
|
+
# there is one; otherwise returns the height of window's screen.
|
|
620
|
+
def vrootheight(window)
|
|
621
|
+
Tk.execute(:winfo, :vrootheight, window)
|
|
622
|
+
end
|
|
623
|
+
|
|
624
|
+
# Returns the width of the virtual root window associated with window if
|
|
625
|
+
# there is one; otherwise returns the width of window's screen.
|
|
626
|
+
def vrootwidth(window)
|
|
627
|
+
Tk.execute(:winfo, :vrootwidth, window)
|
|
628
|
+
end
|
|
629
|
+
|
|
630
|
+
# Returns the x-offset of the virtual root window associated with window,
|
|
631
|
+
# relative to the root window of its screen.
|
|
632
|
+
# This is normally either zero or negative.
|
|
633
|
+
# Returns 0 if there is no virtual root window for window.
|
|
634
|
+
def vrootx(window)
|
|
635
|
+
Tk.execute(:winfo, :vrootx, window)
|
|
636
|
+
end
|
|
637
|
+
|
|
638
|
+
# Returns the y-offset of the virtual root window associated with window,
|
|
639
|
+
# relative to the root window of its screen.
|
|
640
|
+
# This is normally either zero or negative.
|
|
641
|
+
# Returns 0 if there is no virtual root window for window.
|
|
642
|
+
def vrooty(window)
|
|
643
|
+
Tk.execute(:winfo, :vrooty, window)
|
|
644
|
+
end
|
|
645
|
+
|
|
646
|
+
# Returns a decimal string giving window's width in pixels.
|
|
647
|
+
# When a window is first created its width will be 1 pixel; the width will
|
|
648
|
+
# eventually be changed by a geometry manager to fulfill the window's
|
|
649
|
+
# needs. If you need the true width immediately after creating a widget,
|
|
650
|
+
# invoke update to force the geometry manager to arrange it, or use winfo
|
|
651
|
+
# reqwidth to get the window's requested width instead of its actual width.
|
|
652
|
+
def width(window)
|
|
653
|
+
Tk.execute(:winfo, :width, window)
|
|
654
|
+
end
|
|
655
|
+
|
|
656
|
+
# Returns a decimal string giving the x-coordinate, in window's parent, of
|
|
657
|
+
# the upper-left corner of window's border (or window if it has no border).
|
|
658
|
+
def x(window)
|
|
659
|
+
Tk.execute(:winfo, :x, window)
|
|
660
|
+
end
|
|
661
|
+
|
|
662
|
+
# Returns a decimal string giving the y-coordinate, in window's parent, of
|
|
663
|
+
# the upper-left corner of window's border (or window if it has no border).
|
|
664
|
+
def y(window)
|
|
665
|
+
Tk.execute(:winfo, :y, window)
|
|
666
|
+
end
|
|
667
|
+
end
|
|
668
|
+
end
|