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) ⇒ Object

def dnd_bindsource(type, cmd=Proc.new, prior=None)

tk_call('dnd', 'bindsource', @path, type, cmd, prior)
self

end



209
210
211
212
213
214
215
216
217
218
219
220
221
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 209

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

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

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

#dnd_bindsource_info(type = nil) ⇒ Object



197
198
199
200
201
202
203
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 197

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) ⇒ Object

def dnd_bindtarget(type, event, cmd=Proc.new, prior=50, *args)

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

end



161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 161

def dnd_bindtarget(type, event, *args)
  # 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_given?
    cmd = args.shift
  else
    cmd = Proc.new
  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



223
224
225
226
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 223

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

#dnd_cleartargetObject



192
193
194
195
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 192

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

#dnd_drag(keys = nil) ⇒ Object



228
229
230
231
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 228

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