Changeset - 76e326329610
[Not reviewed]
default
0 1 1
drewp@bigasterisk.com - 20 years ago 2005-06-13 03:15:10
drewp@bigasterisk.com
working on changing cursors in curvecalc. nothing to see yet
2 files changed with 39 insertions and 12 deletions:
0 comments (0 inline, 0 general)
light9/cursors.py
Show inline comments
 
new file 100644
 

	
 
import logging
 
log = logging.getLogger("cursors")
 

	
 
# accept ascii images, read file images, add hotspots, read xbm as
 
# cursor with @filename form
 

	
 
_pushed = {} # widget : [old, .., newest]
 
def push(widget,new_cursor):
 
    global _pushed
 
    _pushed.setdefault(widget,[]).append(widget.cget("cursor"))
 

	
 
def pop(widget):
 
    global _pushed
 
    try:
 
        c = _pushed[widget].pop(-1)
 
    except IndexError:
 
        log.debug("cursor pop from empty stack")
 
        return
 
    widget.config(cursor=c)
 
    
 
    
light9/curve.py
Show inline comments
 
@@ -5,7 +5,7 @@ import Tkinter as tk
 
from dispatch import dispatcher
 

	
 
import run_local
 
from light9 import Submaster, dmxclient, networking
 
from light9 import Submaster, dmxclient, networking, cursors
 
from light9.TLUtility import make_attributes_from_args
 
from light9.dmxchanedit import gradient
 

	
 
@@ -57,16 +57,18 @@ class RegionZoom:
 

	
 
        for evtype, method in [("ButtonPress-1",self.press),
 
                               ("Motion",self.motion),
 
                               ("ButtonRelease",self.release)]:
 
                               ("ButtonRelease-1",self.release)]:
 
            canvas.bind("<Control-Alt-%s>" % evtype, method)
 
            if evtype != "ButtonPress-1":
 
                canvas.bind("<%s>" % evtype, method)
 
        canvas.bind("<Leave>", self.finish)
 
        self.start_t = None
 
        self.start_t = self.old_cursor = None
 
        self.state = None
 

	
 
    def press(self,ev):
 
        if self.start_t is not None:
 
        if self.state is not None:
 
            self.finish()
 
        self.state = "buttonpress"
 
            
 
        self.start_t = self.end_t = self.world_from_screen(ev.x,0)[0]
 
        self.start_x = ev.x
 
@@ -79,11 +81,12 @@ class RegionZoom:
 
        # will fail for reasons i don't understand
 
        self.updatelines()
 

	
 
        self.old_cursor = can.cget("cursor")
 
        #xcursorgen
 
        can.config(cursor="@/home/drewp/projects/light9/cout red")
 
        cursors.push(can, "@/home/drewp/projects/light9/cursor1.xbm")
 
        
 
    def updatelines(self):
 

	
 
        # better would be a gray25 rectangle over the region
 
        
 
        can = self.canvas
 
        pos_x = {}
 
        height = can.winfo_height()
 
@@ -98,14 +101,14 @@ class RegionZoom:
 
                       pos_x['end_t'], frac * height)
 

	
 
    def motion(self,ev):
 
        if self.start_t is None:
 
        if self.state != "buttonpress":
 
            return
 

	
 
        self.end_t = self.world_from_screen(ev.x,0)[0]
 
        self.updatelines()
 

	
 
    def release(self,ev):
 
        if self.start_t is None:
 
        if self.state != "buttonpress":
 
            return
 
        
 
        if abs(self.start_x - ev.x) < 10:
 
@@ -126,9 +129,11 @@ class RegionZoom:
 
        self.finish()
 
        
 
    def finish(self, *ev):
 
        self.canvas.delete("regionzoom")
 
        self.start_t = None
 
        self.canvas.config(cursor=self.old_cursor)
 
        if self.state is not None:
 
            self.state = None
 
            self.canvas.delete("regionzoom")
 
            self.start_t = None
 
            cursors.pop(self.canvas)
 

	
 
class Curveview(tk.Canvas):
 
    def __init__(self,master,curve,**kw):
0 comments (0 inline, 0 general)