local c=createComboBox(MainForm.gbScanOptions)

c.Style='csDropDownList'
c.Items.add('All')
c.ItemIndex=0
c.Name='ScanOptionsModuleList'  


c.Align=alTop
c.BorderSpacing.Left=6
c.BorderSpacing.Right=6
c.BorderSpacing.Bottom=2

local modulelist

function FillList()
  local is64bit=targetIs64Bit()
  local op
  if is64bit then
    op='32'
  else
    op='64'
  end
  
  while c.Items.Count>1 do
    c.Items.delete(1)
  end

  modulelist=enumModules()
  if modulelist then
    local i
    for i=1, #modulelist do
      modulelist[i].OriginalName=modulelist[i].Name
      if modulelist[i].Is64Bit ~= is64bit then
        modulelist[i].OriginalName='_'..modulelist[i].OriginalName
        modulelist[i].Name=modulelist[i].Name..' ('..op..'-bit)'
      end

      c.Items.Add(modulelist[i].Name)
    end
  end
end

c.OnMouseEnter=function(d)  
  if c.Items.Count<=1 then
    --print("enter")
    FillList()
    c.ItemIndex=0
  end
end

c.OnDropDown=function(d)
  FillList()
end

c.OnSelect=function(d)
  if c.ItemIndex>=1 then
    MainForm.FromAddress.Text=string.format("%.16x",modulelist[c.ItemIndex].Address)
    if modulelist[c.ItemIndex].Size==nil then
      modulelist[c.ItemIndex].Size=getModuleSize(modulelist[c.ItemIndex].OriginalName)
    end
    if modulelist[c.ItemIndex].Size then
      MainForm.ToAddress.Text=string.format("%.16x",modulelist[c.ItemIndex].Address+modulelist[c.ItemIndex].Size)
    else
      MainForm.ToAddress.Text="7fffffffffffffff"
    end
  else
    MainForm.FromAddress.Text="0000000000000000"
    MainForm.ToAddress.Text="7fffffffffffffff"
  end
end

c.Enabled=false
