22from tkinter import filedialog
33from PIL import ImageTk , Image
44
5- class main_ :
5+ def to_bool (x ):
6+ if x in [1 , "1" , "true" , "True" , "TRUE" , True ]:
7+ return True
8+ elif x in [0 , - 1 , "-1" , "0" , "False" , False , "FALSE" ]:
9+ return False
10+
11+ class app :
612 def __init__ (self , master ):
713 self .master = master
814 self .alpha_frame = tk .Frame (self .master , bg = "black" )
915 self .getfile = tk .Button (text = 'Select a File' , width = 30 , command = self .new_window , fg = "white" , bg = "grey" , activebackground = "black" , activeforeground = "white" , bd = "0" )
10- on_color = "green"
11- off_color = "white"
1216
13- def on_check ():
14- self .full_val = cbvar .get ()
15- if cbvar .get () == "1" :
16- self .fullscreen ["fg" ] = on_color # if (get current checkbutton state) is "1" then....
17- else :
18- self .fullscreen ["fg" ] = off_color
19-
20- cbvar = tk .StringVar (self .master )
21- cbvar .set (0 )
22- self .full_val = 0
23- self .fullscreen = tk .Checkbutton (variable = cbvar , text = "Set Window To Full Screen" , width = 25 , height = 2 ,
24- bg = "black" , activeforeground = "white" , activebackground = "black" , fg = "white" , bd = "0" , command = on_check )
25- self .alpha = tk .Scale (self .alpha_frame , width = 25 , fg = "white" , bg = "black" , activebackground = "black" , bd = "0" , from_ = 10 , to = 100 )
17+ self .fullvar = tk .StringVar (self .master )
18+ self .bordervar = tk .StringVar (self .master )
19+ self .fullvar .set (0 )
20+ self .bordervar .set (0 )
21+ self .fullscreen = tk .Checkbutton (variable = self .fullvar , text = "Set Window To Full Screen" , width = 25 , height = 2 ,
22+ bg = "black" , activeforeground = "white" , activebackground = "black" , fg = "white" , bd = 0 , command = lambda : self .on_check (self .fullvar , self .fullscreen ))
23+ self .border = tk .Checkbutton (variable = self .bordervar , text = "Window Without border" , width = 25 , height = 2 ,
24+ bg = "black" , activeforeground = "white" , activebackground = "black" , fg = "white" ,
25+ bd = 0 , command = lambda : self .on_check (self .bordervar , self .border ))
26+ self .alpha = tk .Scale (self .alpha_frame , width = 25 , fg = "white" , bg = "black" , activebackground = "black" , bd = 0 , from_ = 10 , to = 100 )
2627 self .lable = tk .Label (self .alpha_frame , text = "Alpha Value: " , fg = "white" , bg = "black" , activebackground = "black" , activeforeground = "white" )
2728 self .getfile .grid (row = 1 , column = 1 , columnspan = 2 )
2829 self .fullscreen .grid (row = 2 , column = 1 )
30+ self .border .grid (row = 3 , column = 1 )
2931 self .alpha .grid (row = 1 , column = 2 )
3032 self .lable .grid (row = 1 , column = 1 )
31- self .alpha_frame .grid (row = 3 , column = 1 , columnspan = 2 )
33+ self .alpha_frame .grid (row = 4 , column = 1 , columnspan = 2 )
34+
35+ def on_check (self , var , obj ):
36+ if var .get () == "1" :
37+ obj ["fg" ] = "green"
38+ else :
39+ obj ["fg" ] = "white"
3240
3341 def new_window (self ):
3442 path = filedialog .askopenfilename (initialdir = "/" , title = "Select a Image" ,
3543 filetypes = [("image files" , "*.png" ), ("image files" , "*.jpg" ),
3644 ("image files" , "*.jpeg" )])
3745 if len (path ) > 0 :
38- if self .full_val == 1 or self .full_val :
39- self .full_val = True
40- else :
41- self .full_val = False
42-
43- self .alpha_val = self .alpha .get () / 100
46+ alpha_val = self .alpha .get () / 100
4447 image_window = tk .Toplevel (self .master )
4548 image_window .iconbitmap ("mc@H.ico" )
46- image_window .attributes ("-alpha" , self .alpha_val , "-fullscreen" , self .full_val )
47- image_window .configure (background = "black" )
49+ image_window .configure (background = "#fff123" )
50+ image_window .attributes ("-transparentcolor" , "#fff123" , "-alpha" , alpha_val , "-fullscreen" , self .fullvar .get ())
51+ image_window .overrideredirect (self .bordervar .get ())
4852 new_window (image_window , path )
4953 else :
5054 x = 1
5155 for i in range (x ):
5256 wr = tk .Tk ()
53- wr .title ("Image overlay By DON'T#7191 for Minecraft@Home" )
57+ wr .title ("Image overlay By DON'T#9171 for Minecraft@Home" )
5458 wr .configure (background = "red" )
5559 wr .iconbitmap ("mc@H.ico" )
5660 error (wr , "There is No File Selected" , self .master ).window ()
@@ -66,46 +70,69 @@ def __init__(self, master, msg, app_master):
6670 self .app_master = app_master
6771
6872 def window (self ):
69- self . error_frame = tk .Frame (self .master , bg = "red" )
70- self . warning = tk .Button (self . error_frame , text = self .msg + " Click here to reload" , bg = "red" , fg = "white" , width = 35 , height = 2 , command = self .close_reload )
71- self . warning .grid (row = 1 , column = 1 )
72- self . error_frame .grid (row = 1 , column = 1 )
73+ error_frame = tk .Frame (self .master , bg = "red" )
74+ warning = tk .Button (error_frame , text = self .msg + " Click here to reload" , bg = "red" , fg = "white" , width = 35 , height = 2 , command = self .close_reload )
75+ warning .grid (row = 1 , column = 1 )
76+ error_frame .grid (row = 1 , column = 1 )
7377
7478 def close_reload (self ):
7579 self .master .destroy ()
76- main_ (self .app_master ).new_window ()
80+ app (self .app_master ).new_window ()
7781
7882class new_window :
7983 def __init__ (self , master , filepath ):
8084 self .master = master
81- self .image_frame = tk .Frame (self .master , bg = "black" )
8285 self .filepath = filepath
83- self .quit = tk .Button (self .image_frame , text = "Quit" , command = self .close_windows )
86+ vis = tk .StringVar (self .master )
87+ vis .set (1 )
88+
89+ def change ():
90+ # print("[DEBUG] Vis: ", vis.get(), type(vis.get()), " Bool: ", to_bool(vis.get()))
91+ if not to_bool (vis .get ()):
92+ self .visible ["bg" ] = "white"
93+ self .visible ["fg" ] = "Black"
94+ self .visible ["text" ] = "Visibility [OFF]"
95+ self .canvas .pack_forget ()
96+ else :
97+ self .visible ["bg" ] = "black"
98+ self .visible ["fg" ] = "grey"
99+ self .visible ["text" ] = "Visibility [ON]"
100+ self .canvas .pack ()
84101
85102 if self .filepath .find (".png" ) != - 1 :
86103 self .img_int = tk .PhotoImage (file = self .filepath )
87104 else :
88105 self .img_int = ImageTk .PhotoImage (Image .open (self .filepath ))
89106
90- self .image = tk .Label (self .image_frame , image = self .img_int )
91- self .image .pack ()
92- self .image_frame .grid (row = 1 , column = 1 )
107+ width , height = Image .open (self .filepath ).size
108+ self .canvas = tk .Canvas (self .master , bg = "black" , highlightthickness = 0 , bd = 0 , width = width , height = height )
109+ self .canvas .pack ()
110+ self .canvas .create_image (width / 2 , height / 2 , image = self .img_int )
111+ self .quit_button = tk .Button (self .master , text = "Quit" , command = self .close_windows , anchor = "w" , width = 5 , activebackground = "red" , bd = 0 , bg = "black" , fg = "white" )
112+ self .visible = tk .Checkbutton (self .master , variable = vis , text = "Visiblility [ON]" , fg = "grey" , bg = "black" , width = 12 , activebackground = "black" , bd = 0 , command = lambda : change ())
113+ attributes = self .master .attributes ()
114+
115+ if attributes [7 ]:
116+ self .visible .place (x = self .master .winfo_width (), y = 0 , anchor = "ne" )
117+ else :
118+ self .visible .place (x = self .master .winfo_width () - 25 , y = 0 , anchor = "ne" )
119+ # self.visible_wind = self.canvas.create_window(width, 0, anchor="ne", window=self.visible)
120+ self .quit_button_window = self .canvas .create_window (0 , 0 , anchor = 'nw' , window = self .quit_button )
93121
94122 def close_windows (self ):
95123 self .master .destroy ()
96124
97125def main ():
98126 root = tk .Tk ()
99- root .title ("Image overlay By DON'T#7191 for Minecraft@Home" )
127+ root .title ("Image overlay By DON'T#9171 for Minecraft@Home" )
100128 root .iconbitmap ("mc@H.ico" )
101129 screen_width = root .winfo_screenwidth ()
102130 screen_height = root .winfo_screenheight ()
103131 root .geometry ("215x225+%d+%d" % (screen_width / 2 - 275 , screen_height / 2 - 125 ))
104132 root .configure (background = "black" )
105- main_ (root )
133+ app (root )
106134 root .mainloop ()
107135
108136
109137if __name__ == '__main__' :
110138 main ()
111-
0 commit comments