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


83
84
85
86
87
88
89
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 83

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


153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 153

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


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

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


113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 113

def dnd_bindtarget(type, event, *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

  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(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

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


91
92
93
94
95
96
97
98
99
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 91

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


167
168
169
170
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 167

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

#dnd_cleartargetObject


136
137
138
139
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 136

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

#dnd_drag(keys = nil) ⇒ Object


172
173
174
175
# File 'lib/tkextlib/tkDND/tkdnd.rb', line 172

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