File: tk/winpkg.rb

Overview
Module Structure
Code

Overview

Module Structure

  module: <Toplevel Module>
  module: Tk
  module: WinDDE#10, #15
extends
  Tk   
  WinDDE ( Tk )
has properties
constant: TkCommandNames #19
constant: PACKAGE_NAME #21
module method: package_name #22
function: servername / 1 #35
function: execute / 3 #57
function: async_execute / 3 #61
function: poke / 4 #65
function: request / 3 #69
method: binary_request / 3 #73
function: services / 2 #77
function: eval / 3 #81
method: async_eval / 3 #85
  module: WinRegistry#93, #98
extends
  Tk   
  WinRegistry ( Tk )
has properties
constant: TkCommandNames #102
method: broadcast / 2 #110
function: delete / 2 #118
function: get / 2 #122
function: keys / 2 #126
function: set / 4 #135
function: type / 2 #139
function: values / 2 #143

Code

   1  #
   2  #   tk/winpkg.rb : methods for Tcl/Tk packages for Microsoft Windows
   3  #                     2000/11/22 by Hidetoshi Nagai <nagai@ai.kyutech.ac.jp>
   4  #
   5  #     ATTENTION !!
   6  #         This is NOT TESTED. Because I have no test-environment.
   7  #
   8  require 'tk'
   9 
  10  module Tk::WinDDE
  11  end
  12  #TkWinDDE = Tk::WinDDE
  13  Tk.__set_toplevel_aliases__(:Tk, Tk::WinDDE, :TkWinDDE)
  14 
  15  module Tk::WinDDE
  16    extend Tk
  17    extend Tk::WinDDE
  18 
  19    TkCommandNames = ['dde'.freeze].freeze
  20 
  21    PACKAGE_NAME = 'dde'.freeze
  22    def self.package_name
  23      PACKAGE_NAME
  24    end
  25 
  26    if self.const_defined? :FORCE_VERSION
  27      tk_call_without_enc('package', 'require', 'dde', FORCE_VERSION)
  28    else
  29      tk_call_without_enc('package', 'require', 'dde')
  30    end
  31 
  32    #def servername(topic=None)
  33    #  tk_call('dde', 'servername', topic)
  34    #end
  35    def servername(*args)
  36      if args.size == 0
  37        tk_call('dde', 'servername')
  38      else
  39        if args[-1].kind_of?(Hash)  # dde 1.2 +
  40          keys = _symbolkey2str(args.pop)
  41          force = (keys.delete('force'))? '-force': None
  42          exact = (keys.delete('exact'))? '-exact': None
  43          if keys.size == 0
  44            tk_call('dde', 'servername', force, exact)
  45          elsif args.size == 0
  46            tk_call('dde', 'servername', force, exact, *hash_kv(keys))
  47          else
  48            tk_call('dde', 'servername', force, exact, 
  49                    *((hash_kv(keys) << '--') + args))
  50          end
  51        else
  52          tk_call('dde', 'servername', *args)
  53        end
  54      end
  55    end
  56 
  57    def execute(service, topic, data)
  58      tk_call('dde', 'execute', service, topic, data)
  59    end
  60 
  61    def async_execute(service, topic, data)
  62      tk_call('dde', '-async', 'execute', service, topic, data)
  63    end
  64 
  65    def poke(service, topic, item, data)
  66      tk_call('dde', 'poke', service, topic, item, data)
  67    end
  68 
  69    def request(service, topic, item)
  70      tk_call('dde', 'request', service, topic, item)
  71    end
  72 
  73    def binary_request(service, topic, item)
  74      tk_call('dde', 'request', '-binary', service, topic, item)
  75    end
  76 
  77    def services(service, topic)
  78      tk_call('dde', 'services', service, topic)
  79    end
  80 
  81    def eval(topic, cmd, *args)
  82      tk_call('dde', 'eval', topic, cmd, *args)
  83    end
  84 
  85    def async_eval(topic, cmd, *args)
  86      tk_call('dde', 'eval', -async, topic, cmd, *args)
  87    end
  88 
  89    module_function :servername, :execute, :async_execute, 
  90                    :poke, :request, :services, :eval
  91  end
  92 
  93  module Tk::WinRegistry
  94  end
  95  #TkWinRegistry = Tk::WinRegistry
  96  Tk.__set_toplevel_aliases__(:Tk, Tk::WinRegistry, :TkWinRegistry)
  97 
  98  module Tk::WinRegistry
  99    extend Tk
 100    extend Tk::WinRegistry
 101 
 102    TkCommandNames = ['registry'.freeze].freeze
 103 
 104    if self.const_defined? :FORCE_VERSION
 105      tk_call('package', 'require', 'registry', FORCE_VERSION)
 106    else
 107      tk_call('package', 'require', 'registry')
 108    end
 109 
 110    def broadcast(keynam, timeout=nil)
 111      if timeout
 112        tk_call('registry', 'broadcast', keynam, '-timeout', timeout)
 113      else
 114        tk_call('registry', 'broadcast', keynam)
 115      end
 116    end
 117 
 118    def delete(keynam, valnam=None)
 119      tk_call('registry', 'delete', keynam, valnam)
 120    end
 121 
 122    def get(keynam, valnam)
 123      tk_call('registry', 'get', keynam, valnam)
 124    end
 125 
 126    def keys(keynam, pattern=nil)
 127      lst = tk_split_simplelist(tk_call('registry', 'keys', keynam))
 128      if pattern
 129        lst.find_all{|key| key =~ pattern}
 130      else
 131        lst
 132      end
 133    end
 134 
 135    def set(keynam, valnam=None, data=None, dattype=None)
 136      tk_call('registry', 'set', keynam, valnam, data, dattype)
 137    end
 138 
 139    def type(keynam, valnam)
 140      tk_call('registry', 'type', keynam, valnam)
 141    end
 142 
 143    def values(keynam, pattern=nil)
 144      lst = tk_split_simplelist(tk_call('registry', 'values', keynam))
 145      if pattern
 146        lst.find_all{|val| val =~ pattern}
 147      else
 148        lst
 149      end
 150    end
 151 
 152    module_function :delete, :get, :keys, :set, :type, :values
 153  end