Module: Tk::TkDND::DND

Included in:
TkWindow
Defined in:
lib/tkextlib/tkDND/tkdnd.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.versionObject



131
132
133
134
135
136
137
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 131

def self.version
  begin
    TkPackage.require('tkdnd')
  rescue
    ''
  end
end

Instance Method Details

#dnd_bindsource(type, *args, &block) ⇒ Object



193
194
195
196
197
198
199
200
201
202
203
204
205
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 193

def dnd_bindsource(type, *args, &block)
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
  if TkComm._callback_entry?(args[0]) || !block
    cmd = args.shift
  else
    cmd = block
  end

  args = [TkComm::None] if args.empty?

  tk_call('dnd', 'bindsource', @path, type, cmd, *args)
  self
end

#dnd_bindsource_info(type = nil) ⇒ Object



185
186
187
188
189
190
191
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 185

def dnd_bindsource_info(type=nil)
  if type
    procedure(tk_call('dnd', 'bindsource', @path, type))
  else
    simplelist(tk_call('dnd', 'bindsource', @path))
  end
end

#dnd_bindtarget(type, event, *args, &block) ⇒ Object



149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 149

def dnd_bindtarget(type, event, *args, &block)
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
  klass = case type
          when 'text/plain'
            DND_SubstText
          when 'text/uri-list'
            DND_SubstFileList
          else
            DND_Subst
          end
  if TkComm._callback_entry?(args[0]) || !block
    cmd = args.shift
  else
    cmd = block
  end

  prior = 50
  prior = args.shift unless args.empty?

  event = tk_event_sequence(event)
  if prior.kind_of?(Numeric)
    tk_call('dnd', 'bindtarget', @path, type, event,
            install_bind_for_event_class(klass, cmd, *args),
            prior)
  else
    tk_call('dnd', 'bindtarget', @path, type, event,
            install_bind_for_event_class(klass, cmd, prior, *args))
  end
  self
end

#dnd_bindtarget_info(type = nil, event = nil) ⇒ Object



139
140
141
142
143
144
145
146
147
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 139

def dnd_bindtarget_info(type=nil, event=nil)
  if event
    procedure(tk_call('dnd', 'bindtarget', @path, type, event))
  elsif type
    procedure(tk_call('dnd', 'bindtarget', @path, type))
  else
    simplelist(tk_call('dnd', 'bindtarget', @path))
  end
end

#dnd_clearsourceObject



207
208
209
210
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 207

def dnd_clearsource()
  tk_call('dnd', 'clearsource', @path)
  self
end

#dnd_cleartargetObject



180
181
182
183
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 180

def dnd_cleartarget
  tk_call('dnd', 'cleartarget', @path)
  self
end

#dnd_drag(keys = nil) ⇒ Object



212
213
214
215
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 212

def dnd_drag(keys=nil)
  tk_call('dnd', 'drag', @path, *hash_kv(keys))
  self
end