Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- try:
- from Tkinter import *
- from Tkinter.filedialog import *
- from Tkinter import tkMessageBox as messagebox
- import Tix as tix
- except ImportError:
- from tkinter import *
- from tkinter.filedialog import *
- from tkinter import messagebox
- import tkinter.tix as tix
- from os.path import expanduser
- from os import execl,system
- from sys import executable,argv,exit
- from time import gmtime,strftime
- from re import sub
- from subprocess import Popen
- # from PIL import Image,ImageTk
- #import pygame
- from wpktb import *
- from wpvs import *
- class wpClass:
- def __init__(self):
- hideTaskbar()
- #pygame.init()
- view()
- # self.ram_check = view.l["ram_check"]
- self.pygameUpload = view.l["resources_settings"]["pygame"]["x32"]
- self.pyexeUpload = view.l["resources_settings"]["py2exe"]["x32"]
- self.appsNames = view.l["apps_settings_windows"]["coding"]
- self.appName = list(self.appsNames.keys())
- self.appsLambdaName = [ self.appName[i] for i in range(len(self.appsNames)) ]
- self.appPath = list(self.appsNames.values())
- self.appsLambdaPath = [ self.appPath[i] for i in range(len(self.appsNames)) ]
- self.folderResources = view.l["resources_settings"]["resources_folder"]
- self.folderModules = view.l["resources_settings"]["modules_folder"]
- self.folderThemes = view.l["resources_settings"]["theme_folder"]
- self.folderImages = view.l["resources_settings"]["images_folder"]
- self.styleTheme = view.l["resources_settings"]["theme_style"]
- self.folderIcons = view.l["resources_settings"]["icons_folder"]
- self.folderSounds = view.l["resources_settings"]["sounds_folder"]
- fullscreenGM = view.l["windows_settings"]["fullscreen"]["gm_f"]
- fullscreenOD = view.l["windows_settings"]["fullscreen"]["od_f"]
- self.WRX = view.l["windows_settings"]["window_resizable"]["x0"]
- self.WRY = view.l["windows_settings"]["window_resizable"]["y0"]
- mainWindowTitle = view.l["windows_settings"]["main_window_title"]
- self.imageDesktop = view.l["windows_settings"]["desktop_image"]
- self.iconMainwindow = view.l["windows_settings"]["mainwindow_icon"]
- #self.buttonAppsBoxIMG = view.l["buttons_settings"]["icons"]["appsbox_icon"]
- self.iconSettings = view.l["buttons_settings"]["icons"]["settings_icon"]
- self.iconQC = view.l["buttons_settings"]["icons"]["quickcommand_icon"]
- self.iconSession = view.l["buttons_settings"]["icons"]["session_icon"]
- self.iconShutdown = view.l["buttons_settings"]["icons"]["shutdown_icon"]
- self.iconReboot = view.l["buttons_settings"]["icons"]["reboot_icon"]
- self.iconYes = view.l["buttons_settings"]["icons"]["yes_icon"]
- self.iconNo = view.l["buttons_settings"]["icons"]["no_icon"]
- self.buttonsRelief = view.l["buttons_settings"]["relief"]["flat"]
- self.buttonsCompound = view.l["buttons_settings"]["compound"]["left"]
- self.buttonAppsBoxText = view.l["buttons_settings"]["text"][1]["appsbox"]
- self.buttonQCText = view.l["buttons_settings"]["text"][1]["quickcommand"]
- self.buttonSettingsText = view.l["buttons_settings"]["text"][1]["settings"]
- self.buttonSessionText = view.l["buttons_settings"]["text"][1]["session"]
- self.buttonShutdownText = view.l["buttons_settings"]["text"][1]["shutdown"]
- self.buttonRebootText = view.l["buttons_settings"]["text"][1]["reboot"]
- self.buttonCloseYesText = view.l["buttons_settings"]["text"][1]["yes"]
- self.buttonCloseNoText = view.l["buttons_settings"]["text"][1]["no"]
- self.soundInfo = view.l["sounds_settings"]["info_sound"]
- self.timewidgetFontName = view.l["timewidget_settings"]["font"]["name"]
- self.timewidgetFontSize = view.l["timewidget_settings"]["font"]["size"]
- self.timewidgetFontStyle = view.l["timewidget_settings"]["font"]["style"]
- self.timewidgetRelief = view.l["timewidget_settings"]["relief"]["flat"]
- self.timewidgetSeparator = view.l["timewidget_settings"]["separator"]["none"]
- self.timewidgetColumnsPos = view.l["timewidget_settings"]["column_position"]["nextline"]
- self.timewidgetShowTime = view.l["timewidget_settings"]["datetime"]["time"]
- self.timewidgetShowDate = view.l["timewidget_settings"]["datetime"]["date"]
- self.mainWindow = Tk()
- self.mainWindow.title(mainWindowTitle)
- #self.mainWindow.iconbitmap(self.folderResources+self.folderThemes+self.styleTheme+self.folderIcons+self.iconMainwindow)
- w = self.mainWindow.winfo_screenwidth()
- h = self.mainWindow.winfo_screenheight()
- self.mainWindow.geometry(fullscreenGM % (w, h))
- self.mainWindow.overrideredirect(fullscreenOD)
- self.mainWindow.resizable(self.WRX,self.WRY)
- self.mainWindow.protocol("WM_DELETE_WINDOW",self.blockClose)
- #init and destroy next widgets
- self.frameButtons = Frame(self.mainWindow)
- self.frameButtons.pack(side=BOTTOM,fill=X)
- self.cmdFrame0 = Frame(self.mainWindow)
- self.cmdFrame1 = Frame(self.mainWindow)
- self.widgetSession = Toplevel()
- self.widgetSession.destroy()
- self.widgetSettings = Toplevel()
- self.widgetSettings.destroy()
- self.widgetMessage = Toplevel()
- self.widgetMessage.destroy()
- self.buttonClock = Button(self.frameButtons,
- text="",
- font=(self.timewidgetFontName,self.timewidgetFontSize,self.timewidgetFontStyle),
- relief=self.timewidgetRelief)
- self.buttonClock.pack(side=LEFT)
- self.Clocks()
- #self.buttonAppsBoxIMG = PhotoImage(file=self.folderResources+self.folderThemes+self.styleTheme+self.folderIcons+self.iconAppsBox)
- self.buttonAppsBox = Button(self.frameButtons,
- text=self.buttonAppsBoxText,
- #image=self.buttonAppsBoxIMG,
- compound=self.buttonsCompound,
- relief=self.buttonsRelief,
- command=self.appsMenuSelect)
- self.buttonAppsBox.pack(side=RIGHT)
- self.buttonSettingsIMG = PhotoImage(file=self.folderResources+self.folderThemes+self.styleTheme+self.folderIcons+self.iconSettings)
- self.buttonSettings = Button(self.frameButtons,
- text=self.buttonSettingsText,
- image=self.buttonSettingsIMG,
- compound=self.buttonsCompound,
- relief=self.buttonsRelief,
- command=self.osSettings)
- self.buttonSettings.pack(side=RIGHT)
- self.buttonSessionIMG = PhotoImage(file=self.folderResources+self.folderThemes+self.styleTheme+self.folderIcons+self.iconSession)
- self.buttonSession = Button(self.frameButtons,
- text=self.buttonSessionText,
- image=self.buttonSessionIMG,
- compound=self.buttonsCompound,
- relief=self.buttonsRelief,
- command=self.osSession)
- self.buttonSession.pack(side=RIGHT)
- self.buttonQCIMG = PhotoImage(file=self.folderResources+self.folderThemes+self.styleTheme+self.folderIcons+self.iconQC)
- self.buttonQC = Button(self.frameButtons,
- text=self.buttonQCText,
- image=self.buttonQCIMG,
- compound=self.buttonsCompound,
- relief=self.buttonsRelief,
- command=self.quickCommand)
- self.buttonQC.pack(side=RIGHT)
- #upper side
- self.frameDesktop = Frame(self.mainWindow)
- self.frameDesktop.pack(side=TOP,fill=X)
- self.labelDesktopIMG = PhotoImage(file=self.folderResources+self.folderThemes+self.styleTheme+self.folderImages+self.imageDesktop)
- self.labelDesktop = Label(self.frameDesktop,image=self.labelDesktopIMG)
- self.labelDesktop.pack(side=BOTTOM)
- self.mainWindow.mainloop()
- def Clocks(self):
- now = strftime(self.timewidgetShowTime+self.timewidgetSeparator+self.timewidgetColumnsPos+self.timewidgetShowDate)
- self.buttonClock.configure(text=now)
- self.frameButtons.after(1000,self.Clocks)
- def appsMenuGet(self,event):
- widgetEvent = event.widget
- appSelected = widgetEvent.curselection()
- if ( len(appSelected) == 1 ):
- Popen(self.appsLambdaPath[appSelected[0]])
- def appsMenuSelect(self):
- self.widgetApps = Toplevel(self.mainWindow)
- self.objectInTop(self.widgetApps)
- self.widgetApps.title("Choose your app")
- self.widgetApps.resizable(self.WRX,self.WRY)
- self.appsListBox = Listbox(self.widgetApps)
- self.appsListBox.insert(END, *(self.appsLambdaName))
- for i in range(0, self.appsListBox.size()):
- if ( self.appsListBox.get(i)[0] == "-" ):
- self.appsListBox.itemconfig(i,
- foreground="gray", \
- selectforeground="white", \
- selectbackground=self.appsListBox.itemcget(i,"background"))
- self.appsListBox.pack()
- self.appsListBox.bind("<<ListboxSelect>>",self.appsMenuGet)
- def osSession(self):
- if ( self.widgetSession.winfo_exists() == 1 ):
- self.widgetSession.destroy()
- self.widgetSession = Toplevel(self.mainWindow)
- self.objectInTop(self.widgetSession)
- self.widgetSession.title("Session options")
- self.widgetSession.resizable(self.WRX,self.WRY)
- self.labelSession = Label(self.widgetSession,
- text="\nPress a button \"Shutdown\" or \"Reboot\"",
- font=("calibri",10,"bold")
- )
- self.labelSession.pack(side=BOTTOM)
- self.buttonRebootIMG = PhotoImage(file=self.folderResources+self.folderThemes+self.styleTheme+self.folderIcons+self.iconReboot)
- self.buttonReboot = Button(self.widgetSession,
- text=self.buttonRebootText,
- image=self.buttonRebootIMG,
- compound=self.buttonsCompound,
- relief=self.buttonsRelief,
- command=self.restartProgram)
- self.buttonReboot.pack(side=LEFT)
- self.buttonShutdownIMG = PhotoImage(file=self.folderResources+self.folderThemes+self.styleTheme+self.folderIcons+self.iconShutdown)
- self.buttonShutdown = Button(self.widgetSession,
- text=self.buttonShutdownText,
- image=self.buttonShutdownIMG,
- compound=self.buttonsCompound,
- relief=self.buttonsRelief,
- command=self.shutdownProgram)
- self.buttonShutdown.pack(side=RIGHT)
- def osSettings(self):
- if ( self.widgetSettings.winfo_exists() == 1 ):
- self.widgetSettings.destroy()
- self.widgetSettings = Toplevel(self.mainWindow)
- self.objectInTop(self.widgetSettings)
- self.widgetSettings.title("WP settings")
- self.widgetSettings.resizable(self.WRX,self.WRY)
- self.buttonDesktopBG = Button(self.widgetSettings,
- text="Background image",
- relief=self.buttonsRelief,
- command=self.settingsChangeBG)
- self.buttonDesktopBG.pack()
- def settingsChangeBG(self):
- pass
- def quickCommand(self):
- self.buttonQC.pack_forget()
- self.buttonHide = Button(self.frameButtons,
- text="Hide",
- command=self.hideQCButtons,
- relief=self.buttonsRelief)
- self.buttonHide.pack(side=RIGHT)
- self.buttonAccept = Button(self.frameButtons,
- text="Accept",
- command=self.qcCheck,
- relief=self.buttonsRelief)
- self.buttonAccept.pack(side=RIGHT)
- self.entryQC = Entry(self.frameButtons)
- self.entryQC.pack(side=RIGHT)
- self.entryQC.focus_set()
- self.entryQC.bind("<Return>",lambda x: self.qcCheck())
- self.labelQC = Label(self.frameButtons,text="Command: ")
- self.labelQC.pack(side=RIGHT)
- def hideQCButtons(self):
- self.buttonQC.pack(side=RIGHT)
- self.buttonAccept.pack_forget()
- self.buttonHide.pack_forget()
- self.entryQC.pack_forget()
- self.labelQC.pack_forget()
- def qcCheck(self):
- qc = self.entryQC.get()
- if ( "msg:" in qc ):
- self._messagebox("Message",qc.replace("msg:",""))
- elif ( "do:" in qc ):
- self.doCheck(qc.replace("do:",""))
- elif ( "info:" in qc ):
- self.infoCheck(qc.replace("info:",""))
- else:
- self._messagebox("Quick Command error","Unknow command: \""+qc+"\"")
- def info(self,infoParameter):
- infoSound = pygame.mixer.Sound(self.folderResources+self.folderThemes+self.styleTheme+self.folderSounds+self.soundInfo)
- infoSound.play()
- sw = self.mainWindow.winfo_screenwidth()
- sh = self.mainWindow.winfo_screenheight()
- swh = "W: "+str(sw)+"|H: "+str(sh)
- if ( infoParameter == "your-os" ):
- self._messagebox("Scren information",swh)
- elif ( infoParameter == "virtual-os" ):
- self._messagebox("Screen information","W: 800|H: 600")
- elif ( infoParameter == "" ):
- self._messagebox("Scren information error","Try to use screen_info{} with a parameter virtual-os or your-os")
- else:
- self._messagebox("Information error","Error is \""+infoParameter+"\"")
- def _messagebox(self,msgTitle,msgText):
- if ( self.widgetMessage.winfo_exists() == 1 ):
- self.widgetMessage.destroy()
- self.widgetMessage = Toplevel(self.mainWindow)
- self.objectInTop(self.widgetMessage)
- self.widgetMessage.title(msgTitle)
- self.widgetMessage.resizable(self.WRX,self.WRY)
- self.frameMessage0 = Frame(width=100,height=100)
- self.frameMessage1 = Frame(width=100,height=100)
- self.frameMessage0.pack(fill="both", expand=True, padx=10, pady=10)
- self.frameMessage1.place(in_=self.frameMessage0,anchor="c",
- relx=.5,rely=.5)
- self.labelMessage = Label(self.widgetMessage,text=msgText)
- self.labelMessage.pack()
- self.widgetMessage.geometry("300x300")
- def doCheck(self,commandParameter):
- if ( commandParameter.find("cmdl{start}") != -1 ):
- print(commandParameter)
- self.commandLineInit()
- elif ( commandParameter.find("cmdl{exit}") != -1 ):
- self.commandLineClose()
- else:
- self._messagebox("Systemdo error","Error is \""+commandParameter+"\"")
- def infoCheck(self,infoParameter):
- if ( infoParameter.find("screen") != -1 ):
- infoParameter = sub("^\w+{","",infoParameter)
- infoParameter = infoParameter.replace("}","")
- print(infoParameter)
- self.info(infoParameter)
- def commandLineInit(self):
- self.frameDesktop.pack_forget()
- # self.desktop_label.pack_forget()
- if ( self.cmdFrame0.winfo_exists() == 1 and self.cmdFrame1.winfo_exists() == 1 ):
- self.cmdFrame0.destroy()
- self.cmdFrame1.destroy()
- self.cmdFrame0 = Frame(width=100,height=100,bg="black")
- self.cmdFrame1 = Frame(width=100,height=100,bg="black")
- self.cmdFrame0.pack(fill="both", expand=True, padx=10, pady=10)
- self.cmdFrame1.place(in_=self.cmdFrame0,
- anchor="c",
- relx=.5,
- rely=.5)
- self.cmdText = Text(self.cmdFrame1,
- font=("doslike",10),
- insertbackground="white",
- bg="black",
- fg="white",
- bd=0)
- self.cmdEntry = Entry(self.cmdFrame0,
- width=100,
- font=("doslike",10),
- insertbackground="white",
- bg="black",
- fg="white",
- bd=0)
- self.cmdEntry.pack(side=TOP)
- self.cmdText.pack(side=TOP)
- self.cmdText.insert(1.0, "GEOS command line [Syntax is WPL 2.0] | ")
- self.cmdText.config(state=DISABLED)
- def commandLineClose(self):
- if ( self.cmdFrame0.winfo_exists() == 1 and self.cmdFrame1.winfo_exists() == 1 ):
- self.cmdFrame0.destroy()
- self.cmdFrame1.destroy()
- self.frameDesktop.pack(side=TOP,fill=X)
- #self.desktop_label.pack(side=BOTTOM)
- def yesno(self,yesArg,noArg):
- self.widgetCloseQuestion = Toplevel(self.mainWindow)
- self.objectInTop(self.widgetCloseQuestion)
- self.buttonCloseYesIMG = PhotoImage(file=self.folderResources+self.folderThemes+self.styleTheme+self.folderIcons+self.iconYes)
- self.buttonCloseYes = Button(self.widgetCloseQuestion,
- text=self.buttonCloseYesText,
- image=self.buttonCloseYesIMG,
- compound=self.buttonsCompound,
- relief=self.buttonsRelief,
- command=lambda y: sys.exit()
- )
- self.buttonCloseNoIMG = PhotoImage(file=self.folderResources+self.folderThemes+self.styleTheme+self.folderIcons+self.iconNo)
- self.buttonCloseNo = Button(self.widgetCloseQuestion,
- text=self.buttonCloseNoText,
- image=self.buttonCloseNoIMG,
- compound=self.buttonsCompound,
- relief=self.buttonsRelief,
- command=lambda n: print("Hello"))
- def combineFunction(self,*funcs):
- def combineFunctionResult(*args, **kwargs):
- for f in funcs:
- f(*args, **kwargs)
- return combineFunctionResult
- def objectInTop(self,*objName):
- for o in objName:
- o.wm_attributes("-topmost", 1)
- def restartProgram(self):
- python = sys.executable
- os.execl(python, python, * sys.argv)
- def shutdownProgram(self):
- unhideTaskbar()
- self.mainWindow.destroy()
- def blockClose(self):
- pass
- def checkMouseMotion(event):
- self.XMP, self.YMP = event.x, event.y
- print('{}, {}'.format(self.XMP, self.YMP))
- app = wpClass()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement