From 2d1788763537d296ba5f9046eceebb5107f73761 Mon Sep 17 00:00:00 2001 From: justuswolff Date: Sat, 11 May 2024 11:06:06 +0200 Subject: [PATCH] modified: clang new file: icons/obj.png deleted: icons/object.png modified: langsys/lang/de_DE.LAN modified: langsys/lang/en_EN.LAN modified: main.py --- clang | 2 +- icons/obj.png | Bin 0 -> 216 bytes icons/object.png | Bin 192 -> 0 bytes langsys/lang/de_DE.LAN | 3 +++ langsys/lang/en_EN.LAN | 3 +++ main.py | 57 +++++++++++++++++++++++++++++++++++++---- 6 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 icons/obj.png delete mode 100644 icons/object.png diff --git a/clang b/clang index 0a0e2fe..320a739 100644 --- a/clang +++ b/clang @@ -1 +1 @@ -de_DE \ No newline at end of file +en_EN \ No newline at end of file diff --git a/icons/obj.png b/icons/obj.png new file mode 100644 index 0000000000000000000000000000000000000000..3bfb6d264252b36394f711db4c8e5d981bf05ac8 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}c0*}aI1_r)EAj~ML;ne^X%=L6}46*QkJNY74g8_%@R(bLLdx~^+u4Rq( z^0(HX{E+Xv(8oHb&YZ7%4xTBMV*W1AnV#CQa@SPfTRZDmzwb3tn>|r-N4(IsP5N8) zSB4+EVb<+2(>)-x{`TKfg3}Dn2_5qk|Mywn{lh6qBc(;m@6+Abg08vm09wr8>FVdQ I&MBb@0G_8wR{#J2 literal 0 HcmV?d00001 diff --git a/icons/object.png b/icons/object.png deleted file mode 100644 index a4c4c42bce95d85b3aae32b5036a2ceded92e084..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjy#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!V5p~yV~B-+@}K|z?U{EraC%KgTe~DWM4fdQm&7 diff --git a/langsys/lang/de_DE.LAN b/langsys/lang/de_DE.LAN index bd1b397..d7fa74d 100644 --- a/langsys/lang/de_DE.LAN +++ b/langsys/lang/de_DE.LAN @@ -7,4 +7,7 @@ "add": "Erstellen", "obj": "Objekt", "script": "Skript", +"rename": "Umbenennen", +"delete": "Loeschen", +"NN": "Neuer Name:", } \ No newline at end of file diff --git a/langsys/lang/en_EN.LAN b/langsys/lang/en_EN.LAN index 09fad92..fd00feb 100644 --- a/langsys/lang/en_EN.LAN +++ b/langsys/lang/en_EN.LAN @@ -7,4 +7,7 @@ "add": "Create", "obj": "Object", "script": "Script", +"rename": "Rename", +"delete": "Delete", +"NN": "New name:", } \ No newline at end of file diff --git a/main.py b/main.py index 41a49eb..27951a4 100644 --- a/main.py +++ b/main.py @@ -9,10 +9,14 @@ import time import subprocess import sys import hashengine +import os +import random +import string +import easygui global LH global gamedata -gamedata = [] +gamedata = {} LH = langsys.langhandler() lang = open("clang", 'r') lang = lang.read() @@ -65,18 +69,59 @@ def selectlang(new): subprocess.Popen([sys.executable, __file__]) def add(objtype): - obj = dir(types)[objtype]() - temp = {"id": objtype, "args": dir(obj)} - gamedata.append(temp()) + global objtree + obj = getattr(types, objtype)() + temp = {"id": objtype, "args": dir(obj), "name": LH.string(objtype)} + id = "" + chars = list(string.ascii_letters) + for i in range(255): + id = id + random.choice(chars) + objtree.insert("", tk.END, text=LH.string(objtype), image=icons[objtype], iid=id) + gamedata[id] = temp + +def renameobj(): + target = objtree.focus() + if target == "": return + new = easygui.enterbox(LH.string("NN"), LH.string("rename")) + if new: + objtree.item(target, text=new) + gamedata[target]["name"] = new + +def delobj(): + target = objtree.focus() + if target == "": return + objtree.delete(target) + gamedata.pop(target) + +def rpopup(event): + try: + rmenu.tk_popup(event.x_root, event.y_root) + finally: + rmenu.grab_release() def GUIinit(): global container + global objtree + global rmenu container = tk.Tk() + global icons + icons = {} + + for i in os.listdir("icons"): + icons[i.split(".")[0]] = tk.PhotoImage(file=f"icons/{i}") + #tree init objtree = tkk.Treeview(container) objtree.grid() + #right click menu + rmenu = tk.Menu(container, tearoff=0) + rmenu.add_command(label=LH.string("rename"), command=renameobj) + rmenu.add_command(label=LH.string("delete"), command=delobj) + + objtree.bind("", rpopup) + #menu init menu = tk.Menu(container) container.config(menu=menu) @@ -89,7 +134,8 @@ def GUIinit(): addmenu = tk.Menu(menu) menu.add_cascade(label=LH.string("add"), menu=addmenu) - filemenu.add_command(label=LH.string("obj"), command=lambda: add("obj")) + addmenu.add_command(label=LH.string("obj"), command=lambda: add("obj")) + addmenu.add_command(label=LH.string("script"), command=lambda: add("script")) langmenu = tk.Menu(menu) menu.add_cascade(label=LH.string("langs"), menu=langmenu) @@ -100,5 +146,6 @@ def GUIinit(): global types types = hashengine.enum({"obj": hashengine.obj, "script": script}) +icon = hashengine.enum({"obj": "icons/object.png", "script": "icons/script.pngg"}) GUIinit() \ No newline at end of file