#!/usr/bin/ruby
# coding: utf-8

require 'tk'


# make a figure file
n = 0
sFigFN = "/tmp/dcl"
loop do
  sFigFN = "/tmp/" + $0 + "-" + n.to_s
  break if !File.exist?(sFigFN+".pdf") && !File.exist?(sFigFN+".gif")
  n += 1
end


def imgwindow( imgfn )

  winimg = TkToplevel.new
  winimg.title = 'Figure'
  button = TkButton.new( winimg )
  button.text = 'close'
  button.command proc{winimg.destroy}
  button.pack('side' => 'top')
  imggif = TkPhotoImage.new
  imggif.file = imgfn
  label = TkLabel.new( winimg )
  label.text = 'Figure'
  label.image = imggif
  label.place('height'=>imggif.height,'width'=>imggif.width, 'x'=>10, 'y'=>10)
  label.pack('side' => 'top')

end



title = TkLabel.new
title.text = 'Location of planets in the solar system'
title.pack( 'side'=>'top' )

TkLabel.new{
  text '==================================================================================='
}.pack( 'side'=>'top' )

size_frame = TkFrame.new.pack( 'side'=>'top' )
size_name = TkLabel.new( size_frame )
size_name.text = 'figure range (AU): '
size_name.pack( 'side'=>'left' )
size_value = TkEntry.new( size_frame )
size_value.value = 6.0
size_value.pack( 'side'=>'right' )

date_frame = TkFrame.new.pack( 'side'=>'top' )
date_name = TkLabel.new( date_frame )
date_name.text = 'date (YYYY/MM/DD): '
date_name.pack( 'side'=>'left' )
date_value = TkEntry.new( date_frame )
sCurDate = Time.now
date_value.value = sCurDate.year.to_s+"/"+sCurDate.month.to_s+"/"+sCurDate.day.to_s
date_value.pack( 'side'=>'right' )

TkLabel.new{
  text '==================================================================================='
}.pack( 'side'=>'top' )

file_name = TkLabel.new
file_name.text = 'Temporary figure file (*.pdf, *.gif)'
file_name.pack( 'side'=>'top' )
file_frame = TkFrame.new.pack( 'side'=>'top' )
file_name = TkLabel.new( file_frame )
file_name.text = 'path:'
file_name.pack( 'side'=>'left' )
file_value = TkEntry.new( file_frame )
file_value.value = sFigFN
file_value.pack( 'side'=>'left' )
file_remove_var = TkVariable.new
file_remove_var.value = 1
file_button = TkCheckButton.new( file_frame ) {
  text "Remove figure file"
  onvalue = 1
  offvalue = 0
  variable file_remove_var
  pack( 'anchor'=>'w', 'side'=>'left' )
}


button_exec = TkButton.new
button_exec.text = 'execute'
button_exec.command{
  sFigFN        = file_value.value
  sFigSize      = size_value.value.to_f
  sDate         = date_value.value
#  com = "ruby insolation_gui_core.rb "+FigFN+" "+plotnum.to_s+" "+sSMAxis.to_s+" "+sEccen.to_s+" "+sPerLon.to_s+" "+sSecInAYear.to_s+" "+sEpsOrb.to_s+" "+sPerLs.to_s+" "+sMLonAtEpoch.to_s
  com = "ruby solar_system_ctl.rb "+sFigFN+" "+sFigSize.to_s+" "+sDate
  system( com )
  system( "convert -rotate 90 -background white -flatten "+sFigFN+".pdf "+sFigFN+".gif" )
  imgwindow( sFigFN+'.gif' )
  if file_remove_var.value.to_i == 1 then
    system( "rm "+sFigFN+".pdf" ) if File.exist?(sFigFN+".pdf")
    system( "rm "+sFigFN+".gif" ) if File.exist?(sFigFN+".gif")
  end
}
button_exec.pack( 'side' => 'left' )

#button_exec.bind( 'Button', proc {ebm_draw_temp} )
#button_exec.bind( 'Button', proc { showtext } )
#ebm_draw_temp if ARGV.size == 0


button_exit = TkButton.new
button_exit.text = 'exit'
button_exit.command = proc{ exit }
button_exit.pack( 'side' => 'right' )

Tk.mainloop
