1#
2#  tkextlib/tcllib/khim.rb
3#                               by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4#
5#   * Part of tcllib extension
6#   * Kevin's Hacky Input Method
7#
8
9require 'tk'
10require 'tkextlib/tcllib.rb'
11
12# TkPackage.require('khim', '1.0')
13TkPackage.require('khim')
14
15module Tk::Tcllib
16  class KHIM < TkToplevel
17    PACKAGE_NAME = 'khim'.freeze
18    def self.package_name
19      PACKAGE_NAME
20    end
21
22    def self.package_version
23      begin
24        TkPackage.require('khim')
25      rescue
26        ''
27      end
28    end
29  end
30end
31
32class Tk::Tcllib::KHIM
33  TkCommandNames = ['::khim::getOptions'.freeze].freeze
34
35  def self.get_options(parent='')
36    path = parent + '.tcllib_widget_khim_dialog'
37    self.new(:widgetname => path)
38  end
39
40  def self.get_config #=> cmd_string
41    Tk.tk_call_without_enc('::khim::getConfig')
42  end
43
44  def self.set_config(*args)
45    if args.length == 1
46      # cmd_string generated by
47      #Tk.ip_eval_without_enc(cmd_string)
48      Tk.ip_eval(cmd_string)
49    else
50      # args for setConfig command
51      #Tk.tk_call_without_enc('::khim::setConfig', *args)
52      Tk.tk_call('::khim::setConfig', *args)
53    end
54  end
55
56  def self.showHelp
57    Tk::Tcllib::KHIM::Help.new
58  end
59
60  def create_self(keys=None)
61    @db_class = @classname = nil
62    super(None) # ignore keys
63  end
64end
65
66class Tk::Tcllib::KHIM::Help < TkToplevel
67  TkCommandNames = ['::khim::showHelp'.freeze].freeze
68end
69