forked from jamesthejellyfish/isaac-save-edit-script
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gui.py
524 lines (468 loc) · 46 KB
/
gui.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
#
# GUI module generated by PAGE version 8.0
# in conjunction with Tcl version 8.6
# Feb 10, 2024 11:13:24 AM EST platform: Windows NT
import sys
import tkinter as tk
import tkinter.ttk as ttk
from tkinter.constants import *
import os.path
_location = os.path.dirname(__file__)
import gui_support
import script
from ttkwidgets import CheckboxTreeview
_bgcolor = '#d9d9d9'
_fgcolor = '#000000'
_tabfg1 = 'black'
_tabfg2 = 'white'
_bgmode = 'light'
_tabbg1 = '#d9d9d9'
_tabbg2 = 'gray40'
_style_code_ran = 0
def _style_code():
global _style_code_ran
if _style_code_ran: return
try: gui_support.root.tk.call('source',
os.path.join(_location, 'themes', 'default.tcl'))
except: pass
style = ttk.Style()
style.theme_use('default')
style.configure('.', font = "TkDefaultFont")
if sys.platform == "win32":
style.theme_use('winnative')
_style_code_ran = 1
class Toplevel1:
def __init__(self, top=None):
'''This class configures and populates the toplevel window.
top is the toplevel containing window.'''
top.geometry("913x236+438+315")
top.minsize(120, 1)
top.maxsize(1711, 941)
top.resizable(1, 1)
top.title("Isaac Save Editor")
top.configure(background="#d9d9d9")
top.configure(highlightbackground="#d9d9d9")
top.configure(highlightcolor="#000000")
self.top = top
self.greed_machine = tk.StringVar()
self.donation_machine = tk.StringVar()
self.win_streak = tk.StringVar()
self.eden_tokens = tk.StringVar()
self.combobox = tk.StringVar()
self.menubar = tk.Menu(top,font="TkMenuFont",bg=_bgcolor,fg=_fgcolor)
top.configure(menu = self.menubar)
self.menubar.add_command(command=lambda:gui_support.openSaveFile()
,compound='left', font="-family {Segoe UI} -size 9"
,label='Open Isaac Save File')
_style_code()
self.TNotebook1 = ttk.Notebook(self.top)
self.TNotebook1.place(relx=0.0, rely=0.0, relheight=1.0, relwidth=1.0)
self.TNotebook1_t1 = tk.Frame(self.TNotebook1)
self.TNotebook1.add(self.TNotebook1_t1, padding=3)
self.TNotebook1.tab(0, text='''Misc''', compound="left"
,underline='''-1''', )
self.TNotebook1_t1.configure(background="#d9d9d9")
self.TNotebook1_t1.configure(highlightbackground="#d9d9d9")
self.TNotebook1_t1.configure(highlightcolor="#000000")
self.TNotebook1_t2 = tk.Frame(self.TNotebook1)
self.TNotebook1.add(self.TNotebook1_t2, padding=3)
self.TNotebook1.tab(1, text='''Completion Marks''', compound="left"
,underline='''-1''', )
self.TNotebook1_t2.configure(background="#d9d9d9")
self.TNotebook1_t2.configure(highlightbackground="#d9d9d9")
self.TNotebook1_t2.configure(highlightcolor="#000000")
self.TNotebook1_t3 = tk.Frame(self.TNotebook1)
self.TNotebook1.add(self.TNotebook1_t3, padding=3)
self.TNotebook1.tab(2, text='''Secrets''', compound="left"
,underline='''-1''', )
self.TNotebook1_t3.configure(background="#d9d9d9")
self.TNotebook1_t3.configure(highlightbackground="#d9d9d9")
self.TNotebook1_t3.configure(highlightcolor="#000000")
self.TNotebook1_t4 = tk.Frame(self.TNotebook1)
self.TNotebook1.add(self.TNotebook1_t4, padding=3)
self.TNotebook1.tab(3, text='''Items''', compound="left"
,underline='''-1''', )
self.TNotebook1_t4.configure(background="#d9d9d9")
self.TNotebook1_t4.configure(highlightbackground="#d9d9d9")
self.TNotebook1_t4.configure(highlightcolor="#000000")
self.TNotebook1_t5 = tk.Frame(self.TNotebook1)
self.TNotebook1.add(self.TNotebook1_t5, padding=3)
self.TNotebook1.tab(4, text='''Challenges''', compound="left"
,underline='''-1''', )
self.TNotebook1_t5.configure(background="#d9d9d9")
self.TNotebook1_t5.configure(highlightbackground="#d9d9d9")
self.TNotebook1_t5.configure(highlightcolor="#000000")
self.TLabelframe1_1 = ttk.Labelframe(self.TNotebook1_t1)
self.TLabelframe1_1.place(relx=0.187, rely=0.217, relheight=0.212
, relwidth=0.112)
self.TLabelframe1_1.configure(relief='')
self.TLabelframe1_1.configure(text='''Items''')
self.Button1_1 = tk.Button(self.TLabelframe1_1)
self.Button1_1.place(relx=0.078, rely=0.356, height=26, width=87
, bordermode='ignore')
self.Button1_1.configure(activebackground="#d9d9d9")
self.Button1_1.configure(activeforeground="black")
self.Button1_1.configure(background="#d9d9d9")
self.Button1_1.configure(command=lambda:gui_support.unlockAllItems())
self.Button1_1.configure(disabledforeground="#a3a3a3")
self.Button1_1.configure(font="-family {Segoe UI} -size 9")
self.Button1_1.configure(foreground="#000000")
self.Button1_1.configure(highlightbackground="#d9d9d9")
self.Button1_1.configure(highlightcolor="#000000")
self.Button1_1.configure(text='''Unlock All''')
self.TLabelframe1_1_1 = ttk.Labelframe(self.TNotebook1_t1)
self.TLabelframe1_1_1.place(relx=0.187, rely=0.429, relheight=0.212
, relwidth=0.112)
self.TLabelframe1_1_1.configure(relief='')
self.TLabelframe1_1_1.configure(text='''Challenges''')
self.Button1_1_1 = tk.Button(self.TLabelframe1_1_1)
self.Button1_1_1.place(relx=0.078, rely=0.356, height=26, width=87
, bordermode='ignore')
self.Button1_1_1.configure(activebackground="#d9d9d9")
self.Button1_1_1.configure(activeforeground="black")
self.Button1_1_1.configure(background="#d9d9d9")
self.Button1_1_1.configure(command=lambda:gui_support.unlockAllChallenges())
self.Button1_1_1.configure(disabledforeground="#a3a3a3")
self.Button1_1_1.configure(font="-family {Segoe UI} -size 9")
self.Button1_1_1.configure(foreground="#000000")
self.Button1_1_1.configure(highlightbackground="#d9d9d9")
self.Button1_1_1.configure(highlightcolor="#000000")
self.Button1_1_1.configure(text='''Unlock All''')
self.Labelframe1_2 = tk.LabelFrame(self.TNotebook1_t1)
self.Labelframe1_2.place(relx=0.022, rely=0.236, relheight=0.229
, relwidth=0.145)
self.Labelframe1_2.configure(relief='groove')
self.Labelframe1_2.configure(font="-family {Segoe UI} -size 9")
self.Labelframe1_2.configure(foreground="#000000")
self.Labelframe1_2.configure(text='''Greed Machine''')
self.Labelframe1_2.configure(background="#d9d9d9")
self.Labelframe1_2.configure(highlightbackground="#d9d9d9")
self.Labelframe1_2.configure(highlightcolor="#000000")
self.Entry1_2 = tk.Entry(self.Labelframe1_2)
self.Entry1_2.place(relx=0.068, rely=0.395, height=20, relwidth=0.636
, bordermode='ignore')
self.Entry1_2.configure(background="white")
self.Entry1_2.configure(disabledforeground="#a3a3a3")
self.Entry1_2.configure(font="-family {Courier New} -size 10")
self.Entry1_2.configure(foreground="#000000")
self.Entry1_2.configure(highlightbackground="#d9d9d9")
self.Entry1_2.configure(highlightcolor="#000000")
self.Entry1_2.configure(insertbackground="#000000")
self.Entry1_2.configure(selectbackground="#d9d9d9")
self.Entry1_2.configure(selectforeground="black")
self.Entry1_2.configure(textvariable=self.greed_machine)
self.Entry1_2.configure(validate="focusout", validatecommand=lambda:gui_support.updateGreedMachine(self.greed_machine.get()))
self.Entry1_2.bind("<Key-Return>", lambda e:gui_support.updateGreedMachine(self.greed_machine.get()), True)
gui_support.setInfo("greed_widget", self.greed_machine)
self.Labelframe1 = tk.LabelFrame(self.TNotebook1_t1)
self.Labelframe1.place(relx=0.024, rely=0.033, relheight=0.229
, relwidth=0.145)
self.Labelframe1.configure(relief='groove')
self.Labelframe1.configure(font="-family {Segoe UI} -size 9")
self.Labelframe1.configure(foreground="#000000")
self.Labelframe1.configure(text='''Donation Machine''')
self.Labelframe1.configure(background="#d9d9d9")
self.Labelframe1.configure(highlightbackground="#d9d9d9")
self.Labelframe1.configure(highlightcolor="#000000")
self.Entry1 = tk.Entry(self.Labelframe1)
self.Entry1.place(relx=0.068, rely=0.405, height=20, relwidth=0.636
, bordermode='ignore')
self.Entry1.configure(background="white")
self.Entry1.configure(disabledforeground="#a3a3a3")
self.Entry1.configure(font="-family {Courier New} -size 10")
self.Entry1.configure(foreground="#000000")
self.Entry1.configure(highlightbackground="#d9d9d9")
self.Entry1.configure(highlightcolor="#000000")
self.Entry1.configure(insertbackground="#000000")
self.Entry1.configure(selectbackground="#d9d9d9")
self.Entry1.configure(selectforeground="black")
self.Entry1.configure(textvariable=self.donation_machine)
self.Entry1.configure(validate="focusout", validatecommand=lambda:gui_support.updateDonationMachine(self.donation_machine.get()))
self.Entry1.bind("<Key-Return>", lambda e:gui_support.updateDonationMachine(self.donation_machine.get()), True)
gui_support.setInfo("donation_widget", self.donation_machine)
self.Labelframe1_2_1 = tk.LabelFrame(self.TNotebook1_t1)
self.Labelframe1_2_1.place(relx=0.022, rely=0.429, relheight=0.229
, relwidth=0.145)
self.Labelframe1_2_1.configure(relief='groove')
self.Labelframe1_2_1.configure(font="-family {Segoe UI} -size 9")
self.Labelframe1_2_1.configure(foreground="#000000")
self.Labelframe1_2_1.configure(text='''Win Streak''')
self.Labelframe1_2_1.configure(background="#d9d9d9")
self.Labelframe1_2_1.configure(highlightbackground="#d9d9d9")
self.Labelframe1_2_1.configure(highlightcolor="#000000")
self.Entry1_2_1 = tk.Entry(self.Labelframe1_2_1)
self.Entry1_2_1.place(relx=0.068, rely=0.395, height=20, relwidth=0.636
, bordermode='ignore')
self.Entry1_2_1.configure(background="white")
self.Entry1_2_1.configure(disabledforeground="#a3a3a3")
self.Entry1_2_1.configure(font="-family {Courier New} -size 10")
self.Entry1_2_1.configure(foreground="#000000")
self.Entry1_2_1.configure(highlightbackground="#d9d9d9")
self.Entry1_2_1.configure(highlightcolor="#000000")
self.Entry1_2_1.configure(insertbackground="#000000")
self.Entry1_2_1.configure(selectbackground="#d9d9d9")
self.Entry1_2_1.configure(selectforeground="black")
self.Entry1_2_1.configure(textvariable=self.win_streak)
self.Entry1_2_1.configure(validate="focusout", validatecommand=lambda:gui_support.updateWinStreak(self.win_streak.get()))
self.Entry1_2_1.bind("<Key-Return>", lambda e:gui_support.updateWinStreak(self.win_streak.get()), True)
gui_support.setInfo("streak_widget", self.win_streak)
self.Labelframe1_2_1_1 = tk.LabelFrame(self.TNotebook1_t1)
self.Labelframe1_2_1_1.place(relx=0.022, rely=0.682, relheight=0.229
, relwidth=0.145)
self.Labelframe1_2_1_1.configure(relief='groove')
self.Labelframe1_2_1_1.configure(font="-family {Segoe UI} -size 9")
self.Labelframe1_2_1_1.configure(foreground="#000000")
self.Labelframe1_2_1_1.configure(text='''Eden Tokens''')
self.Labelframe1_2_1_1.configure(background="#d9d9d9")
self.Labelframe1_2_1_1.configure(highlightbackground="#d9d9d9")
self.Labelframe1_2_1_1.configure(highlightcolor="#000000")
self.Entry1_2_1_1 = tk.Entry(self.Labelframe1_2_1_1)
self.Entry1_2_1_1.place(relx=0.076, rely=0.455, height=20, relwidth=0.636
, bordermode='ignore')
self.Entry1_2_1_1.configure(background="white")
self.Entry1_2_1_1.configure(disabledforeground="#a3a3a3")
self.Entry1_2_1_1.configure(font="-family {Courier New} -size 10")
self.Entry1_2_1_1.configure(foreground="#000000")
self.Entry1_2_1_1.configure(highlightbackground="#d9d9d9")
self.Entry1_2_1_1.configure(highlightcolor="#000000")
self.Entry1_2_1_1.configure(insertbackground="#000000")
self.Entry1_2_1_1.configure(selectbackground="#d9d9d9")
self.Entry1_2_1_1.configure(selectforeground="black")
self.Entry1_2_1_1.configure(textvariable=self.eden_tokens)
self.Entry1_2_1_1.configure(validate="focusout", validatecommand=lambda:gui_support.updateEdenTokens(self.eden_tokens.get()))
self.Entry1_2_1_1.bind("<Key-Return>", lambda e:gui_support.updateEdenTokens(self.eden_tokens.get()), True)
gui_support.setInfo("eden_widget", self.eden_tokens)
self.TLabelframe1 = ttk.Labelframe(self.TNotebook1_t1)
self.TLabelframe1.place(relx=0.187, rely=0.0, relheight=0.212
, relwidth=0.112)
self.TLabelframe1.configure(relief='')
self.TLabelframe1.configure(text='''Secrets''')
self.Button1 = tk.Button(self.TLabelframe1)
self.Button1.place(relx=0.078, rely=0.356, height=26, width=87
, bordermode='ignore')
self.Button1.configure(activebackground="#d9d9d9")
self.Button1.configure(activeforeground="black")
self.Button1.configure(background="#d9d9d9")
self.Button1.configure(command=lambda:gui_support.unlockAllSecrets())
self.Button1.configure(disabledforeground="#a3a3a3")
self.Button1.configure(font="-family {Segoe UI} -size 9")
self.Button1.configure(foreground="#000000")
self.Button1.configure(highlightbackground="#d9d9d9")
self.Button1.configure(highlightcolor="#000000")
self.Button1.configure(text='''Unlock All''')
self.Labelframe3 = tk.LabelFrame(self.TNotebook1_t2)
self.Labelframe3.place(relx=0.024, rely=0.038, relheight=0.281
, relwidth=0.181)
self.Labelframe3.configure(relief='groove')
self.Labelframe3.configure(font="-family {Segoe UI} -size 9")
self.Labelframe3.configure(foreground="black")
self.Labelframe3.configure(text='''Character''')
self.Labelframe3.configure(background="#d9d9d9")
self.Labelframe3.configure(highlightbackground="#d9d9d9")
self.Labelframe3.configure(highlightcolor="#000000")
self.TCombobox1 = ttk.Combobox(self.Labelframe3)
self.TCombobox1.place(relx=0.042, rely=0.324, relheight=0.432
, relwidth=0.933, bordermode='ignore')
self.value_list = ["Isaac", "Maggy", "Cain", "Judas", "???", "Eve", "Samson", "Azazel",
"Lazarus", "Eden", "The Lost", "Lilith", "Keeper", "Apollyon", "Forgotten", "Bethany",
"Jacob & Esau", "T Isaac", "T Maggy", "T Cain", "T Judas", "T ???", "T Eve", "T Samson", "T Azazel",
"T Lazarus", "T Eden", "T Lost", "T Lilith", "T Keeper", "T Apollyon", "T Forgotten", "T Bethany",
"T Jacob"]
self.TCombobox1.configure(values=self.value_list)
self.TCombobox1.configure(font="-family {Segoe UI} -size 9")
self.TCombobox1.configure(textvariable=self.combobox)
self.TCombobox1.bind("<<ComboboxSelected>>", lambda e: gui_support.updateCharacter(self.combobox.get()))
self.Frame2 = tk.Frame(self.TNotebook1_t2)
self.Frame2.place(relx=0.022, rely=0.313, relheight=0.165
, relwidth=0.114)
self.Frame2.configure(relief='groove')
self.Frame2.configure(borderwidth="2")
self.Frame2.configure(relief="groove")
self.Frame2.configure(background="#d9d9d9")
self.Frame2.configure(highlightbackground="#d9d9d9")
self.Frame2.configure(highlightcolor="#000000")
self.Button2 = tk.Button(self.Frame2)
self.Button2.place(relx=0.096, rely=0.143, height=26, width=77)
self.Button2.configure(activebackground="#d9d9d9")
self.Button2.configure(activeforeground="black")
self.Button2.configure(background="#d9d9d9")
self.Button2.configure(command=lambda:gui_support.unlockAll())
self.Button2.configure(disabledforeground="#a3a3a3")
self.Button2.configure(font="-family {Segoe UI} -size 9")
self.Button2.configure(foreground="black")
self.Button2.configure(highlightbackground="#d9d9d9")
self.Button2.configure(highlightcolor="#000000")
self.Button2.configure(text='''Unlock All''')
self.TFrame1 = ttk.Frame(self.TNotebook1_t2)
self.TFrame1.place(relx=0.132, rely=0.313, relheight=0.146
, relwidth=0.153)
self.TFrame1.configure(relief='groove')
self.TFrame1.configure(borderwidth="2")
self.TFrame1.configure(relief="groove")
self.Button3 = tk.Button(self.TFrame1)
self.Button3.place(relx=0.029, rely=0.129, height=26, width=117)
self.Button3.configure(activebackground="#d9d9d9")
self.Button3.configure(activeforeground="black")
self.Button3.configure(background="#d9d9d9")
self.Button3.configure(command=lambda:gui_support.unlockAllChars())
self.Button3.configure(disabledforeground="#a3a3a3")
self.Button3.configure(font="-family {Segoe UI} -size 9")
self.Button3.configure(foreground="black")
self.Button3.configure(highlightbackground="#d9d9d9")
self.Button3.configure(highlightcolor="#000000")
self.Button3.configure(text='''Unlock All All Chars''')
self.Frame3 = tk.Frame(self.TNotebook1_t2)
self.Frame3.place(relx=0.473, rely=-0.005, relheight=0.995
, relwidth=0.526)
self.Frame3.configure(relief='groove')
self.Frame3.configure(borderwidth="2")
self.Frame3.configure(relief="groove")
self.Frame3.configure(background="#d9d9d9")
self.Frame3.configure(highlightbackground="#d9d9d9")
self.Frame3.configure(highlightcolor="#000000")
self.Scrolledtreeview4 = ScrolledTreeView(self.Frame3)
self.Scrolledtreeview4.place(relx=0.0, rely=0.0, relheight=1.0
, relwidth=1.0)
completion_marks = ["Mom's Heart", "Isaac", "Satan", "Boss Rush", "???", "The Lamb", "Mega Satan", "Greed", "Hush", "Delerium", "Mother", "Beast"]
for num, mark in enumerate(completion_marks):
self.Scrolledtreeview4.insert("", "end", str(num), text=mark)
gui_support.setInfo("character_widget", self.Scrolledtreeview4)
self.Frame4 = tk.Frame(self.TNotebook1_t3)
self.Frame4.place(relx=0.0, rely=0.0, relheight=1.0, relwidth=1.0)
self.Frame4.configure(relief='groove')
self.Frame4.configure(borderwidth="2")
self.Frame4.configure(relief="groove")
self.Frame4.configure(background="#d9d9d9")
self.Frame4.configure(highlightbackground="#d9d9d9")
self.Frame4.configure(highlightcolor="#000000")
self.Scrolledtreeview1 = ScrolledTreeView(self.Frame4)
self.Scrolledtreeview1.place(relx=0.0, rely=0.0, relheight=1.0
, relwidth=1.0)
# build_treeview_support starting.
secrets = ["Magdalene", "Cain", "Judas", "The Womb", "The Harbingers", "A Cube of Meat", "The Book of Revelations", "A Noose", "The Nail", "A Quarter", "A Fetus in a Jar", "A Small Rock", "Monstro's Tooth", "Lil' Chubby", "Loki's Horns", "Something From The Future", "Something Cute", "Something Sticky", "A Bandage", "A Cross", "A Bag of Pennies", "The Book of Sin", "Little Gish", "Little Steven", "Little C.H.A.D.", "A Gamekid", "A Halo", "Mr. Mega", "The D6", "The Scissors", "The Parasite", "???", "Everything Is Terrible!!!", "It Lives!", "Mom's Contact", "The Necronomicon", "Basement Boy", "Spelunker Boy", "Dark Boy", "Mama's Boy", "Golden God!", "Eve", "Mom's Knife", "The Razor", "Guardian Angel", "A Bag of Bombs", "Demon Baby", "Forget Me Now", "The D20", "Celtic Cross", "Abel", "Curved Horn", "Sacrificial Dagger", "Bloody Lust", "Blood Penny", "Blood Rights", "The Polaroid", "Dad's Key", "Blue Candle", "Burnt Penny", "Lucky Toe", "Epic Fetus", "SMB Super Fan", "Counterfeit Coin", "Guppy's Hairball", "A Forgotten Horseman", "Samson", "Something Icky", "!Platinum God!", "Isaac's Head", "Maggy's Faith", "Judas' Tongue", "???'s Soul", "Samson's Lock", "Cain's Eye", "Eve's Bird Foot", "The Left Hand", "The Negative", "Azazel", "Lazarus", "Eden", "The Lost", "Dead Boy", "The Real Platinum God", "Lucky Rock", "The Cellar", "The Catacombs", "The Necropolis", "Rune of Hagalaz", "Rune of Jera", "Rune of Ehwaz", "Rune of Dagaz", "Rune of Ansuz", "Rune of Perthro", "Rune of Berkano", "Rune of Algiz", "Chaos Card", "Credit Card", "Rules Card", "Card Against Humanity", "Swallowed Penny", "Robo-Baby 2.0", "Death's Touch", "Technology .5", "Missing No.", "Isaac's Tears", "Guillotine", "Judas' Shadow", "Maggy's Bow", "Cain's Other Eye", "Black Lipstick", "Eve's Mascara", "Fate", "???'s Only Friend", "Samson's Chains", "Lazarus' Rags", "Broken Ankh", "Store Credit", "Pandora's Box", "Suicide King", "Blank Card", "Book of Secrets", "Mysterious Paper", "Mystery Sack", "Undefined", "Satanic Bible", "Daemon's Tail", "Abaddon", "Isaac's Heart", "The Mind", "The Body", "The Soul", "The D100", "Blue Map", "There's Options", "Black Candle", "Red Candle", "Stop Watch", "Wire Coat Hanger", "Ipecac", "Experimental Treatment", "Krampus", "Head of Krampus", "Super Meat Boy", "Butter Bean", "Little Baggy", "Blood Bag", "The D4", "Missing Poster", "Rubber Cement", "Store Upgrade lv.1", "Store Upgrade lv.2", "Store Upgrade lv.3", "Store Upgrade lv.4", "Angels", "Godhead", "Darkness Falls", "The Tank", "Solar System", "Suicide King", "Cat Got Your Tongue", "Demo Man", "Cursed!", "Glass Cannon", "The Family Man", "Purist", "Lost Baby", "Cute Baby", "Crow Baby", "Shadow Baby", "Glass Baby", "Wrapped Baby", "Begotten Baby", "Dead Baby", "-0- Baby", "Glitch Baby", "Fighting Baby", "Lord of the Flies", "Fart Baby", "Purity", "D12", "Betrayal", "Fate's Reward", "Athame", "Blind Rage", "Maw of the Void", "Empty Vessel", "Eden's Blessing", "Sworn Protector", "Incubus", "Keeper now holds... A Penny!", "Lil' Chest", "Censer", "Evil Eye", "My Shadow", "Cracked Dice", "Black Feather", "Lusty Blood", "Lilith", "Key Bum", "GB Bug", "Zodiac", "Box of Friends", "Rib of Greed", "Cry Baby", "Red Baby", "Green Baby", "Brown Baby", "Blue Baby", "Lil' Baby", "Rage Baby", "Black Baby", "Long Baby", "Yellow Baby", "White Baby", "Big Baby", "Noose Baby", "Rune Bag", "Cambion Conception", "Serpent's Kiss", "Succubus", "Immaculate Conception", "Goat Head Baby", "Gold Heart", "Get out of Jail Free Card", "Gold Bomb", "2 new pills", "2 new pills", "Poker Chip", "Stud Finder", "D8", "Kidney Stone", "Blank Rune", "Blue Womb", "1001%", "Keeper holds Wooden Nickel", "Keeper holds Store Key", "Deep Pockets", "Karma", "Sticky Nickels", "Super Greed Baby", "Lucky Pennies", "Special Hanging Shopkeepers", "Wooden Nickel", "Cain holds Paperclip", "Everything is Terrible 2!!!", "Special Shopkeepers", "Eve now holds Razor Blade", "Store Key", "Lost holds Holy Mantle", "Keeper", "Hive Baby", "Buddy Baby", "Colorful Baby", "Whore Baby", "Cracked Baby", "Dripping Baby", "Blinding Baby", "Sucky Baby", "Dark Baby", "Picky Baby", "Revenge Baby", "Belial Baby", "Sale Baby", "XXXXXXXXL", "SPEED!", "Blue Bomber", "PAY TO PLAY", "Have a Heart", "I RULE!", "BRAINS!", "PRIDE DAY!", "Onan's Streak", "The Guardian", "Generosity", "Mega", "Backasswards", "Aprils fool", "Pokey Mans", "Ultra Hard", "PONG", "D Infinity", "Eucharist", "Silver Dollar", "Shade", "King Baby", "Bloody Crown", "Dull Razor", "Eden's Soul", "Dark Prince's Crown", "Compound Fracture", "Euthanasia", "Holy Card", "Crooked Penny", "Void", "D1", "Glyph of Balance", "Sack of Sacks", "Eye of Belial", "Meconium", "Stem Cell", "Crow Heart", "Metronome", "Bat Wing", "Plan C", "Duality", "Dad's Lost Coin", "Eye of Greed", "Black Rune", "Locust of Wrath", "Locust of Pestilence", "Locust of Famine", "Locust of Death", "Locust of Conquest", "Hushy", "Brown Nugget", "Mort Baby", "Smelter", "Apollyon Baby", "New Area", "Once More with Feeling!", "Hat trick!", "5 Nights at Mom's", "Sin collector", "Dedication", "ZIP!", "It's the Key", "Mr. Resetter!", "Living on the edge", "U Broke It!", "Laz Bleeds More!", "Maggy Now Holds a Pill!", "Charged Key", "Samson Feels Healthy!", "Greed's Gullet", "The Marathon", "RERUN", "Delirious", "1000000%", "Apollyon", "Greedier!", "Burning Basement", "Flooded Caves", "Dank Depths", "Scarred Womb", "Something wicked this way comes!", "Something wicked this way comes+!", "The gate is open!", "Black Hole", "Mystery Gift", "Sprinkler", "Angry Fly", "Bozo", "Broken Modem", "Buddy in a Box", "Fast Bombs", "Lil Delirium", "Hairpin", "Wooden Cross", "Butter!", "Huge Growth", "Ancient Recall", "Era Walk", "Coupon", "Telekinesis", "Moving Box", "Jumper Cables", "Leprosy", "Technology Zero", "Filigree Feather", "Mr. ME!", "7 Seals", "Angelic Prism", "Pop!", "Door Stop", "Death's List", "Haemolacria", "Lachryphagy", "Schoolbag", "Trisagion", "Extension Cord", "Flat Stone", "Sacrificial Altar", "Lil Spewer", "Blanket", "Marbles", "Mystery Egg", "Rotten Penny", "Baby-Bender", "The Forgotten", "Bone Heart", "Marrow", "Slipped Rib", "Pointy Rib", "Jaw Bone", "Brittle Bones", "Divorce Papers", "Hallowed Ground", "Finger Bone", "Dad's Ring", "Book of the Dead", "Bone Baby", "Bound Baby", "Bethany", "Jacob and Esau", "The Planetarium", "A Secret Exit", "Forgotten Lullaby", "Fruity Plum", "Plum Flute", "Rotten Heart", "Dross", "Ashpit", "Gehenna", "Red Key", "Wisp Baby", "Book of Virtues", "Urn of Souls", "Blessed Penny", "Alabaster Box", "Beth's Faith", "Soul Locket", "Divine Intervention", "Vade Retro", "Star of Bethlehem", "Hope Baby", "Glowing Baby", "Double Baby", "The Stairway", "Red Stew", "Birthright", "Damocles", "Rock Bottom", "Inner Child", "Vanishing Twin", "Genesis", "Suplex!", "Solomon's Baby", "Illusion Baby", "Meat Cleaver", "Options?", "Yuck Heart", "Candy Heart", "Guppy's Eye", "A Pound of Flesh", "Akeldama", "Redemption", "Eternal D6", "Montezuma's Revenge", "Bird Cage", "Cracked Orb", "Bloody Gust", "Empty Heart", "Devil's Crown", "Lil Abaddon", "Tinytoma", "Astral Projection", "'M", "Everything Jar", "Lost Soul", "Hungry Soul", "Blood Puppy", "C Section", "Keeper's Sack", "Keeper's Box", "Lil Portal", "Worm Friend", "Bone Spurs", "Spirit Shackles", "Revelation", "Jar of Wisps", "Magic Skin", "Friend Finder", "The Broken", "The Dauntless", "The Hoarder", "The Deceiver", "The Soiled", "The Curdled", "The Savage", "The Benighted", "The Enigma", "The Capricious", "The Baleful", "The Harlot", "The Miser", "The Empty", "The Fettered", "The Zealot", "The Deserter", "Glitched Crown", "Belly Jelly", "Blue Key", "Sanguine Bond", "The Swarm", "Heartbreak", "Larynx", "Azazel's Rage", "Salvation", "TMTRAINER", "Sacred Orb", "Twisted Pair", "Strawman", "Echo Chamber", "Isaac's Tomb", "Vengeful Spirit", "Esau Jr.", "Bloody Mary", "Baptism by Fire", "Isaac's Awakening", "Seeing Double", "Pica Run", "Hot Potato", "Cantripped!", "Red Redemption", "DELETE THIS", "Dirty Mind", "Sigil of Baphomet", "Purgatory", "Spirit Sword", "Broken Glasses", "Ice Cube", "Charged Penny", "The Fool", "The Magician", "The High Priestess", "The Empress", "The Emperor", "The Hierophant", "The Lovers", "The Chariot", "Justice", "The Hermit", "Wheel of Fortune", "Strength", "The Hanged Man", "Death", "Temperance", "The Devil", "The Tower", "The Stars", "The Sun and the Moon", "Judgement", "The World", "Old Capacitor", "Brimstone Bombs", "Mega Mush", "Mom's Lock", "Dice Bag", "Holy Crown", "Mother's Kiss", "Gilded Key", "Lucky Sack", "Your Soul", "Number Magnet", "Dingle Berry", "Ring Cap", "Strange Key", "Lil Clot", "Temporary Tattoo", "Swallowed M80", "Wicked Crown", "Azazel's Stump", "Torn Pocket", "Torn Card", "Nuh Uh!", "Modeling Clay", "Kid's Drawing", "Crystal Key", "The Twins", "Adoption Papers", "Keeper's Bargain", "Cursed Penny", "Cricket Leg", "Apollyon's Best Friend", "Polished Bone", "Hollow Heart", "Expansion Pack", "Beth's Essence", "RC Remote", "Found Soul", "Member Card", "Golden Razor", "Spindown Dice", "Hypercoagulation", "Bag of Crafting", "Dark Arts", "IBS", "Sumptorium", "Berserk!", "Hemoptysis", "Flip", "Corrupted Data", "Ghost Bombs", "Gello", "Keeper's Kin", "Abyss", "Decap Attack", "Lemegeton", "Anima Sola", "Mega Chest", "Queen of Hearts", "Gold Pill", "Black Sack", "Charming Poop", "Horse Pill", "Crane Game", "Hell Game", "Wooden Chest", "Wild Card", "Haunted Chest", "Fool's Gold", "Golden Penny", "Rotten Beggar", "Golden Battery", "Confessional", "Golden Trinket", "Soul of Isaac", "Soul of Magdalene", "Soul of Cain", "Soul of Judas", "Soul of???", "Soul of Eve", "Soul of Samson", "Soul of Azazel", "Soul of Lazarus", "Soul of Eden", "Soul of the Lost", "Soul of Lilith", "Soul of the Keeper", "Soul of Apollyon", "Soul of the Forgotten", "Soul of Bethany", "Soul of Jacob and Esau", "A Strange Door", "Death Certificate", "Dead God", "Played Online", "Won Online", "Won Online Daily"]
for num, secret in enumerate(secrets):
self.Scrolledtreeview1.insert("", "end", str(num+1), text=secret)
gui_support.setInfo("secrets_widget", self.Scrolledtreeview1)
self.Scrolledtreeview2 = ScrolledTreeView(self.TNotebook1_t4)
self.Scrolledtreeview2.place(relx=0.0, rely=0.0, relheight=1.0
, relwidth=1.0)
items = ["The Sad Onion", "The Inner Eye", "Spoon Bender", "Cricket's Head", "My Reflection", "Number One", "Blood of the Martyr", "Brother Bobby", "Skatole", "Halo of Flies", "1up!", "Magic Mushroom", "The Virus", "Roid Rage", "<3", "Raw Liver", "Skeleton Key", "A Dollar", "Boom!", "Transcendence", "The Compass", "Lunch", "Dinner", "Dessert", "Breakfast", "Rotten Meat", "Wooden Spoon", "The Belt", "Mom's Underwear", "Mom's Heels", "Mom's Lipstick", "Wire Coat Hanger", "The Bible", "The Book of Belial", "The Necronomicon", "The Poop", "Mr. Boom", "Tammy's Head", "Mom's Bra", "Kamikaze!", "Mom's Pad", "Bob's Rotten Head", "DUMMY", "Teleport!", "Yum Heart", "Lucky Foot", "Doctor's Remote", "Cupid's Arrow", "Shoop Da Whoop!", "Steven", "Pentagram", "Dr. Fetus", "Magneto", "Treasure Map", "Mom's Eye", "Lemon Mishap", "Distant Admiration", "Book of Shadows", "DUMMY", "The Ladder", "DUMMY", "Charm of the Vampire", "The Battery", "Steam Sale", "Anarchist Cookbook", "The Hourglass", "Sister Maggy", "Technology", "Chocolate Milk", "Growth Hormones", "Mini Mush", "Rosary", "Cube of Meat", "A Quarter", "PHD", "X-Ray Vision", "My Little Unicorn", "Book of Revelations", "The Mark", "The Pact", "Dead Cat", "Lord of the Pit", "The Nail", "We Need to Go Deeper!", "Deck of Cards", "Monstro's Tooth", "Loki's Horns", "Little Chubby", "Spider Bite", "The Small Rock", "Spelunker Hat", "Super Bandage", "The Gamekid", "Sack of Pennies", "Robo-Baby", "Little C.H.A.D.", "The Book of Sin", "The Relic", "Little Gish", "Little Steven", "The Halo", "Mom's Bottle of Pills", "The Common Cold", "The Parasite", "The D6", "Mr. Mega", "The Pinking Shears", "The Wafer", "Money = Power", "Mom's Contacts", "The Bean", "Guardian Angel", "Demon Baby", "Mom's Knife", "Ouija Board", "9 Volt", "Dead Bird", "Brimstone", "Blood Bag", "Odd Mushroom", "Odd Mushroom", "Whore of Babylon", "Monster Manual", "Dead Sea Scrolls", "Bobby-Bomb", "Razor Blade", "Forget Me Now", "Forever Alone", "Bucket of Lard", "A Pony", "Bomb Bag", "A Lump of Coal", "Guppy's Paw", "Guppy's Tail", "IV Bag", "Best Friend", "Remote Detonator", "Stigmata", "Mom's Purse", "Bob's Curse", "Pageant Boy", "Scapular", "Speed Ball", "Bum Friend", "Guppy's Head", "Prayer Card", "Notched Axe", "Infestation", "Ipecac", "Tough Love", "The Mulligan", "Technology 2", "Mutant Spider", "Chemical Peel", "The Peeper", "Habit", "Bloody Lust", "Crystal Ball", "Spirit of the Night", "Crack the Sky", "Ankh", "Celtic Cross", "Ghost Baby", "The Candle", "Cat-O-Nine-Tails", "D20", "Harlequin Baby", "Epic Fetus", "Polyphemus", "Daddy Longlegs", "Spider Butt", "Sacrificial Dagger", "Mitre", "Rainbow Baby", "Dad's Key", "Stem Cells", "Portable Slot", "Holy Water", "Fate", "The Black Bean", "White Pony", "Sacred Heart", "Tooth Picks", "Holy Grail", "Dead Dove", "Blood Rights", "Guppy's Hair Ball", "Abel", "SMB Super Fan", "Pyro", "3 Dollar Bill", "Telepathy for Dummies", "MEAT!", "Magic 8 Ball", "Mom's Coin Purse", "Squeezy", "Jesus Juice", "Box", "Mom's Key", "Mom's Eyeshadow", "Iron Bar", "Midas' Touch", "Humbleing Bundle", "Fanny Pack", "Sharp Plug", "Guillotine", "Ball of Bandages", "Champion Belt", "Butt Bombs", "Gnawed Leaf", "Spiderbaby", "Guppy's Collar", "Lost Contact", "Anemic", "Goat Head", "Ceremonial Robes", "Mom's Wig", "Placenta", "Old Bandage", "Sad Bombs", "Rubber Cement", "Anti-Gravity", "Pyromaniac", "Cricket's Body", "Gimpy", "Black Lotus", "Piggy Bank", "Mom's Perfume", "Monstro's Lung", "Abaddon", "Ball of Tar", "Stop Watch", "Tiny Planet", "Infestation 2", "DUMMY", "E. Coli", "Death's Touch", "Key Piece 1", "Key Piece 2", "Experimental Treatment", "Contract From Below", "Infamy", "Trinity Shield", "Tech.5", "20/20", "Blue Map", "BFFS!", "Hive Mind", "There's Options", "Bogo Bombs", "Starter Deck", "Little Baggy", "Magic Scab", "Blood Clot", "Screw", "Hot Bombs", "Fire Mind", "Missing No.", "Dark Matter", "Black Candle", "Proptosis", "Missing Page 2", "Clear Rune", "Smart Fly", "Dry Baby", "Juicy Sack", "Robo-Baby 2.0", "Rotten Baby", "Headless Baby", "Leech", "Mystery Sack", "BBF", "Bob's Brain", "Best Bud", "Lil Brimstone", "Isaac's Heart", "Lil Haunt", "Dark Bum", "Big Fan", "Sissy Longlegs", "Punching Bag", "How to Jump", "D100", "D4", "D10", "Blank Card", "Book of Secrets", "Box of Spiders", "Red Candle", "The Jar", "Flush!", "Satanic Bible", "Head of Krampus", "Butter Bean", "Magic Fingers", "Converter", "Pandora's Box", "Unicorn Stump", "Taurus", "Aries", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius", "Capricorn", "Aquarius", "Pisces", "Eve's Mascara", "Judas' Shadow", "Maggy's Bow", "Holy Mantle", "Thunder Thighs", "Strange Attractor", "Cursed Eye", "Mysterious Liquid", "Gemini", "Cain's Other Eye", "???'s Only Friend", "Samson's Chains", "Mongo Baby", "Isaac's Tears", "Undefined", "Scissors", "Breath of Life", "The Polaroid", "The Negative", "The Ludovico Technique", "Soy Milk", "Godhead", "Lazarus' Rags", "The Mind", "The Body", "The Soul", "Dead Onion", "Broken Watch", "The Boomerang", "Safety Pin", "Caffeine Pill", "Torn Photo", "Blue Cap", "Latch Key", "Match Book", "Synthoil", "A Snack", "Diplopia", "Placebo", "Wooden Nickel", "Toxic Shock", "Mega Bean", "Glass Cannon", "Bomber Boy", "Crack Jacks", "Mom's Pearls", "Car Battery", "Box of Friends", "The Wiz", "8 Inch Nails", "Incubus", "Fate's Reward", "Lil Chest", "Sworn Protector", "Friend Zone", "Lost Fly", "Scatter Bombs", "Sticky Bombs", "Epiphora", "Continuum", "Mr. Dolly", "Curse of the Tower", "Charged Baby", "Dead Eye", "Holy Light", "Host Hat", "Restock", "Bursting Sack", "Number Two", "Pupula Duplex", "Pay to Play", "Eden's Blessing", "Friendly Ball", "Tear Detonator", "Lil Gurdy", "Bumbo", "D12", "Censer", "Key Bum", "Rune Bag", "Seraphim", "Betrayal", "Zodiac", "Serpent's Kiss", "Marked", "Tech X", "Ventricle Razor", "Tractor Beam", "God's Flesh", "Maw of the Void", "Spear of Destiny", "Explosivo", "Chaos", "Spider Mod", "Farting Baby", "GB Bug", "D8", "Purity", "Athame", "Empty Vessel", "Evil Eye", "Lusty Blood", "Cambion Conception", "Immaculate Conception", "More Options", "Crown of Light", "Deep Pockets", "Succubus", "Fruit Cake", "Teleport 2.0", "Black Powder", "Kidney Bean", "Glowing Hourglass", "Circle of Protection", "Sack Head", "Night Light", "Obsessed Fan", "Mine Crafter", "PJs", "Head of the Keeper", "Papa Fly", "Multidimensional Baby", "Glitter Bombs", "My Shadow", "Jar of Flies", "Lil Loki", "Milk!", "D7", "Binky", "Mom's Box", "Kidney Stone", "Mega Blast", "Dark Prince's Crown", "Apple!", "Lead Pencil", "Dog Tooth", "Dead Tooth", "Linger Bean", "Shard of Glass", "Metal Plate", "Eye of Greed", "Tarot Cloth", "Varicose Veins", "Compound Fracture", "Polydactyly", "Dad's Lost Coin", "Midnight Snack", "Cone Head", "Belly Button", "Sinus Infection", "Glaucoma", "Parasitoid", "Eye of Belial", "Sulfuric Acid", "Glyph of Balance", "Analog Stick", "Contagion", "Finger!", "Shade", "Depression", "Hushy", "Lil Monstro", "King Baby", "Big Chubby", "Broken Glass Cannon", "Plan C", "D1", "Void", "Pause", "Smelter", "Compost", "Dataminer", "Clicker", "Mama Mega!", "Wait What?", "Crooked Penny", "Dull Razor", "Potato Peeler", "Metronome", "D Infinity", "Eden's Soul", "Acid Baby", "YO LISTEN!", "Adrenaline", "Jacob's Ladder", "Ghost Pepper", "Euthanasia", "Camo Undies", "Duality", "Eucharist", "Sack of Sacks", "Greed's Gullet", "Large Zit", "Little Horn", "Brown Nugget", "Poke Go", "Backstabber", "Sharp Straw", "Mom's Razor", "Bloodshot Eye", "Delirious", "Angry Fly", "Black Hole", "Bozo", "Broken Modem", "Mystery Gift", "Sprinkler", "Fast Bombs", "Buddy in a Box", "Lil Delirium", "Jumper Cables", "Coupon", "Telekinesis", "Moving Box", "Technology Zero", "Leprosy", "7 Seals", "Mr. ME!", "Angelic Prism", "Pop!", "Death's List", "Haemolacria", "Lachryphagy", "Trisagion", "Schoolbag", "Blanket", "Sacrificial Altar", "Lil Spewer", "Marbles", "Mystery Egg", "Flat Stone", "Marrow", "Slipped Rib", "Hallowed Ground", "Pointy Rib", "Book of the Dead", "Dad's Ring", "Divorce Papers", "Jaw Bone", "Brittle Bones", "Broken Shovel", "Broken Shovel", "Mom's Shovel", "Mucormycosis", "2Spooky", "Golden Razor", "Sulfur", "Fortune Cookie", "Eye Sore", "120 Volt", "It Hurts", "Almond Milk", "Rock Bottom", "Nancy Bombs", "A Bar of Soap", "Blood Puppy", "Dream Catcher", "Paschal Candle", "Divine Intervention", "Blood Oath", "Playdough Cookie", "Orphan Socks", "Eye of the Occult", "Immaculate Heart", "Monstrance", "The Intruder", "Dirty Mind", "Damocles", "Free Lemonade", "Spirit Sword", "Red Key", "Psy Fly", "Wavy Cap", "Rocket in a Jar", "Book of Virtues", "Alabaster Box", "The Stairway", "DUMMY", "Sol", "Luna", "Mercurius", "Venus", "Terra", "Mars", "Jupiter", "Saturnus", "Uranus", "Neptunus", "Pluto", "Voodoo Head", "Eye Drops", "Act of Contrition", "Member Card", "Battery Pack", "Mom's Bracelet", "The Scooper", "Ocular Rift", "Boiled Baby", "Freezer Baby", "Eternal D6", "Bird Cage", "Larynx", "Lost Soul", "DUMMY", "Blood Bombs", "Lil Dumpy", "Bird's Eye", "Lodestone", "Rotten Tomato", "Birthright", "DUMMY", "Red Stew", "Genesis", "Sharp Key", "Booster Pack", "Mega Mush", "Knife Piece 1", "Knife Piece 2", "Death Certificate", "Bot Fly", "DUMMY", "Meat Cleaver", "Evil Charm", "Dogma", "Purgatory", "Stitches", "R Key", "Knockout Drops", "Eraser", "Yuck Heart", "Urn of Souls", "Akeldama", "Magic Skin", "Revelation", "Consolation Prize", "Tinytoma", "Brimstone Bombs", "4.5 Volt", "DUMMY", "Fruity Plum", "Plum Flute", "Star of Bethlehem", "Cube Baby", "Vade Retro", "False PHD", "Spin to Win", "DUMMY", "Vasculitis", "Giant Cell", "Tropicamide", "Card Reading", "Quints", "DUMMY", "Tooth and Nail", "Binge Eater", "Guppy's Eye", "DUMMY", "Strawman", "Dad's Note", "Sausage", "Options?", "Candy Heart", "A Pound of Flesh", "Redemption", "Spirit Shackles", "Cracked Orb", "Empty Heart", "Astral Projection", "C Section", "Lil Abaddon", "Montezuma's Revenge", "Lil Portal", "Worm Friend", "Bone Spurs", "Hungry Soul", "Jar of Wisps", "Soul Locket", "Friend Finder", "Inner Child", "Glitched Crown", "Belly Jelly", "Sacred Orb", "Sanguine Bond", "The Swarm", "Heartbreak", "Bloody Gust", "Salvation", "Vanishing Twin", "Twisted Pair", "Azazel's Rage", "Echo Chamber", "Isaac's Tomb", "Vengeful Spirit", "Esau Jr.", "Berserk!", "Dark Arts", "Abyss", "Supper", "Stapler", "Suplex!", "Bag of Crafting", "Flip", "Lemegeton", "Sumptorium", "Recall", "Hold", "Keeper's Sack", "Keeper's Kin", "DUMMY", "Keeper's Box", "Everything Jar", "TMTRAINER", "Anima Sola", "Spindown Dice", "Hypercoagulation", "IBS", "Hemoptysis", "Ghost Bombs", "Gello", "Decap Attack", "Glass Eye", "Stye", "Mom's Ring"]
for num, item in enumerate(items):
if item == "DUMMY":
continue
self.Scrolledtreeview2.insert("", "end", str(num+1), text=item)
gui_support.setInfo("items_widget", self.Scrolledtreeview2)
self.Scrolledtreeview3 = ScrolledTreeView(self.TNotebook1_t5)
self.Scrolledtreeview3.place(relx=0.0, rely=0.0, relheight=1.0
, relwidth=1.0)
challenges = ["Pitch Black", "High Brow", "Head Trauma", "Darkness Falls", "The Tank", "Solar System", "Suicide King", "Cat Got Your Tongue", "Demo Man", "Cursed!", "Glass Cannon", "When Life Gives You Lemons", "BEANS!", "Its In The Cards", "Slow Roll", "Computer Savy", "WAKA WAKA", "The Host", "The Family Man", "Purist", "XXXXXXXXL", "SPEED!", "Blue Bomber", "PAY TO PLAY", "Have A Heart", "I RULE!", "BRAINS!", "PRIDE DAY!", "Onan's Streak", "The Guardian", "Backasswards", "Aprils Fool", "Pokey Mans", "Ultra Hard", "Pong", "Scat Man", "Bloody Mary", "Baptism by Fire", "Isaac's Awakening", "Seeing Double", "Pica Run", "Hot Potato", "Cantripped!", "Red Redemption", "DELETE THIS"]
for num, challenge in enumerate(challenges):
self.Scrolledtreeview3.insert("", "end", str(num+1), text=challenge)
gui_support.setInfo("challenges_widget", self.Scrolledtreeview3)
# The following code is added to facilitate the Scrolled widgets you specified.
class AutoScroll(object):
'''Configure the scrollbars for a widget.'''
def __init__(self, master):
# Rozen. Added the try-except clauses so that this class
# could be used for scrolled entry widget for which vertical
# scrolling is not supported. 5/7/14.
try:
vsb = ttk.Scrollbar(master, orient='vertical', command=self.yview)
except:
pass
hsb = ttk.Scrollbar(master, orient='horizontal', command=self.xview)
try:
self.configure(yscrollcommand=self._autoscroll(vsb))
except:
pass
self.configure(xscrollcommand=self._autoscroll(hsb))
self.grid(column=0, row=0, sticky='nsew')
try:
vsb.grid(column=1, row=0, sticky='ns')
except:
pass
hsb.grid(column=0, row=1, sticky='ew')
master.grid_columnconfigure(0, weight=1)
master.grid_rowconfigure(0, weight=1)
# Copy geometry methods of master (taken from ScrolledText.py)
methods = tk.Pack.__dict__.keys() | tk.Grid.__dict__.keys() \
| tk.Place.__dict__.keys()
for meth in methods:
if meth[0] != '_' and meth not in ('config', 'configure'):
setattr(self, meth, getattr(master, meth))
@staticmethod
def _autoscroll(sbar):
'''Hide and show scrollbar as needed.'''
def wrapped(first, last):
first, last = float(first), float(last)
if first <= 0 and last >= 1:
sbar.grid_remove()
else:
sbar.grid()
sbar.set(first, last)
return wrapped
def __str__(self):
return str(self.master)
def _create_container(func):
'''Creates a ttk Frame with a given master, and use this new frame to
place the scrollbars and the widget.'''
def wrapped(cls, master, **kw):
container = ttk.Frame(master)
container.bind('<Enter>', lambda e: _bound_to_mousewheel(e, container))
container.bind('<Leave>', lambda e: _unbound_to_mousewheel(e, container))
return func(cls, container, **kw)
return wrapped
class ScrolledTreeView(AutoScroll, CheckboxTreeview):
'''A standard ttk Treeview widget with scrollbars that will
automatically show/hide as needed.'''
@_create_container
def __init__(self, master, **kw):
CheckboxTreeview.__init__(self, master, **kw)
AutoScroll.__init__(self, master)
self.bind('<Button-1>', lambda e: gui_support.updateData(e), True)
import platform
def _bound_to_mousewheel(event, widget):
child = widget.winfo_children()[0]
if platform.system() == 'Windows' or platform.system() == 'Darwin':
child.bind_all('<MouseWheel>', lambda e: _on_mousewheel(e, child))
child.bind_all('<Shift-MouseWheel>', lambda e: _on_shiftmouse(e, child))
else:
child.bind_all('<Button-4>', lambda e: _on_mousewheel(e, child))
child.bind_all('<Button-5>', lambda e: _on_mousewheel(e, child))
child.bind_all('<Shift-Button-4>', lambda e: _on_shiftmouse(e, child))
child.bind_all('<Shift-Button-5>', lambda e: _on_shiftmouse(e, child))
def _unbound_to_mousewheel(event, widget):
if platform.system() == 'Windows' or platform.system() == 'Darwin':
widget.unbind_all('<MouseWheel>')
widget.unbind_all('<Shift-MouseWheel>')
else:
widget.unbind_all('<Button-4>')
widget.unbind_all('<Button-5>')
widget.unbind_all('<Shift-Button-4>')
widget.unbind_all('<Shift-Button-5>')
def _on_mousewheel(event, widget):
if platform.system() == 'Windows':
widget.yview_scroll(-1*int(event.delta/120),'units')
elif platform.system() == 'Darwin':
widget.yview_scroll(-1*int(event.delta),'units')
else:
if event.num == 4:
widget.yview_scroll(-1, 'units')
elif event.num == 5:
widget.yview_scroll(1, 'units')
def _on_shiftmouse(event, widget):
if platform.system() == 'Windows':
widget.xview_scroll(-1*int(event.delta/120), 'units')
elif platform.system() == 'Darwin':
widget.xview_scroll(-1*int(event.delta), 'units')
else:
if event.num == 4:
widget.xview_scroll(-1, 'units')
elif event.num == 5:
widget.xview_scroll(1, 'units')
def start_up():
gui_support.main()
if __name__ == '__main__':
gui_support.main()