Răsfoiți Sursa

add: message_buss_loop and MODES.modes

micha 8 luni în urmă
părinte
comite
0ad3f160b1
4 a modificat fișierele cu 84 adăugiri și 8 ștergeri
  1. 28 0
      _LibreLightDesk.py
  2. 47 5
      tkgui/EXEC.py
  3. 2 0
      tkgui/dialog.py
  4. 7 3
      tksdl/fix.py

+ 28 - 0
_LibreLightDesk.py

@@ -468,6 +468,34 @@ class MC():
 _mc=MC()
 _mc.loop()
 
+
+def message_buss_loop():
+    while 1:
+        try:
+            mc = memcache.Client(['127.0.0.1:11211'], debug=0)
+            break
+        except Exception as e:
+            cprint("--1 message_buss_loop Exc",[e])
+        time.sleep(2)
+
+    while 1:
+        try:
+            key="MODES" 
+            cfg = {}
+            for k,v in modes.modes.items():
+                if v:
+                    cfg[k] = v
+
+            cfg["S-KEY"] = _global_short_key
+            mc.set(key,json.dumps(cfg))
+
+        except Exception as e:
+            cprint("--2 message_buss_loop Exc:",[e])
+            time.sleep(2)
+        time.sleep(0.5)
+
+thread.start_new_thread(message_buss_loop,())
+
 console = chat.Client() #port=50001)
 
 def jclient_send(data):

+ 47 - 5
tkgui/EXEC.py

@@ -7,7 +7,10 @@ import tkinter as tk
 import traceback
 import _thread as thread
 
-
+import dialog
+DIALOG = dialog.Dialog()
+#d = dialog.Dialog()
+#d.ask_exec_config(str(nr+1),button=button,label=label,cfg=cfg)
 
 import __main__ as MAIN
 
@@ -21,6 +24,8 @@ import tkgui.draw as draw
 import lib.libtk as libtk
 import lib.zchat as chat
 
+root = None
+
 cmd_client = chat.Client(port=30003)
 
 try:
@@ -58,6 +63,7 @@ refresher_fix =  Refresher_fix()
 class Modes():
     def __init__(self,*arg,**args):
         print("Modes.__init__",arg,args)
+        self.modes = {}
     def val(self,*arg,**args):
         print("Modes.val",arg,args)
 
@@ -75,6 +81,7 @@ EXEC = Exec()
 class Gui():
     def __init__(self):
         self.elem_exec = []
+        self.elem_meta = [None]*512
 
     def _refresh_exec(self,*arg,**args):
         print("Gui._refresh_exec",arg,args)
@@ -152,6 +159,8 @@ class Gui():
             out["fg"] = _fg #= "#00e"
             out["bg"] = _bg #= "#00e"
             cfg = out 
+            
+            self.elem_meta[nr] = META
 
             b = self.elem_exec[nr]
             b.configure(fg=cfg["fg"],bg=cfg["bg"],activebackground=cfg["ba"],text=cfg["text"],fx=cfg["fx"])
@@ -160,16 +169,31 @@ class Gui():
         print("Gui.exec_go",arg,args)
         #print(" ",dir(arg))
         #print(" ",self)
-        btn_nr = arg[0]+1
-        btn_nr_raw=0
+        btn_nr = arg[0]
         v=args["val"]
-        msg=json.dumps([{"event":"EXEC","EXEC":btn_nr,"VAL":v,"NR-KEY":btn_nr_raw}]).encode("utf-8")
+        if "CFG-BTN" in modes.modes:
+            button = self.elem_exec[btn_nr]
+            label = str(btn_nr) #self.elem_meta[nr] = META
+
+            if v:
+                cfg = self.elem_meta[btn_nr] 
+                DIALOG.ask_exec_config(str(btn_nr+1),button=button,label=label,cfg=cfg)
+            return 
+        msg=json.dumps([{"event":"EXEC","EXEC":btn_nr,"VAL":v,"NR-KEY":btn_nr}]).encode("utf-8")
         print("SPCIAL-KEY",msg)
         cmd_client.send(msg)
 
 gui  = Gui()
+ 
 
 
+#import memcache
+#mc = memcache.Client(['127.0.0.1:11211'], debug=0)
+#import time
+#while 1:
+#    x=mc.get("MODE")
+#    print(x)
+#    time.sleep(1)
 
 
 
@@ -204,6 +228,24 @@ def _refr_loop():
         time.sleep(3)
 thread.start_new_thread(_refr_loop,())
 
-
+def _refr_loop2():
+    time.sleep(3)
+    while 1:
+        try:
+            global root
+            title = "DEMO TK-EXEC"
+            data = mc.get("MODES")
+            title += "  "+str(data)
+            data = json.loads(data)
+            #print("MODES",data)
+            modes.modes = data
+            if root:
+                root.title(title)
+        except Exception as e:
+            print("  ER7R mc...",e)
+            time.sleep(3)
+        time.sleep(0.5)
+
+thread.start_new_thread(_refr_loop2,())
 
 root.mainloop()

+ 2 - 0
tkgui/dialog.py

@@ -9,6 +9,8 @@ tk = tkinter
 from idlelib.tooltip import Hovertip
 
 import __main__ as MAIN
+import sys
+sys.path.insert(0,"/opt/LibreLight/Xdesk/")
 from lib.cprint import cprint
 
 

+ 7 - 3
tksdl/fix.py

@@ -815,12 +815,16 @@ while 1:
                         cmd_client.send(msg)
 
             if event['type'] == pygame.QUIT:
+                print()
+                print("quit",event)
                 pygame.quit()
                 sys.exit(0)
             elif event['type'] == pygame.VIDEORESIZE:
-                scrsize = event.size
-                width   = event.w
-                hight   = event.h
+                print()
+                print("resize",event)
+                scrsize = event['size']
+                width   = event['w']
+                hight   = event['h']
                 resize_changed = True
 
             scroll_bar.event(raw_event) #daraw()