2727from lib .core .settings import SITE
2828from lib .core .settings import VERSION_STRING
2929from lib .core .settings import WIKI_PAGE
30- from thirdparty .six .moves import tkinter_messagebox as _tkinter_messagebox
3130from thirdparty .six .moves import queue as _queue
3231
3332line = ""
3635
3736def runGui (parser ):
3837 try :
39- import tkinter
40- import tkinter .scrolledtext
41- import tkinter .ttk
38+ from thirdparty .six .moves import tkinter as _tkinter
39+ from thirdparty .six .moves import tkinter_scrolledtext as _tkinter_scrolledtext
40+ from thirdparty .six .moves import tkinter_ttk as _tkinter_ttk
41+ from thirdparty .six .moves import tkinter_messagebox as _tkinter_messagebox
4242 except ImportError as ex :
4343 raise SqlmapMissingDependence ("missing dependence ('%s')" % getSafeExString (ex ))
4444
4545 # Reference: https://www.reddit.com/r/learnpython/comments/985umy/limit_user_input_to_only_int_with_tkinter/e4dj9k9?utm_source=share&utm_medium=web2x
46- class ConstrainedEntry (tkinter .Entry ):
46+ class ConstrainedEntry (_tkinter .Entry ):
4747 def __init__ (self , master = None , ** kwargs ):
48- self .var = tkinter .StringVar ()
48+ self .var = _tkinter .StringVar ()
4949 self .regex = kwargs ["regex" ]
5050 del kwargs ["regex" ]
51- tkinter .Entry .__init__ (self , master , textvariable = self .var , ** kwargs )
51+ _tkinter .Entry .__init__ (self , master , textvariable = self .var , ** kwargs )
5252 self .old_value = ''
5353 self .var .trace ('w' , self .check )
5454 self .get , self .set = self .var .get , self .var .set
@@ -60,9 +60,9 @@ def check(self, *args):
6060 self .set (self .old_value )
6161
6262 # Reference: https://code.activestate.com/recipes/580726-tkinter-notebook-that-fits-to-the-height-of-every-/
63- class AutoresizableNotebook (tkinter . ttk .Notebook ):
63+ class AutoresizableNotebook (_tkinter_ttk .Notebook ):
6464 def __init__ (self , master = None , ** kw ):
65- tkinter . ttk .Notebook .__init__ (self , master , ** kw )
65+ _tkinter_ttk .Notebook .__init__ (self , master , ** kw )
6666 self .bind ("<<NotebookTabChanged>>" , self ._on_tab_changed )
6767
6868 def _on_tab_changed (self ,event ):
@@ -71,11 +71,11 @@ def _on_tab_changed(self,event):
7171 tab = event .widget .nametowidget (event .widget .select ())
7272 event .widget .configure (height = tab .winfo_reqheight ())
7373
74- window = tkinter .Tk ()
74+ window = _tkinter .Tk ()
7575 window .title (VERSION_STRING )
7676
7777 # Reference: https://www.holadevs.com/pregunta/64750/change-selected-tab-color-in-ttknotebook
78- style = tkinter . ttk .Style ()
78+ style = _tkinter_ttk .Style ()
7979 settings = {"TNotebook.Tab" : {"configure" : {"padding" : [5 , 1 ], "background" : "#fdd57e" }, "map" : {"background" : [("selected" , "#C70039" ), ("active" , "#fc9292" )], "foreground" : [("selected" , "#ffffff" ), ("active" , "#000000" )]}}}
8080 style .theme_create ("custom" , parent = "alt" , settings = settings )
8181 style .theme_use ("custom" )
@@ -119,7 +119,7 @@ def onReturnPress(event):
119119 except :
120120 return
121121
122- event .widget .insert (tkinter .END , "\n " )
122+ event .widget .insert (_tkinter .END , "\n " )
123123
124124 return "break"
125125
@@ -174,11 +174,11 @@ def enqueue(stream, queue):
174174 thread .daemon = True
175175 thread .start ()
176176
177- top = tkinter .Toplevel ()
177+ top = _tkinter .Toplevel ()
178178 top .title ("Console" )
179179
180180 # Reference: https://stackoverflow.com/a/13833338
181- text = tkinter . scrolledtext .ScrolledText (top , undo = True )
181+ text = _tkinter_scrolledtext .ScrolledText (top , undo = True )
182182 text .bind ("<Key>" , onKeyPress )
183183 text .bind ("<Return>" , onReturnPress )
184184 text .pack ()
@@ -191,23 +191,23 @@ def enqueue(stream, queue):
191191 try :
192192 #line = queue.get_nowait()
193193 line = queue .get (timeout = .1 )
194- text .insert (tkinter .END , line )
194+ text .insert (_tkinter .END , line )
195195 except _queue .Empty :
196- text .see (tkinter .END )
196+ text .see (_tkinter .END )
197197 text .update_idletasks ()
198198
199- menubar = tkinter .Menu (window )
199+ menubar = _tkinter .Menu (window )
200200
201- filemenu = tkinter .Menu (menubar , tearoff = 0 )
202- filemenu .add_command (label = "Open" , state = tkinter .DISABLED )
203- filemenu .add_command (label = "Save" , state = tkinter .DISABLED )
201+ filemenu = _tkinter .Menu (menubar , tearoff = 0 )
202+ filemenu .add_command (label = "Open" , state = _tkinter .DISABLED )
203+ filemenu .add_command (label = "Save" , state = _tkinter .DISABLED )
204204 filemenu .add_separator ()
205205 filemenu .add_command (label = "Exit" , command = window .quit )
206206 menubar .add_cascade (label = "File" , menu = filemenu )
207207
208208 menubar .add_command (label = "Run" , command = run )
209209
210- helpmenu = tkinter .Menu (menubar , tearoff = 0 )
210+ helpmenu = _tkinter .Menu (menubar , tearoff = 0 )
211211 helpmenu .add_command (label = "Official site" , command = lambda : webbrowser .open (SITE ))
212212 helpmenu .add_command (label = "Github pages" , command = lambda : webbrowser .open (GIT_PAGE ))
213213 helpmenu .add_command (label = "Wiki pages" , command = lambda : webbrowser .open (WIKI_PAGE ))
@@ -225,33 +225,33 @@ def enqueue(stream, queue):
225225 frames = {}
226226
227227 for group in parser .option_groups :
228- frame = frames [group .title ] = tkinter .Frame (notebook , width = 200 , height = 200 )
228+ frame = frames [group .title ] = _tkinter .Frame (notebook , width = 200 , height = 200 )
229229 notebook .add (frames [group .title ], text = group .title )
230230
231- tkinter .Label (frame ).grid (column = 0 , row = 0 , sticky = tkinter .W )
231+ _tkinter .Label (frame ).grid (column = 0 , row = 0 , sticky = _tkinter .W )
232232
233233 row = 1
234234 if group .get_description ():
235- tkinter .Label (frame , text = "%s:" % group .get_description ()).grid (column = 0 , row = 1 , columnspan = 3 , sticky = tkinter .W )
236- tkinter .Label (frame ).grid (column = 0 , row = 2 , sticky = tkinter .W )
235+ _tkinter .Label (frame , text = "%s:" % group .get_description ()).grid (column = 0 , row = 1 , columnspan = 3 , sticky = _tkinter .W )
236+ _tkinter .Label (frame ).grid (column = 0 , row = 2 , sticky = _tkinter .W )
237237 row += 2
238238
239239 for option in group .option_list :
240- tkinter .Label (frame , text = "%s " % parser .formatter ._format_option_strings (option )).grid (column = 0 , row = row , sticky = tkinter .W )
240+ _tkinter .Label (frame , text = "%s " % parser .formatter ._format_option_strings (option )).grid (column = 0 , row = row , sticky = _tkinter .W )
241241
242242 if option .type == "string" :
243- widget = tkinter .Entry (frame )
243+ widget = _tkinter .Entry (frame )
244244 elif option .type == "float" :
245245 widget = ConstrainedEntry (frame , regex = r"\A\d*\.?\d*\Z" )
246246 elif option .type == "int" :
247247 widget = ConstrainedEntry (frame , regex = r"\A\d*\Z" )
248248 else :
249- var = tkinter .IntVar ()
250- widget = tkinter .Checkbutton (frame , variable = var )
249+ var = _tkinter .IntVar ()
250+ widget = _tkinter .Checkbutton (frame , variable = var )
251251 widget .var = var
252252
253253 first = first or widget
254- widget .grid (column = 1 , row = row , sticky = tkinter .W )
254+ widget .grid (column = 1 , row = row , sticky = _tkinter .W )
255255
256256 window ._widgets [(option .dest , option .type )] = widget
257257
@@ -260,11 +260,11 @@ def enqueue(stream, queue):
260260 if hasattr (widget , "insert" ):
261261 widget .insert (0 , default )
262262
263- tkinter .Label (frame , text = " %s" % option .help ).grid (column = 2 , row = row , sticky = tkinter .W )
263+ _tkinter .Label (frame , text = " %s" % option .help ).grid (column = 2 , row = row , sticky = _tkinter .W )
264264
265265 row += 1
266266
267- tkinter .Label (frame ).grid (column = 0 , row = row , sticky = tkinter .W )
267+ _tkinter .Label (frame ).grid (column = 0 , row = row , sticky = _tkinter .W )
268268
269269 notebook .pack (expand = 1 , fill = "both" )
270270 notebook .enable_traversal ()
0 commit comments