File: tk/place.rb

Overview
Module Structure
Code

Overview

Module Structure

  module: <Toplevel Module>
  module: TkPlace#6
extends
  Tk   
includes
  Tk   
has properties
constant: TkCommandNames #10
function: configure / 3 #12
alias: place configure #30
function: configinfo / 2 #32
function: current_configinfo / 2 #62
function: forget / 1 #85
function: info / 1 #91
function: slaves / 1 #104

Code

   1  #
   2  # tk/place.rb : control place geometry manager
   3  #
   4  require 'tk'
   5 
   6  module TkPlace
   7    include Tk
   8    extend Tk
   9 
  10    TkCommandNames = ['place'.freeze].freeze
  11 
  12    def configure(win, slot, value=None)
  13      # for >= Tk8.4a2 ?
  14      # win = win.epath if win.kind_of?(TkObject)
  15      win = _epath(win)
  16      if slot.kind_of? Hash
  17        params = []
  18        slot.each{|k, v|
  19          params.push("-#{k}")
  20          # params.push((v.kind_of?(TkObject))? v.epath: v)
  21          params.push(_epath(v))
  22        }
  23        tk_call_without_enc('place', 'configure', win, *params)
  24      else
  25        # value = value.epath if value.kind_of?(TkObject)
  26        value = _epath(value)
  27        tk_call_without_enc('place', 'configure', win, "-#{slot}", value)
  28      end
  29    end
  30    alias place configure
  31 
  32    def configinfo(win, slot = nil)
  33      # for >= Tk8.4a2 ?
  34      if TkComm::GET_CONFIGINFOwoRES_AS_ARRAY
  35        # win = win.epath if win.kind_of?(TkObject)
  36        win = _epath(win)
  37        if slot
  38          #conf = tk_split_list(tk_call_without_enc('place', 'configure', 
  39          #                                        win, "-#{slot}") )
  40          conf = tk_split_simplelist(tk_call_without_enc('place', 'configure', 
  41                                                         win, "-#{slot}") )
  42          conf[0] = conf[0][1..-1]
  43          conf[1] = tk_tcl2ruby(conf[1])
  44          conf[2] = tk_tcl2ruby(conf[1])
  45          conf[3] = tk_tcl2ruby(conf[1])
  46          conf[4] = tk_tcl2ruby(conf[1])
  47          conf
  48        else
  49          tk_split_simplelist(tk_call_without_enc('place', 'configure', 
  50                                                  win)).collect{|conflist|
  51            #conf = list(conflist)
  52            conf = simplelist(conflist).collect!{|inf| tk_tcl2ruby(inf)}
  53            conf[0] = conf[0][1..-1]
  54            conf
  55          }
  56        end
  57      else # ! TkComm::GET_CONFIGINFOwoRES_AS_ARRAY
  58        current_configinfo(win, slot)
  59      end
  60    end
  61 
  62    def current_configinfo(win, slot = nil)
  63      # win = win.epath if win.kind_of?(TkObject)
  64      win = _epath(win)
  65      if slot
  66        #conf = tk_split_list(tk_call_without_enc('place', 'configure', 
  67        #                                         win, "-#{slot}") )
  68        conf = tk_split_simplelist(tk_call_without_enc('place', 'configure', 
  69                                                       win, "-#{slot}") )
  70        # { conf[0][1..-1] => conf[1] }
  71        { conf[0][1..-1] => tk_tcl2ruby(conf[4]) }
  72      else
  73        ret = {}
  74        #tk_split_list(tk_call_without_enc('place','configure',win)).each{|conf|
  75        tk_split_simplelist(tk_call_without_enc('place', 'configure', 
  76                                                win)).each{|conf_list|
  77          #ret[conf[0][1..-1]] = conf[1]
  78          conf = simplelist(conf_list)
  79          ret[conf[0][1..-1]] = tk_tcl2ruby(conf[4])
  80        }
  81        ret
  82      end
  83    end
  84 
  85    def forget(win)
  86      # win = win.epath if win.kind_of?(TkObject)
  87      win = _epath(win)
  88      tk_call_without_enc('place', 'forget', win)
  89    end
  90 
  91    def info(win)
  92      # win = win.epath if win.kind_of?(TkObject)
  93      win = _epath(win)
  94      #ilist = list(tk_call_without_enc('place', 'info', win))
  95      ilist = simplelist(tk_call_without_enc('place', 'info', win))
  96      info = {}
  97      while key = ilist.shift
  98        #info[key[1..-1]] = ilist.shift
  99        info[key[1..-1]] = tk_tcl2ruby(ilist.shift)
 100      end
 101      return info
 102    end
 103 
 104    def slaves(master)
 105      # master = master.epath if master.kind_of?(TkObject)
 106      master = _epath(master)
 107      list(tk_call('place', 'slaves', master))
 108    end
 109 
 110    module_function :place, :configure, :configinfo, :current_configinfo
 111    module_function :forget, :info, :slaves
 112  end
 113  =begin
 114  def TkPlace(win, slot, value=None)
 115    win = win.epath if win.kind_of?(TkObject)
 116    if slot.kind_of? Hash
 117      params = []
 118      slot.each{|k, v|
 119        params.push("-#{k}")
 120        params.push((v.kind_of?(TkObject))? v.epath: v)
 121      }
 122      tk_call_without_enc('place', win, *params)
 123    else
 124      value = value.epath if value.kind_of?(TkObject)
 125      tk_call_without_enc('place', win, "-#{slot}", value)
 126    end
 127  end
 128  =end