1
|
1 |
#!/usr/bin/python
|
|
2 |
|
|
3 |
# Tkinter interface to the McMillan installer
|
|
4 |
# (c) 2003 Alan James Salmoni - yes, all this bad code is all mine!!!
|
|
5 |
# released under the MIT license
|
|
6 |
|
|
7 |
import os, os.path
|
|
8 |
from Tkinter import *
|
|
9 |
import tkFileDialog
|
|
10 |
import FileDialog
|
|
11 |
|
|
12 |
class McGUI:
|
|
13 |
def __init__(self):
|
|
14 |
root = Tk()
|
|
15 |
fr1 = Frame(root)
|
|
16 |
fr1["width"] = 200
|
|
17 |
fr1["height"] = 100
|
|
18 |
fr1.pack(side="top")
|
|
19 |
fr2 = Frame(root)
|
|
20 |
fr2["width"] = 200
|
|
21 |
fr2["height"] = 300
|
|
22 |
fr2["borderwidth"] = 2
|
|
23 |
fr2["relief"] = "ridge"
|
|
24 |
fr2.pack()
|
|
25 |
fr4 = Frame(root)
|
|
26 |
fr4["width"]=200
|
|
27 |
fr4["height"]=100
|
|
28 |
fr4.pack(side="bottom")
|
|
29 |
getFileButton = Button(fr1)
|
|
30 |
getFileButton["text"] = "Script..."
|
|
31 |
getFileButton.bind("<Button>",self.GetFile)
|
|
32 |
getFileButton.pack(side="left")
|
|
33 |
self.filein = Entry(fr1)
|
|
34 |
self.filein.pack(side="right")
|
|
35 |
self.filetypecheck = Checkbutton(fr2)
|
|
36 |
self.filetypecheck["text"] = "One File Package "
|
|
37 |
self.filetype = IntVar()
|
|
38 |
self.filetypecheck["variable"] = self.filetype
|
|
39 |
self.filetypecheck.pack()
|
|
40 |
self.tkcheck = Checkbutton(fr2)
|
|
41 |
self.tkcheck["text"] = "Include Tcl/Tk "
|
|
42 |
self.tk = IntVar()
|
|
43 |
self.tkcheck["variable"] = self.tk
|
|
44 |
self.tkcheck.pack()
|
|
45 |
self.asciicheck = Checkbutton(fr2)
|
|
46 |
self.asciicheck["text"] = "Do NOT include decodings"
|
|
47 |
self.ascii = IntVar()
|
|
48 |
self.asciicheck["variable"] = self.ascii
|
|
49 |
self.asciicheck.pack()
|
|
50 |
self.debugcheck = Checkbutton(fr2)
|
|
51 |
self.debugcheck["text"] = "Use debug versions "
|
|
52 |
self.debug = IntVar()
|
|
53 |
self.debugcheck["variable"] = self.debug
|
|
54 |
self.debugcheck.pack()
|
|
55 |
self.noconsolecheck = Checkbutton(fr2)
|
|
56 |
self.noconsolecheck["text"] = "No console (Windows only)"
|
|
57 |
self.noconsole = IntVar()
|
|
58 |
self.noconsolecheck["variable"] = self.noconsole
|
|
59 |
self.noconsolecheck.pack()
|
|
60 |
okaybutton = Button(fr4)
|
|
61 |
okaybutton["text"] = "Okay "
|
|
62 |
okaybutton.bind("<Button>",self.makePackage)
|
|
63 |
okaybutton.pack(side="left")
|
|
64 |
cancelbutton = Button(fr4)
|
|
65 |
cancelbutton["text"] = "Cancel"
|
|
66 |
cancelbutton.bind("<Button>",self.killapp)
|
|
67 |
cancelbutton.pack(side="right")
|
|
68 |
self.fin = ''
|
|
69 |
self.fout = ''
|
|
70 |
root.mainloop()
|
|
71 |
|
|
72 |
def killapp(self, event):
|
|
73 |
sys.exit(0)
|
|
74 |
|
|
75 |
def makePackage(self, event):
|
|
76 |
commands = 'python Makespec.py '
|
|
77 |
if (self.filetype.get() == 1):
|
|
78 |
commands = commands + '--onefile '
|
|
79 |
if (self.tk.get() == 1):
|
|
80 |
commands = commands + '--tk '
|
|
81 |
if (self.ascii.get() == 1):
|
|
82 |
commands = commands + '--ascii '
|
|
83 |
if (self.debug.get() == 1):
|
|
84 |
commands = commands + '--debug '
|
|
85 |
if (self.noconsole.get() == 1):
|
|
86 |
commands = commands + '--noconsole '
|
|
87 |
commands = commands + self.fin
|
|
88 |
x = os.path.split(self.fin)
|
|
89 |
y = os.path.splitext(x[1])
|
|
90 |
os.system(commands)
|
|
91 |
commands = 'python Build.py '+str(y[0])+os.sep+str(y[0])+'.spec'
|
|
92 |
os.system(commands)
|
|
93 |
sys.exit(0)
|
|
94 |
|
|
95 |
def GetFile(self, event):
|
|
96 |
self.fin = tkFileDialog.askopenfilename()
|
|
97 |
self.filein.insert(0,self.fin)
|
|
98 |
|
|
99 |
if __name__ == "__main__":
|
|
100 |
app = McGUI()
|