#!/usr/bin/ruby
require 'gtk2'

def error_window (message)
	dialog = Gtk::MessageDialog.new(@window, 
                                Gtk::Dialog::MODAL,
                                Gtk::MessageDialog::QUESTION,
                                Gtk::MessageDialog::BUTTONS_CLOSE,
                                message )
	dialog.run
	dialog.destroy
end

def check_before 
	if @sdirectory.text.length < 1 || @ddirectory.text.length < 1
		error_window "Musíte zadat zdrojový a cílový adresář!"
		false
	elsif (not File.exist?(@sdirectory.text)) || (not File.exist?(@ddirectory.text))
		error_window "Takový zdrojový nebo cílový adresář neexistuje!"
		false
	else
		true
	end
end

vbox1 = Gtk::VBox.new(false,5)
vbox1.pack_start_defaults(Gtk::Label.new("Zdrojový adresář:"))
vbox1.pack_start_defaults(Gtk::Label.new("Cílový adresář:"))
vbox1.pack_start_defaults(Gtk::Label.new("Šířka x výška obrázku"))

# source directory
@sdirectory = Gtk::Entry.new
@sdirectory.width_chars = 40

# destination directory
@ddirectory = Gtk::Entry.new

vbox2 = Gtk::VBox.new(false,5)
vbox2.pack_start_defaults(@sdirectory)
vbox2.pack_start_defaults(@ddirectory)
@width = Gtk::Entry.new
@height = Gtk::Entry.new
@width.text = "1024"  
@width.xalign = 1
@height.text = "768" 
@height.xalign =1
hboxsmall = Gtk::HBox.new(false,5)
hboxsmall.pack_start_defaults(@width)
hboxsmall.pack_start_defaults(Gtk::Label.new(" X "))
hboxsmall.pack_start_defaults(@height)
vbox2.pack_start_defaults(hboxsmall)

# main convert button initialization
button = Gtk::Button.new("Převést!")

button.signal_connect("clicked") {
	
  if check_before then 
		# požadované akce po kliknutí na tlačítko
  end
}


# source directory button
sbutton = Gtk::Button.new("Zdrojový adresář")

# source directory button action clicked definition
sbutton.signal_connect("clicked") {
	dialog = Gtk::FileChooserDialog.new("Vyberte zdrojový adresář",
                                     @window,
                                     Gtk::FileChooser::ACTION_SELECT_FOLDER,
                                     nil,
                                     [Gtk::Stock::CANCEL, Gtk::Dialog::RESPONSE_CANCEL],
                                     [Gtk::Stock::OPEN, Gtk::Dialog::RESPONSE_ACCEPT])
	dialog.current_folder = `echo $HOME`.chomp
	if dialog.run == Gtk::Dialog::RESPONSE_ACCEPT
		@sdirectory.text=dialog.filename
	end

	dialog.destroy
}

# destination directory button
dbutton = Gtk::Button.new("Cílový adresář")

# destination directory button action clicked definition
dbutton.signal_connect("clicked") {
	dialog = Gtk::FileChooserDialog.new("Vyberte cílový adresář",
                                     @window,
                                     Gtk::FileChooser::ACTION_SELECT_FOLDER,
                                     nil,
                                     [Gtk::Stock::CANCEL, Gtk::Dialog::RESPONSE_CANCEL],
                                     [Gtk::Stock::OPEN, Gtk::Dialog::RESPONSE_ACCEPT])
	dialog.current_folder = `echo $HOME`.chomp
	if dialog.run == Gtk::Dialog::RESPONSE_ACCEPT
		@ddirectory.text=dialog.filename
	end

	dialog.destroy
}

vbox3 = Gtk::VBox.new(false,5)
vbox3.pack_start_defaults(sbutton)
vbox3.pack_start_defaults(dbutton)
vbox3.pack_start_defaults(button)

# packing together
hbox = Gtk::HBox.new(false,5)
hbox.pack_start_defaults(vbox1)
hbox.pack_start_defaults(vbox2)
hbox.pack_start_defaults(vbox3)

# set help text
help = Gtk::Tooltips.new
help.set_tip(@sdirectory,"Jméno adresáře, \nkde máte uloženy obrázky.", nil)
help.set_tip(@ddirectory,"Jméno adresáře, \nkam se uloží vytvořené obrázky.", nil)
help.set_tip(sbutton,"Zobrazí dialogové okno \npro výběr zdrojového adresáře.", nil)
help.set_tip(dbutton,"Zobrazí dialogové okno \npro výběr cílového adresáře.", nil)
help.set_tip(@width,"Maximální šířka obrázku.", nil)
help.set_tip(@height,"Maximální výška obrázku.", nil)
help.set_tip(button,"Převede obrázky na požadovanou velikost.", nil)

#main window initialization
@window = Gtk::Window.new

@window.signal_connect("destroy") {
  Gtk.main_quit
}

# adding vbox and space between it and main window
@window.add(hbox)
@window.border_width = 10

# set window title and show & start main window
@window.set_title "Obrázko-konvertor (verze 0.1 ;-)"
@window.show_all

Gtk.main

