summaryrefslogtreecommitdiff
path: root/jni/ruby/ext/tk/lib/tkextlib/tcllib/khim.rb
blob: 5dc2130b35a1050236a70ce59710153a8aa88db3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#
#  tkextlib/tcllib/khim.rb
#                               by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
#
#   * Part of tcllib extension
#   * Kevin's Hacky Input Method
#

require 'tk'
require 'tkextlib/tcllib.rb'

# TkPackage.require('khim', '1.0')
TkPackage.require('khim')

module Tk::Tcllib
  class KHIM < TkToplevel
    PACKAGE_NAME = 'khim'.freeze
    def self.package_name
      PACKAGE_NAME
    end

    def self.package_version
      begin
        TkPackage.require('khim')
      rescue
        ''
      end
    end
  end
end

class Tk::Tcllib::KHIM
  TkCommandNames = ['::khim::getOptions'.freeze].freeze

  def self.get_options(parent='')
    path = parent + '.tcllib_widget_khim_dialog'
    self.new(:widgetname => path)
  end

  def self.get_config #=> cmd_string
    Tk.tk_call_without_enc('::khim::getConfig')
  end

  def self.set_config(*args)
    if args.length == 1
      # cmd_string generated by
      #Tk.ip_eval_without_enc(cmd_string)
      Tk.ip_eval(cmd_string)
    else
      # args for setConfig command
      #Tk.tk_call_without_enc('::khim::setConfig', *args)
      Tk.tk_call('::khim::setConfig', *args)
    end
  end

  def self.showHelp
    Tk::Tcllib::KHIM::Help.new
  end

  def create_self(keys=None)
    @db_class = @classname = nil
    super(None) # ignore keys
  end
end

class Tk::Tcllib::KHIM::Help < TkToplevel
  TkCommandNames = ['::khim::showHelp'.freeze].freeze
end