# frozen_string_literal: false
#
#  dnd demo  ---  called from demo.rb
#
unless Object.const_defined?('DemoVar')
  fail RuntimeError, "This is NOT a stand alone script. This script is called from 'demo.rb'. "
end

module DemoDnD
  def self.create(nb)
    frame = nb.insert('end', 'demoDnD', :text=>'Drag and Drop')

    titf1 = Tk::BWidget::TitleFrame.new(frame, :text=>'Drag source')
    subf = titf1.get_frame

    ent1 = Tk::BWidget::LabelEntry.new(subf, :label=>'Entry',
                                       :labelwidth=>14, :dragenabled=>true,
                                       :dragevent=>3)
    labf1 = Tk::BWidget::LabelFrame.new(subf, :text=>'Label (text)',
                                        :width=>14)
    f = labf1.get_frame
    lab = Tk::BWidget::Label.new(f, :text=>'Drag this text',
                                 :dragenabled=>true, :dragevent=>3).pack

    labf2 = Tk::BWidget::LabelFrame.new(subf, :text=>'Label (bitmap)',
                                        :width=>14)
    f = labf2.get_frame
    lab = Tk::BWidget::Label.new(f, :bitmap=>'info',
                                 :dragenabled=>true, :dragevent=>3).pack

    Tk.pack(ent1, labf1, labf2, :side=>:top, :fill=>:x, :pady=>4)

    titf2 = Tk::BWidget::TitleFrame.new(frame, :text=>'Drop targets')
    subf = titf2.get_frame

    ent1 = Tk::BWidget::LabelEntry.new(subf, :label=>'Entry',
                                       :labelwidth=>14, :dropenabled=>true)
    labf1 = Tk::BWidget::LabelFrame.new(subf, :text=>'Label', :width=>14)
    f = labf1.get_frame
    lab = Tk::BWidget::Label.new(f, :dropenabled=>true,
                                 :highlightthickness=>1).pack(:fill=>:x)
    Tk.pack(ent1, labf1, :side=>:top, :fill=>:x, :pady=>4)
    Tk.pack(titf1, titf2, :pady=>4)

    frame
  end
end
