import tkinter as tk
from tkinter import *
from tkinter import messagebox
from tkinter import ttk
import os
import sys

#distro
import fedora
import debian as distro


BUTTONHEIGHT='3'
#BUTTONWIDTH='44'
BUTTONWIDTH='39'
#TEXTWIDTH=20
TEXTWIDTH=18



def main():
	
	screen = tk.Tk()
	screen.title("BoxPackage")
	screen.geometry("400x400")
	screen.resizable(width = False, height = False)
	screen.grid_columnconfigure(1, weight=1)
	screen.eval('tk::PlaceWindow . center')
	buttoninstall = tk.Button(screen, command=install, text='install', height=BUTTONHEIGHT, width=BUTTONWIDTH)
	buttonsearch = tk.Button(screen, command=search, text='search', height=BUTTONHEIGHT, width=BUTTONWIDTH)
	buttonremove = tk.Button(screen, command=remove, text='remove', height=BUTTONHEIGHT, width=BUTTONWIDTH)
	buttonshow = tk.Button(screen, command=show, text='show details', height=BUTTONHEIGHT, width=BUTTONWIDTH)
	buttonupdate = tk.Button(screen, command=distro.update, text='update', height=BUTTONHEIGHT, width=BUTTONWIDTH)
	
	buttoninstall.grid(row=0, column=1, pady=2)
	buttonsearch.grid(row=1, column=1, pady=2)
	buttonremove.grid(row=2, column=1, pady=2)
	buttonshow.grid(row=3, column=1, pady=2)
	buttonupdate.grid(row=4, column=1, pady=2)
	
#	buttoninstall.pack(fill=tk.X)
#	buttonsearch.pack(fill=tk.X)
#	buttonremove.pack(fill=tk.X)
#	buttonshow.pack(fill=tk.X)
#	buttonupdate.pack(fill=tk.X)
	screen.mainloop()

def install():
	instscreen = tk.Tk()
	instscreen.geometry("200x100")
	instscreen.title("program to install?")
	instscreen.resizable(width = False, height = False)
	instscreen.eval('tk::PlaceWindow . center')
	
	entry = ttk.Entry(instscreen, width=TEXTWIDTH)
	entry.place(x=15, y=10)
	
	instok = tk.Button(instscreen, command=lambda: distro.installinstok(entry.get()), text='ok', height=1, width=3)
	instok.place(x=70, y=40)
	
	instscreen.mainloop()
	
def pathinstall(text):
	
	instscreen = tk.Tk()
	instscreen.geometry("200x100")
	instscreen.title("program to install?")
	instscreen.resizable(width = False, height = False)
	instscreen.eval('tk::PlaceWindow . center')
	
	l = Label(instscreen, text = "Install this package?")
	l.config(font =("Courier", 8))
	l.pack()

	
	instok = tk.Button(instscreen, command=lambda: distro.installinstok(text), text='Install', height=1, width=3)
	instok.place(x=70, y=40)
	
	instscreen.mainloop()


def search():
	searchscreen = tk.Tk()
	searchscreen.geometry("200x100")
	searchscreen.title("program to search?")
	searchscreen.resizable(width = False, height = False)
	searchscreen.eval('tk::PlaceWindow . center')
	
	entry = ttk.Entry(searchscreen, width=TEXTWIDTH)
	entry.place(x=15, y=10)
	
	instok = tk.Button(searchscreen, command=lambda: distro.searchtok(entry.get()), text='ok', height=1, width=3)
	instok.place(x=70, y=40)
	
	searchscreen.mainloop()
	
def remove():
	removescreen = tk.Tk()
	removescreen.geometry("200x100")
	removescreen.title("program to remove?")
	removescreen.resizable(width = False, height = False)
	removescreen.eval('tk::PlaceWindow . center')
	
	entry = ttk.Entry(removescreen, width=TEXTWIDTH)
	entry.place(x=15, y=10)
	
	instok = tk.Button(removescreen, command=lambda: distro.removetok(entry.get()), text='ok', height=1, width=3)
	instok.place(x=70, y=40)
	
	removescreen.mainloop()
def show():
	instscreen = tk.Tk()
	instscreen.geometry("200x100")
	instscreen.title("program to show details?")
	instscreen.resizable(width = False, height = False)
	instscreen.eval('tk::PlaceWindow . center')
	
	entry = ttk.Entry(instscreen, width=TEXTWIDTH)
	entry.place(x=15, y=10)
	
	instok = tk.Button(instscreen, command=lambda: distro.showtok(entry.get()), text='ok', height=1, width=3)
	instok.place(x=70, y=40)
	
	instscreen.mainloop()

if len(sys.argv) > 1:
	
	program = sys.argv[1]
	
	pathinstall(program)

main()



