#!/usr/bin/env python
import findrox; findrox.version(1, 9, 9)
import rox, os
from rox import Menu, g, filer

Menu.set_save_name('Edit')

__builtins__._ = rox.i18n.translation(os.path.join(rox.app_dir, 'Messages'))

from processes import Processes
from filesystems import FileSystems

class MainWindow(rox.Dialog):
	def __init__(self):
		rox.Dialog.__init__(self)
		self.set_has_separator(False)
		self.add_button(g.STOCK_CLOSE, g.RESPONSE_CANCEL)
		self.add_button(g.STOCK_HELP, g.RESPONSE_HELP)
		self.set_default_response(g.RESPONSE_CANCEL)
		self.set_position(g.WIN_POS_CENTER)

		def response(window, response):
			if response == g.RESPONSE_HELP:	
				filer.open_dir(os.path.join(rox.app_dir, 'Help'))
			else:
				window.destroy()
		self.connect('response', response)

		label = g.Label('')
		label.set_markup(_('<big>Filesystems</big>'))
		self.vbox.pack_start(label, False, True, 0)

		filesystems = FileSystems()

		check = g.CheckButton(_('Draw bars to scale'))
		check.set_active(True)
		self.vbox.pack_start(check, False, True, 0)
		check.connect('toggled', lambda b: filesystems.toggle_scaled())

		self.vbox.pack_start(filesystems, False, True, 0)

		label = g.Label('')
		label.set_markup(_('<big>Processes</big>'))
		self.vbox.pack_start(label, False, True, 0)

		# Processes
		proc = Processes(self)

		hbox = g.HBox(False, 0)
		self.vbox.pack_start(hbox, False, True, 0)

		check = g.CheckButton(_('Show all processes'))
		hbox.pack_start(check, False, True, 0)
		check.connect('toggled', lambda c: proc.toggle_show_all())

		check = g.CheckButton(_('Ignore swap when scaling'))
		check.set_active(True)
		hbox.pack_start(check, False, True, 0)
		check.connect('toggled', lambda c: proc.toggle_hide_swap())

		self.vbox.pack_start(proc, True, True, 0)

		self.vbox.show_all()

		req = proc.get_best_size()
		proc.set_size_request(-1, req[1])

		req = self.size_request()
		max_height = g.gdk.screen_height() * 5 / 6
		self.set_default_size(-1, min(req[1] + 8, max_height))
		proc.set_size_request(-1, -1)

MainWindow().show()

rox.mainloop()
