# # tk.rb - Tk interface for ruby # $Date: 1995/11/03 08:17:15 $ # by Yukihiro Matsumoto if defined? Thread and $tk_thread_safe require "tkthcore" else require "tkcore" end module TkSelection include Tk extend Tk def clear(win=Tk.root) tk_call 'selection', 'clear', win.path end def get(type=None) tk_call 'selection', 'get', type end def TkSelection.handle(win, func, type=None, format=None) id = install_cmd(func) tk_call 'selection', 'handle', win.path, id, type, format end def handle(func, type=None, format=None) TkSelection.handle self, func, type, format end def TkSelection.own(win, func=None) id = install_cmd(func) tk_call 'selection', 'own', win.path, id end def own(func=None) TkSelection.own self, func end module_function :clear, :get end module TkWinfo include Tk extend Tk def TkWinfo.atom(name) tk_call 'winfo', name end def winfo_atom(name) TkWinfo.atom name end def TkWinfo.atomname(id) tk_call 'winfo', id end def winfo_atomname(id) TkWinfo.atomname id end def TkWinfo.cells(window) number(tk_call('winfo', window.path)) end def winfo_cells TkWinfo.cells self end def TkWinfo.children(window) c = tk_call('winfo', 'children', window.path) list(c) end def winfo_children TkWinfo.children self end def TkWinfo.classname(window) tk_call 'winfo', 'class', window.path end def winfo_classname TkWinfo.classname self end def TkWinfo.containing(rootX, rootY) path = tk_call('winfo', 'class', window.path) window(path) end def winfo_containing(x, y) TkWinfo.containing x, y end def TkWinfo.depth(window) number(tk_call('winfo', 'depth', window.path)) end def winfo_depth(window) TkWinfo.depth self end def TkWinfo.exist?(window) bool(tk_call('winfo', 'exists', window.path)) end def winfo_exist?(window) TkWinfo.exist? self end def TkWinfo.fpixels(window, number) number(tk_call('winfo', 'fpixels', window.path, number)) end def winfo_fpixels(window, number) TkWinfo.fpixels self end def TkWinfo.geometry(window) list(tk_call('winfo', 'geometry', window.path)) end def winfo_geometry(window) TkWinfo.geometry self end def TkWinfo.height(window) number(tk_call('winfo', 'height', window.path)) end def winfo_height(window) TkWinfo.height self end def TkWinfo.id(window) number(tk_call('winfo', 'id', window.path)) end def winfo_id(window) TkWinfo.id self end def TkWinfo.mapped?(window) bool(tk_call('winfo', 'ismapped', window.path)) end def winfo_mapped?(window) TkWinfo.mapped? self end def TkWinfo.parent(window) window(tk_call('winfo', 'parent', window.path)) end def winfo_parent(window) TkWinfo.parent self end def TkWinfo.widget(id) window(tk_call('winfo', 'pathname', id)) end def winfo_widget(id) TkWinfo.widget id end def TkWinfo.pixels(window, number) number(tk_call('winfo', 'pixels', window.path, number)) end def winfo_pixels(window, number) TkWinfo.pixels self, number end def TkWinfo.reqheight(window) number(tk_call('winfo', 'reqheight', window.path)) end def winfo_reqheight(window) TkWinfo.reqheight self end def TkWinfo.reqwidth(window) number(tk_call('winfo', 'reqwidth', window.path)) end def winfo_reqwidth(window) TkWinfo.reqwidth self end def TkWinfo.rgb(window, color) list(tk_call('winfo', 'rgb', window.path, color)) end def winfo_rgb(window, color) TkWinfo.rgb self, color end def TkWinfo.rootx(window) number(tk_call('winfo', 'rootx', window.path)) end def winfo_rootx(window) TkWinfo.rootx self end def TkWinfo.rooty(window) number(tk_call('winfo', 'rooty', window.path)) end def winfo_rooty(window) TkWinfo.rooty self end def TkWinfo.screen(window) tk_call 'winfo', 'screen', window.path end def winfo_screen(window) TkWinfo.screen self end def TkWinfo.screencells(window) number(tk_call('winfo', 'screencells', window.path)) end def winfo_screencells(window) TkWinfo.screencells self end def TkWinfo.screendepth(window) number(tk_call('winfo', 'screendepth', window.path)) end def winfo_screendepth(window) TkWinfo.screendepth self end def TkWinfo.screenheight (window) number(tk_call('winfo', 'screenheight', window.path)) end def winfo_screenheight(window) TkWinfo.screenheight self end def TkWinfo.screenmmheight(window) number(tk_call('winfo', 'screenmmheight', window.path)) end def winfo_screenmmheight(window) TkWinfo.screenmmheight self end def TkWinfo.screenmmwidth(window) number(tk_call('winfo', 'screenmmwidth', window.path)) end def winfo_screenmmwidth(window) TkWinfo.screenmmwidth self end def TkWinfo.screenvisual(window) tk_call 'winfo', 'screenvisual', window.path end def winfo_screenvisual(window) TkWinfo.screenvisual self end def TkWinfo.screenwidth(window) number(tk_call('winfo', 'screenwidth', window.path)) end def winfo_screenwidth(window) TkWinfo.screenwidth self end def TkWinfo.toplevel(window) window(tk_call('winfo', 'toplevel', window.path)) end def winfo_toplevel(window) TkWinfo.toplevel self end def TkWinfo.visual(window) tk_call 'winfo', 'visual', window.path end def winfo_visual(window) TkWinfo.visual self end def TkWinfo.vrootheigh(window) number(tk_call('winfo', 'vrootheight', window.path)) end def winfo_vrootheight(window) TkWinfo.vrootheight self end def TkWinfo.vrootwidth(window) number(tk_call('winfo', 'vrootwidth', window.path)) end def winfo_vrootwidth(window) TkWinfo.vrootwidth self end def TkWinfo.vrootx(window) number(tk_call('winfo', 'vrootx', window.path)) end def winfo_vrootx(window) TkWinfo.vrootx self end def TkWinfo.vrooty(window) number(tk_call('winfo', 'vrooty', window.path)) end def winfo_vrooty(window) TkWinfo.vrooty self end def TkWinfo.width(window) number(tk_call('winfo', 'width', window.path)) end def winfo_width(window) TkWinfo.width self end def TkWinfo.x(window) number(tk_call('winfo', 'x', window.path)) end def winfo_x(window) TkWinfo.x self end def TkWinfo.y(window) number(tk_call('winfo', 'y', window.path)) end def winfo_y(window) TkWinfo.y self end end module TkPack include Tk extend Tk def configure(win, *args) if args[-1].kind_of?(Hash) keys = args.pop end wins = [win.epath] for i in args wins.push i.epath end tk_call "pack", 'configure', *(wins+hash_kv(keys)) end def forget(*args) tk_call 'pack', 'forget' *args end def propagate(master, bool=None) bool(tk_call('pack', 'propagate', mastaer.epath, bool)) end module_function :configure, :forget, :propagate end module TkOption include Tk extend Tk def add pat, value, pri=None tk_call 'option', 'add', pat, value, pri end def clear tk_call 'option', 'clear' end def get win, classname, name tk_call 'option', 'get', classname, name end def readfile file, pri=None tk_call 'option', 'readfile', file, pri end module_function :add, :clear, :get, :readfile end class TkObject", @id end def to_a list(value) end end class TkWindow