OSDN Git Service

ruby-1.9.1-rc1
[splhack/AndroidRuby.git] / lib / ruby-1.9.1-rc1 / ext / tk / lib / tk / textimage.rb
1 #
2 # tk/textimage.rb - treat Tk text image object
3 #
4 require 'tk'
5 require 'tk/text'
6
7 class TkTextImage<TkObject
8   include Tk::Text::IndexModMethods
9
10   def initialize(parent, index, keys)
11     #unless parent.kind_of?(Tk::Text)
12     #  fail ArgumentError, "expect Tk::Text for 1st argument"
13     #end
14     @t = parent
15     if index == 'end' || index == :end
16       @path = TkTextMark.new(@t, tk_call(@t.path, 'index', 'end - 1 chars'))
17     elsif index.kind_of? TkTextMark
18       if tk_call_without_enc(@t.path,'index',index.path) == tk_call_without_enc(@t.path,'index','end')
19         @path = TkTextMark.new(@t, tk_call_without_enc(@t.path, 'index', 
20                                                        'end - 1 chars'))
21       else
22         @path = TkTextMark.new(@t, tk_call_without_enc(@t.path, 'index', 
23                                                        index.path))
24       end
25     else
26       @path = TkTextMark.new(@t, tk_call_without_enc(@t.path, 'index', 
27                                                      _get_eval_enc_str(index)))
28     end
29     @path.gravity = 'left'
30     @index = @path.path
31     @id = tk_call_without_enc(@t.path, 'image', 'create', @index, 
32                               *hash_kv(keys, true)).freeze
33     @path.gravity = 'right'
34   end
35
36   def id
37     Tk::Text::IndexString.new(@id)
38   end
39   def mark
40     @path
41   end
42
43   def [](slot)
44     cget(slot)
45   end
46   def []=(slot, value)
47     configure(slot, value)
48     value
49   end
50
51   def cget(slot)
52     @t.image_cget(@index, slot)
53   end
54
55   def cget_strict(slot)
56     @t.image_cget_strict(@index, slot)
57   end
58
59   def configure(slot, value=None)
60     @t.image_configure(@index, slot, value)
61     self
62   end
63 #  def configure(slot, value)
64 #    tk_call @t.path, 'image', 'configure', @index, "-#{slot}", value
65 #  end
66
67   def configinfo(slot = nil)
68     @t.image_configinfo(@index, slot)
69   end
70
71   def current_configinfo(slot = nil)
72     @t.current_image_configinfo(@index, slot)
73   end
74
75   def image
76     img = tk_call_without_enc(@t.path, 'image', 'cget', @index, '-image')
77     TkImage::Tk_IMGTBL[img]? TkImage::Tk_IMGTBL[img] : img
78   end
79
80   def image=(value)
81     tk_call_without_enc(@t.path, 'image', 'configure', @index, '-image', 
82                         _get_eval_enc_str(value))
83     #self
84     value
85   end
86 end
87
88 TktImage = TkTextImage