Advertisement
ijontichy

derp293.py

Feb 3rd, 2013
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.16 KB | None | 0 0
  1. import subprocess, sys
  2. from Tkinter import *
  3. import _tkinter
  4.  
  5. BASEPATH = "C:\\Users\\Doc Holliday\\Documents\\Doom\\"
  6.  
  7. PROGRAMS = (
  8.             (BASEPATH + r"IDE\Ide.exe", "IDE"),    
  9.             (BASEPATH + r"Zandronum\Doomseeker\doomseeker.exe", "Doomseeker"),
  10.             (BASEPATH + r"SLADE3\SLADE.exe", "SLADE3"),
  11.             (BASEPATH + r"Doom Builder 2\Builder.exe", "DoomBuilder"),
  12.             (BASEPATH + r"odamex\odalaunch.exe", "OdaLaunch"),
  13.             (BASEPATH + r"Zandronum\zandronum.exe", "Zandronum"),
  14.             (BASEPATH + r"GZDoom\gzdoom.exe", "GZDoom"),
  15.             (BASEPATH + r"Chocolate Doom\chocolate-doom.exe", "Chocolate"),
  16.             (BASEPATH + r"Vavoom\vlaunch.exe", "Vavoom"),
  17.             (BASEPATH + r"ReMooD\remood-launcher.exe", "ReMooD"),
  18.             (BASEPATH + r"Doomsday\bin\doomsday.exe", "Doomsday"),
  19.             (BASEPATH + r"Doomsday\snowberry\snowberry.exe", "Snowberry", BASEPATH + r"Doomsday\snowberry"),
  20.            )
  21.  
  22.  
  23. class AppLauncher(Frame):    
  24.  
  25.     def __init__(self, parent):
  26.         Frame.__init__(self, parent)
  27.         self.parent = parent
  28.         self.initialize()
  29.  
  30.     def initialize(self):
  31.         for i, progPair in enumerate(PROGRAMS):
  32.             prog = progPair[0]
  33.             name = progPair[1:2] or prog
  34.  
  35.             tmpBtn = Button(self, text=name, border=4, command=(lambda prog=progPair: self.openProg(prog) ) )
  36.             tmpBtn.grid(row=i//3, column=i%3, padx=1, pady=1, sticky="NSEW")
  37.        
  38.     def openProg(self, progPair):
  39.         prog = progPair[0]
  40.         name = progPair[1]
  41.         pcwd = progPair[2] if len(progPair) > 2 else "."
  42.  
  43.         print("Opening {0} (\"{1}\")".format(name, prog))
  44.        
  45.         try:
  46.             subprocess.Popen([prog], cwd=pcwd)
  47.        
  48.         except OSError as e:
  49.             reason = e.args[1]
  50.  
  51.             if "No such" in reason:
  52.                 sys.stdout.write("ERROR: \"{}\" doesn't exist\n".format(prog))
  53.  
  54.  
  55. if __name__ == "__main__":
  56.     root = Tk()
  57.     root.title("Doom Utilities")
  58.     root.resizable(False, False)
  59.  
  60.     app = AppLauncher(root)
  61.     app.grid(sticky="NSEW")
  62.  
  63.     try:
  64.         root.iconbitmap('doom.ico')
  65.     except _tkinter.TclError:
  66.         pass
  67.  
  68.     root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement