Browse Source

add: tkgui.draw_fx3 FX3

micha 3 months ago
parent
commit
ace8fb8a5f
5 changed files with 163 additions and 12 deletions
  1. 47 9
      _LibreLightDesk.py
  2. 20 1
      lib/libtk.py
  3. 1 0
      tkgui/EXEC-BTN.py
  4. 4 2
      tkgui/MENUE.py
  5. 91 0
      tkgui/draw.py

+ 47 - 9
_LibreLightDesk.py

@@ -683,6 +683,7 @@ DELAY.val(0.2)
 
 fx_prm_main = {}
 fx_prm_move = {"SIZE":40,"SPEED":8,"OFFSET":100,"BASE":"0","START":0,"MODE":0,"MO":0,"DIR":1,"INVERT":0,"WING":2,"WIDTH":100}
+fx_prm_3 = {"SIZE":40,"SPEED":8,"OFFSET":100,"BASE":"0","START":0,"MODE":0,"MO":0,"DIR":1,"INVERT":0,"WING":2,"WIDTH":100}
 
 fx_color = {"A":"red","B":"blue"} 
 fx_prm = {"SIZE":255,"SPEED":10,"OFFSET":100,"BASE":"-","START":0,"MODE":0,"MO":0,"DIR":1,"INVERT":1,"SHUFFLE":0,"WING":2,"WIDTH":25,"2D-X":1,"2D:MODE":0}
@@ -1079,6 +1080,23 @@ class MASTER():
                 "FX:CIR","FX:PAN","FX:TILT", "WIDTH:\n100","DIR:\n0","INVERT:\n0","\n",
                 "SHUFFLE:\n0","SIZE:\n","SPEED:\n","START:\n","OFFSET:\n","\n"
                 ]
+        self.fx_3 = Elem_Container()
+        self.fx_3.commands =[
+                "FX:ATTR","PAN","TILT","ATTR3","ATTR4","\n",
+                "WIDTH:","25","25","25","25","\n",
+                "DIR:","1","1","1","1","\n",
+                "INVERT:","1","1","1","1","\n",
+                "SHUFFLE:","0","0","0","0","\n",
+                "SIZE:","255","255","255","255","\n",
+                "SPEED:","10","10","10","10","\n",
+                "START:","0","0","0","0","\n",
+                "OFFSET:","100","100","100","100","\n",
+                " ","\n",
+                " ","PLAY","STOP","OFF","\n",
+                "  ","CIRCL","PAN","TILT","FLAY","\n",
+                " ","RED","GREEN","BLUE","MAGENTA","\n",
+                "\n",
+                ]
                 #, "FX:SIN","FX:COS","FX:RAMP","FX:RAMP2","FX:FD","FX:ON","BASE:\n-"] #,"FX:RND" ]
 
         self.fx = Elem_Container()
@@ -2015,27 +2033,31 @@ if __run_main:
     data.append({"text":"COLORPICKER","name":"COLOR"})
     data.append({"text":"---"})
     data.append({"text":"FIXTURE-EDITOR","name":"FIX-EDIT"})
-    data.append({"text":"CONFIG"})
     data.append({"text":"SDL-MIDI"})
     data.append({"text":"CLOCK"})
     data.append({"text":"RAY-DMX"})
-    data.append({"text":"R-FIX-LIST"})
-    data.append({"text":"SDL-DMX"})
     data.append({"text":"SDL-VPU"})
-    data.append({"text":"SDL-OSZI"})
+    data.append({"text":"---"})
     data.append({"text":"Nodescanner","name":"NodeScan"})
     data.append({"text":"TK-Ping"})
-    data.append({"text":"---"})
+    data.append({"text":"SDL-OSZI"})
     data.append({"text":"---"})
     data.append({"text":"- DEMO -"})
     data.append({"text":"---"})
-    data.append({"text":"XWING"})
-    #data.append({"text":"TK-EXEC"})
-    #data.append({"text":"EXEC-BTN","name":"EXEC-BTN"})
     data.append({"text":"SDL-STAGE"})
     data.append({"text":"SDL-Shader"})
     data.append({"text":"TABLE"})
-
+    data.append({"text":"---"})
+    data.append({"text":"- NEW -"})
+    data.append({"text":"R-FIX-LIST"})
+    data.append({"text":"FX3"})
+    data.append({"text":"XWING"})
+    data.append({"text":"CONFIG"})
+    data.append({"text":"---"})
+    data.append({"text":"- OLD -"})
+    data.append({"text":"SDL-DMX"})
+    #data.append({"text":"TK-EXEC"})
+    #data.append({"text":"EXEC-BTN","name":"EXEC-BTN"})
     #data.append({"text":"MASTER-WING"})
 
     name="MAIN"
@@ -2619,6 +2641,22 @@ if __run_main:
         window_manager.top(name)
 
 
+    # =======================================================================
+    name="FX3"
+    args = {"title":name,"master":0,"width":364,"height":418+30,"left":L1+10+W1,"top":TOP+302,"resize":1}
+    geo = libwin.split_window_position(pos_list,name)
+    if geo:
+        args.update(geo)
+    cls = draw_fx_3 #(master,w.tk)
+    data = []
+    cb_ok = None
+
+    c = libtk.window_create_buffer(args=args,cls=cls,data=data,cb_ok=cb_ok,gui=master,scroll=0)
+    window_manager.new(None,name,wcb=c)
+    if libwin.split_window_show(pos_list,_filter=name):
+        window_manager.top(name)
+
+
     # =======================================================================
     name="PATCH"
     args = {"title":name,"master":0,"width":W1,"height":H1,"left":L1,"top":TOP,"foot":1,"head":1}

+ 20 - 1
lib/libtk.py

@@ -534,7 +534,7 @@ class WindowContainer():
             self.tk.withdraw() # do not draw
             self.tk.resizable(self.args["resize"],self.args["resize"])
             self.tk.tk_setPalette(background='#bbb', foreground='black', activeBackground='#aaa', activeForeground="black")
-
+            self.tk.maxsize(260,1000) # w,h
             defaultFont = tkinter.font.nametofont("TkDefaultFont")
             cprint(defaultFont)
             defaultFont.configure(family="FreeSans",
@@ -556,12 +556,31 @@ class WindowContainer():
             try:
                 if "COLORPICKER" in self.args["title"]:
                     self.tk.iconphoto(False, tk.PhotoImage(file=ico_path+"picker.png"))
+                    self.tk.maxsize(600,200) # w,h
                 elif "ENCODER" in self.args["title"]:
                     self.tk.iconphoto(False, tk.PhotoImage(file=ico_path+"enc.png"))
+                    self.tk.maxsize(630,300) # w,h
+                elif "EXEC-WING" in self.args["title"]:
+                    self.tk.iconphoto(False, tk.PhotoImage(file=ico_path+"scribble.png"))
+                    self.tk.maxsize(630,600) # w,h
                 elif "EXEC" in self.args["title"]:
                     self.tk.iconphoto(False, tk.PhotoImage(file=ico_path+"exec.png"))
+                    #self.tk.maxsize(300,1000) # w,h
+                elif "FX3" in self.args["title"]:
+                    self.tk.iconphoto(False, tk.PhotoImage(file=ico_path+"fx.png"))
+                    self.tk.maxsize(430,50*9) # w,h
                 elif "FX" in self.args["title"]:
                     self.tk.iconphoto(False, tk.PhotoImage(file=ico_path+"fx.png"))
+                    self.tk.maxsize(430,50*8) # w,h
+                elif "SETUP" in self.args["title"]:
+                    self.tk.iconphoto(False, tk.PhotoImage(file=ico_path+"scribble.png"))
+                    self.tk.maxsize(450,50) # w,h
+                elif "LIVE" in self.args["title"]:
+                    self.tk.iconphoto(False, tk.PhotoImage(file=ico_path+"scribble.png"))
+                    self.tk.maxsize(430,50) # w,h
+                elif "COMMAND" in self.args["title"]:
+                    self.tk.iconphoto(False, tk.PhotoImage(file=ico_path+"scribble.png"))
+                    self.tk.maxsize(430,50*3) # w,h
                 else:
                     self.tk.iconphoto(False, tk.PhotoImage(file=ico_path+"scribble.png"))
             except Exception as e:

+ 1 - 0
tkgui/EXEC-BTN.py

@@ -457,6 +457,7 @@ if geo:
    args.update(geo)
 
 root = tk.Tk()
+root.maxsize(830,2000)
 
 win_title="EXEC-BTN"
 store = movewin.load_all_sdl(win_title)

+ 4 - 2
tkgui/MENUE.py

@@ -44,6 +44,7 @@ class GUI_menu():
         global tk
         global INIT_OK
         self.frame = frame
+        
         self.data = data
         self.elem = {}
         self.root = root
@@ -66,7 +67,7 @@ class GUI_menu():
         for row in self.data:
             print("  draw",row)
             text="<TXT>"
-
+            frame = self.frame 
             #row = data[i]
             if row["text"] == "---":
                 h=1
@@ -76,10 +77,11 @@ class GUI_menu():
             else:
                 text = row["text"]
 
+
             if "- DEMO -"  == text:
                 c=2
                 r=1
-            b = tk.Button(self.frame,bg="lightgrey", text=text,width=8,height=h)
+            b = tk.Button(frame,bg="lightgrey", text=text,width=8,height=h)
             self.b = b
 
             if "tip" in row:

+ 91 - 0
tkgui/draw.py

@@ -426,6 +426,70 @@ def draw_enc(gui,xframe,data=[]):
     b.grid(row=r, column=c, sticky=tk.W+tk.E)
     c+=1
 
+def _draw_fx_3(frame,c,r,gui,mode="FX"):
+    ct  = gui.fx_3 #moves
+    prm = MAIN.fx_prm_3
+
+    for comm in ct.commands:
+        if comm == "\n\n":
+            b = tk.Label(frame,bg="black", text="-",font=space_font)
+            b.grid(row=r, column=c,pady=0,padx=0, sticky=tk.W+tk.E)
+            c=0
+            r+=1
+            continue
+        if comm == "\n":
+            c=0
+            r+=1
+            continue
+        v=0
+        if "PAN/TILT" in comm: 
+            b = tk.Button(frame,bg="grey", text=str(comm),width=6,height=1)
+        else:
+            b = tk.Button(frame,bg="lightgrey", text=str(comm),width=6,height=1)
+        if 1:#comm not in ct.elem:
+            #comm = comm.replace("\n","")
+            ct.elem[comm] = b
+            ct.val[comm] = 0
+        b.bind("<Button>",tkevent.tk_event_fx(fix=0,elem=b,attr=comm,data=gui,mode=mode).cb)
+        if comm == "xREC-FX":
+            b["bg"] = "grey"
+        elif comm == "xFX OFF":
+            b["bg"] = "magenta"
+        elif comm[:3] == "xFX:" or comm[:3] == "x2D:":
+            b["text"] = comm
+            b["bg"] = "#ffbf00"
+        elif comm[:3] == "xMO:":
+            b["text"] = comm 
+            b["bg"] = "lightgreen"
+        elif comm.startswith( "xSIZE:"):
+            b["text"] = "SIZE:\n{:0.0f}".format(prm["SIZE"])
+            b["bg"] = "lightgreen"
+        elif comm.startswith( "xSPEED:"):
+            b["text"] = "SPEED:\n{:0.0f}".format(prm["SPEED"])
+            b["bg"] = "lightgreen"
+        elif comm.startswith("xSTART:"):
+            b["bg"] = "lightgreen"
+            b["text"] = "START:\n{:0.0f}".format(prm["START"])
+        elif comm.startswith( "xOFFSET:"):
+            b["bg"] = "lightgreen"
+            b["text"] = "OFFSET:\n{:0.0f}".format(prm["OFFSET"])
+        elif comm[:3] == "xBASE:":
+            b["bg"] = "lightgreen"
+            b["text"] = "BASE:\n{}".format(prm["BASE"])
+        elif comm[0] == "M":
+            b["text"] = comm 
+            b["bg"] = "lightgrey"
+
+        if comm:
+            b.grid(row=r, column=c, sticky=tk.W+tk.E)
+        c+=1
+        if c >=6:
+            c=0
+            r+=1
+    c=0
+    r+=1
+    return c,r
+
 def _draw_fx(frame,c,r,gui,mode="FX"):
     if mode=="FX-MAIN":
         ct  = gui.fx_main
@@ -515,6 +579,33 @@ def _add_space(frame,r,c):
     c=0
     return r,c
 
+def draw_fx_3(gui,xframe,data=[]):
+    frame_fx=xframe
+    i=0
+    c=0
+    r=0
+    
+    frame = tk.Frame(frame_fx,bg="black")
+    frame.pack(fill=tk.X, side=tk.TOP)
+   
+    # ------------------------------
+    b = tk.Button(frame,bg="lightblue", text="FX3",width=6)
+    b.grid(row=r, column=c, sticky=tk.W+tk.E)
+    c+=1
+
+    thread.start_new_thread(mytklib.tk_btn_bg_loop,(b,))
+    # ------------------------------
+
+
+    _add_space(frame,r,c)
+    c,r = _draw_fx(frame,c,r,gui,mode="FX-MAIN")
+
+    #r,c=_add_space(frame,r,c)
+    #c,r = _draw_fx(frame,c,r,gui,mode="FX-COLOR")
+
+    r,c=_add_space(frame,r,c)
+    c,r = _draw_fx_3(frame,c,r,gui,mode="FX-3")
+
 def draw_fx(gui,xframe,data=[]):
     frame_fx=xframe
     i=0