source: trunk/src/testing/dim/overlay.py @ 4

Revision 4, 3.4 KB checked in by ajaworski, 13 years ago (diff)

Added modified SAGE sources

Line 
1############################################################################
2#
3# DIM - A Direct Interaction Manager for SAGE
4# Copyright (C) 2007 Electronic Visualization Laboratory,
5# University of Illinois at Chicago
6#
7# All rights reserved.
8#
9# Redistribution and use in source and binary forms, with or without
10# modification, are permitted provided that the following conditions are met:
11#
12#  * Redistributions of source code must retain the above copyright
13#    notice, this list of conditions and the following disclaimer.
14#  * Redistributions in binary form must reproduce the above
15#    copyright notice, this list of conditions and the following disclaimer
16#    in the documentation and/or other materials provided with the distribution.
17#  * Neither the name of the University of Illinois at Chicago nor
18#    the names of its contributors may be used to endorse or promote
19#    products derived from this software without specific prior written permission.
20#
21# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
25# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
28# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
29# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
30# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
31# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32#
33# Direct questions, comments etc about SAGE UI to www.evl.uic.edu/cavern/forum
34#
35# Author: Ratko Jagodic
36#       
37############################################################################
38
39
40from globals import *
41
42SPECIAL_DEVICE = 100
43
44class Overlay:
45    """ this describes the basic overlay - ie an object
46        that's drawn on the screen
47    """
48
49    def __init__(self, overlayType, overlayId):
50        #self.overlayId
51        self.overlayType = overlayType
52        self.overlayId = overlayId
53        self.displayId = 0
54        self.sageGate = getSageGate()
55        self.visible = True
56        #self.x = 0  # position in SAGE coords
57        #self.y = 0
58
59    def setSpecialDevice(self, value):
60        self.sendOverlayMessage(SPECIAL_DEVICE, value)
61
62    def getId(self):
63        return self.overlayId
64   
65
66    def getType(self):
67        return self.overlayType
68
69
70    def isVisible(self):
71        return self.visible
72
73
74    def sendOverlayMessage(self, *params):
75        self.sageGate.sendOverlayMessage(self.overlayId, *params)
76   
77
78    def hide(self):
79        if self.visible:
80            self.visible = False
81            self.sageGate.showOverlay(self.overlayId, False)
82
83
84    def show(self):
85        if not self.visible:
86            self.visible = True
87            self.sageGate.showOverlay(self.overlayId, True)
88
89
90    def update(self, now):
91        """ do something to update your drawing or whatever
92            the *now* parameter is the current time in seconds... float
93        """
94        pass
95
96
97##     def destroy(self):
98##         """ Called when the object is deleted.
99##             Make sure you call this method if you override it.
100##         """
101##         pass
102
103
104   
Note: See TracBrowser for help on using the repository browser.