|
@@ -1,5 +1,10 @@
|
|
|
from pyray import *
|
|
|
import pyray
|
|
|
+
|
|
|
+for i in dir(pyray):
|
|
|
+ if i.startswith("draw_"):
|
|
|
+ print(i)
|
|
|
+#exit()
|
|
|
ConfigFlags(FLAG_MSAA_4X_HINT) #|FLAG_WINDOW_RESIZABLE )
|
|
|
#ConfigFlags(FLAG_WINDOW_RESIZABLE )
|
|
|
ConfigFlags(FLAG_WINDOW_HIGHDPI )
|
|
@@ -9,6 +14,7 @@ init_window(760, 450, "RAY-DMX")#,10,10,10,10)
|
|
|
import sys
|
|
|
sys.path.insert(0,"/opt/LibreLight/Xdesk/")
|
|
|
import tool.tk_elm as tk_elm
|
|
|
+#import tool.sdl_elm as sdl_elm
|
|
|
|
|
|
img = "/opt/LibreLight/Xdesk/icon/scribble.png"
|
|
|
IMG = load_image(img)
|
|
@@ -38,6 +44,9 @@ a = "/usr/share/fonts/truetype/freefont/FreeSansBold.ttf"
|
|
|
|
|
|
|
|
|
k=200
|
|
|
+a = "/usr/share/fonts/truetype/freefont/FreeSans.ttf"
|
|
|
+font10l = load_font_ex(a, 10, None, 0);
|
|
|
+a = "/usr/share/fonts/truetype/freefont/FreeSansBold.ttf"
|
|
|
font10 = load_font_ex(a, 12, None, 0);
|
|
|
print(dir(font10))
|
|
|
print(font10.baseSize)
|
|
@@ -57,7 +66,7 @@ class EVENT():
|
|
|
def __init__(self):
|
|
|
self.dict = {}
|
|
|
self.type = 0
|
|
|
- self.button=0
|
|
|
+ self.button=10
|
|
|
self.buttons=[0,0,0,0]
|
|
|
xevent=EVENT()
|
|
|
|
|
@@ -66,6 +75,9 @@ class BUTTON():
|
|
|
#self.btn = tk_elm.Button(None,pos=[390,12,20,90])
|
|
|
self.btn = tk_elm.Button(master,pos=pos)
|
|
|
self.btn.btn1.color = [127,127,127,255]
|
|
|
+ #self.btn.btn1.type = "toggle"
|
|
|
+ #self.btn.btn2.type = "toggle"
|
|
|
+ #self.btn.btn3.type = "toggle"
|
|
|
#btn.btn1.color_on = [155,155,155,255]
|
|
|
#btn.btn2.color = [155,55,155,255]
|
|
|
#btn.btn2.color_on = [155,155,155,255]
|
|
@@ -82,19 +94,21 @@ class BUTTON():
|
|
|
c=[122,122,122,122] #btn.btn2.get_color()
|
|
|
draw_rectangle(pos[1],pos[0],pos[3],pos[2],c)
|
|
|
|
|
|
- c=self.btn.btn3.get_color()
|
|
|
- draw_rectangle(pos[1]+1,pos[0]+1,pos[3]-2,pos[2]-2,c)
|
|
|
c=self.btn.btn1.get_color()
|
|
|
draw_rectangle(pos[1]+2,pos[0]+2,pos[3]-4,pos[2]-4,c)
|
|
|
|
|
|
+ c=self.btn.btn3.get_color()
|
|
|
+ #draw_rectangle(pos[1]+1,pos[0]+1,pos[3]-2,pos[2]-2,c)
|
|
|
+ draw_rectangle_lines_ex([pos[1]+1,pos[0]+1,pos[3]-2,pos[2]-2],1,c)
|
|
|
+
|
|
|
x=self.btn.btn1.name
|
|
|
draw_text_ex(font10,str(x), [pos[1]+4,pos[0]+4], font_size, 0, [0,0,0,255])#YELLOW)#[0,255,0,255]) #YELLOW)
|
|
|
|
|
|
def event(self,x,y,mouse):
|
|
|
try:
|
|
|
- #print("POS:",old_x,old_y)
|
|
|
+ #print("POS:",old_x,old_y,mouse,xevent.type)
|
|
|
xevent.dict={"pos":[old_y,old_x],"button":1,"buttons":[0,0,0]}
|
|
|
- xevent.type=3
|
|
|
+ #xevent.type=3
|
|
|
for i,v in enumerate(mouse):
|
|
|
if i==0:
|
|
|
if v == "release":
|
|
@@ -113,8 +127,70 @@ class BUTTON():
|
|
|
print(traceback.format_exc())
|
|
|
raise e
|
|
|
|
|
|
+mouse_box_on = 0
|
|
|
+mouse_box_on_pos = [0,0]
|
|
|
+def draw_mouse_box(window,pos1,mouse=[None,None,None],color=[128,128,128],text=1):
|
|
|
+ global mouse_box_on_pos
|
|
|
+ global mouse_box_on
|
|
|
+
|
|
|
+ if mouse[0]=="press":
|
|
|
+ if mouse_box_on == 0:
|
|
|
+ pos2 = pos1[:]
|
|
|
+ mouse_box_on_pos = pos2
|
|
|
+ mouse_box_on = 1
|
|
|
+ else:
|
|
|
+ mouse_box_on = 0
|
|
|
+
|
|
|
+ if mouse[0]=="press":
|
|
|
+ pos2 = mouse_box_on_pos[:]
|
|
|
+
|
|
|
+
|
|
|
+ w=pos1[0]-pos2[0]
|
|
|
+ h=pos1[1]-pos2[1]
|
|
|
+ pos = pos2[:]
|
|
|
+ #print(pos1,pos2,h,w)
|
|
|
+ wd=1
|
|
|
+ hd=1
|
|
|
+ if w < 0:
|
|
|
+ pos[0] = pos1[0]
|
|
|
+ w*=-1
|
|
|
+ wd=-1
|
|
|
+ if h < 0:
|
|
|
+ pos[1] = pos1[1]
|
|
|
+ h*=-1
|
|
|
+ hd=-1
|
|
|
+
|
|
|
+ if w > 10 or h > 10:
|
|
|
+ c=[255,255,255,255]
|
|
|
+ draw_rectangle_lines_ex([pos[0],pos[1],w,h],1,c)
|
|
|
+ font_size = font10l.baseSize
|
|
|
+ draw_text_ex(font10l,str(pos1[0])+" "+str(pos1[1]), [pos1[0],pos1[1]-10], font_size, 0, WHITE)
|
|
|
+ draw_text_ex(font10l,str(pos2[0])+" "+str(pos2[1]), [pos2[0]+5,pos2[1]+10], font_size, 0, WHITE)
|
|
|
+ draw_text_ex(font10l,str(w), [pos2[0]+5+w/2*wd,pos2[1]], font_size, 0, WHITE)
|
|
|
+ draw_text_ex(font10l,str(h), [pos2[0]+5,pos2[1]+h/2*hd], font_size, 0, WHITE)
|
|
|
+ return pos1,pos2
|
|
|
+
|
|
|
mouse_old=[None,None,None]
|
|
|
|
|
|
+def check_area_v(v1,v2,event_v):#elm_pos,event_pos):
|
|
|
+ if event_v < v1+1:
|
|
|
+ return 0
|
|
|
+ if event_v > v2-1:
|
|
|
+ return 0
|
|
|
+ return 1
|
|
|
+
|
|
|
+def check_area(pos,event_pos):
|
|
|
+ v2 = pos[0]+pos[2]
|
|
|
+ x = check_area_v(pos[0],v2,event_pos[0])
|
|
|
+ v2 = pos[1]+pos[3]
|
|
|
+ y = check_area_v(pos[1],v2,event_pos[1])
|
|
|
+ if x and y:
|
|
|
+ return 1
|
|
|
+
|
|
|
+
|
|
|
+buttons={} #[]
|
|
|
+cur = None
|
|
|
+
|
|
|
while not window_should_close():
|
|
|
begin_drawing()
|
|
|
|
|
@@ -122,7 +198,6 @@ while not window_should_close():
|
|
|
Color(255,0,0,0)
|
|
|
rl_enable_smooth_lines()
|
|
|
|
|
|
- buttons=[]
|
|
|
|
|
|
|
|
|
font_size = font10.baseSize
|
|
@@ -133,12 +208,13 @@ while not window_should_close():
|
|
|
keys = []
|
|
|
host_list = {}
|
|
|
for k in DATA:
|
|
|
- #print(DATA[k])
|
|
|
+ print(k,DATA[k])
|
|
|
+ #print(k)
|
|
|
keys.append(k)
|
|
|
host_list[k] = DATA[k] #[0]).ljust(" ",18) #,0,"=",0]
|
|
|
keys.sort()
|
|
|
|
|
|
- k=keys[0]
|
|
|
+ k=keys[1]
|
|
|
for i,v in enumerate(range(20)):
|
|
|
# COL NUMBER -> 1 2... 20
|
|
|
x2 = grid_x+i*25
|
|
@@ -150,16 +226,14 @@ while not window_should_close():
|
|
|
|
|
|
xi=0
|
|
|
yi=0
|
|
|
- DMX=mc.get(k)
|
|
|
- cur = k
|
|
|
- draw_text_ex(font25,"SRC:{}".format(k),[grid_x-20,5], 25, 0, VIOLET)
|
|
|
+ if cur is None:
|
|
|
+ cur = k #k[3] #"xx123" # k
|
|
|
+ DMX=mc.get(cur)
|
|
|
+ draw_text_ex(font25,"SRC:{}".format(cur),[grid_x-20,5], 25, 0, VIOLET)
|
|
|
|
|
|
for i,v in enumerate(DMX):
|
|
|
- #print(i,v)
|
|
|
-
|
|
|
if v:
|
|
|
host_list[k][-1] +=1
|
|
|
- txt = str(i)+":"+str(v)
|
|
|
txt = str(v)
|
|
|
x2 = grid_x+xi*25
|
|
|
y2 = grid_y+yi*15
|
|
@@ -191,21 +265,28 @@ while not window_should_close():
|
|
|
|
|
|
p=0
|
|
|
for k,v in host_list.items():
|
|
|
- #for k in keys:
|
|
|
- # HOST LIST
|
|
|
x2 = 10
|
|
|
y2 = grid_y+p
|
|
|
- txt =str(k)+" "+str(v).replace(" ","").replace("[","").replace("]","")
|
|
|
- #draw_rectangle(x2-2, y2-2,200,18,[125,125,125,255])
|
|
|
- #draw_text_ex(font10,txt, [x2,y2], font_size, 0, BLACK) # YELLOW)# VIOLET)
|
|
|
+ v = str(v).replace(" ","").replace("[","").replace("]","")
|
|
|
+ txt = str(k)+" "+str(v)
|
|
|
+
|
|
|
+ key = txt.split(" ")[0]
|
|
|
p+=22
|
|
|
|
|
|
- btn=BUTTON(None,txt,[y2,x2,20,190])
|
|
|
- #btn.btn.btn1.color = [55,155,155,255]
|
|
|
+ if key in buttons:
|
|
|
+ btn = buttons[key]
|
|
|
+ else:
|
|
|
+ btn=BUTTON(None,txt,[y2,x2,20,190])
|
|
|
+ buttons[key] = btn
|
|
|
+ print("ADD",key,btn)
|
|
|
+
|
|
|
+ btn.btn.btn1.name = txt
|
|
|
btn.btn.btn1.color_on = [255,255,0,255]
|
|
|
+ btn.btn.btn1.val.set(0)
|
|
|
if cur in btn.btn.btn1.name:
|
|
|
btn.btn.btn1.val.set(255)
|
|
|
- buttons.append(btn)
|
|
|
+ #btn.btn.btn1.press() #val.set(255)
|
|
|
+
|
|
|
|
|
|
w=200
|
|
|
h=50
|
|
@@ -239,9 +320,18 @@ while not window_should_close():
|
|
|
print(mouse)
|
|
|
mouse_old = mouse[:]
|
|
|
|
|
|
- for btn in buttons:
|
|
|
+ for k,btn in buttons.items():
|
|
|
btn.event(old_x,old_y,mouse_old)
|
|
|
+ if "press" == mouse_old[0]:
|
|
|
+ btn.button = 1
|
|
|
+ #if check_area(btn.btn.pos,[old_x,old_y]):#event_pos):
|
|
|
+ if check_area(btn.btn.pos,[old_y,old_x]):#event_pos):
|
|
|
+ print(k,btn.btn.pos)
|
|
|
+ #btn.btn.btn1.val.set(255)
|
|
|
+ #cur = k
|
|
|
+ cur = k # btn.btn.btn1.name
|
|
|
btn.draw()
|
|
|
+ aapos = draw_mouse_box(None,[old_x,old_y],mouse_old,color=[128,128,128],text=1)
|
|
|
|
|
|
|
|
|
draw_text_ex(font20,"POS:{}:{}".format(int(m.x),int(m.y)),[10,34], 20, 0, VIOLET)
|