diff options
Diffstat (limited to 'superkaramba/examples/globalMouse')
-rw-r--r-- | superkaramba/examples/globalMouse/extension/setup.py | 20 | ||||
-rw-r--r-- | superkaramba/examples/globalMouse/extension/xcursor.c | 16 | ||||
-rw-r--r-- | superkaramba/examples/globalMouse/eyes.py | 173 | ||||
-rwxr-xr-x[-rw-r--r--] | superkaramba/examples/globalMouse/xcursor.so | bin | 7465 -> 27408 bytes |
4 files changed, 112 insertions, 97 deletions
diff --git a/superkaramba/examples/globalMouse/extension/setup.py b/superkaramba/examples/globalMouse/extension/setup.py index f33f8a6..49bd87b 100644 --- a/superkaramba/examples/globalMouse/extension/setup.py +++ b/superkaramba/examples/globalMouse/extension/setup.py @@ -1,12 +1,14 @@ from distutils.core import setup, Extension -module1 = Extension('xcursor', - include_dirs = ['/usr/X11R6/include'], - libraries = ['X11'], - library_dirs = ['/usr/X11R6/lib'], - sources = ['xcursor.c']) +def main(): + setup(name = 'XMouseCursor', + version = '1.0', + description = 'Determines the position of the X mouse cursor', + ext_modules = [Extension('xcursor', + include_dirs = ['/usr/X11R6/include'], + libraries = ['X11'], + library_dirs = ['/usr/X11R6/lib'], + sources = ['xcursor.c'])]) -setup (name = 'XMouseCursor', - version = '1.0', - description = 'Determines the position of the X mouse cursor', - ext_modules = [module1]) +if __name__ == "__main__": + main() diff --git a/superkaramba/examples/globalMouse/extension/xcursor.c b/superkaramba/examples/globalMouse/extension/xcursor.c index 8dad240..fbe80fa 100644 --- a/superkaramba/examples/globalMouse/extension/xcursor.c +++ b/superkaramba/examples/globalMouse/extension/xcursor.c @@ -26,6 +26,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ****************************************************************************/ +#define PY_SSIZE_T_CLEAN #include <Python.h> #include <X11/Xlib.h> @@ -96,9 +97,16 @@ static PyMethodDef xcursorMethods[] = {NULL, NULL, 0, NULL} /* Sentinel */ }; -void initxcursor(void) +static struct PyModuleDef xcursordef = { - (void) Py_InitModule("xcursor", xcursorMethods); -} - + PyModuleDef_HEAD_INIT, + "xcursor", + NULL, + -1, + xcursorMethods +}; +PyMODINIT_FUNC PyInit_xcursor(void) +{ + return PyModule_Create(&xcursordef); +} diff --git a/superkaramba/examples/globalMouse/eyes.py b/superkaramba/examples/globalMouse/eyes.py index b95f86d..f6f3804 100644 --- a/superkaramba/examples/globalMouse/eyes.py +++ b/superkaramba/examples/globalMouse/eyes.py @@ -38,117 +38,122 @@ lp_width, lp_height = 11, 17 rp_width, rp_height = 11, 17 def pupille(mouse_x, mouse_y, eye_center_x, eye_center_y, eye_a, eye_b, widget_x, widget_y): - x = mouse_x - eye_center_x - widget_x - y = mouse_y - eye_center_y - widget_y - #print x, y + x = mouse_x - eye_center_x - widget_x + y = mouse_y - eye_center_y - widget_y + #print(x, y) - r = math.sqrt(x * x + y * y) - phi = math.atan2(y, x) - #print phi * math.pi + r = math.sqrt(x * x + y * y) + phi = math.atan2(y, x) + #print(phi * math.pi) - eye_x = eye_a * math.cos(phi) - eye_y = eye_b * math.sin(phi) - - eye_r = math.sqrt(eye_x * eye_x + eye_y * eye_y) + eye_x = eye_a * math.cos(phi) + eye_y = eye_b * math.sin(phi) + + eye_r = math.sqrt(eye_x * eye_x + eye_y * eye_y) - if eye_r < r: - return int(eye_x + eye_center_x), int(eye_y + eye_center_y) - - return int(x + eye_center_x), int(y + eye_center_y) + if eye_r < r: + return int(eye_x + eye_center_x), int(eye_y + eye_center_y) + + return int(x + eye_center_x), int(y + eye_center_y) - + #this is called when you widget is initialized def initWidget(widget): - pass + global init + global linkePupille + global rechtePupille + init = 0 + linkePupille = "" + rechtePupille = "" #this is called everytime your widget is updated #the update inverval is specified in the .theme file def widgetUpdated(widget): - global init - global linkePupille - global rechtePupille - - global w_width - global w_height + global init + global linkePupille + global rechtePupille + + global w_width + global w_height - global w_x - global w_y + global w_x + global w_y - global lx - global ly - global la - global lb + global lx + global ly + global la + global lb - global lp_width - global lp_height + global lp_width + global lp_height - global rx - global ry - global ra - global rb + global rx + global ry + global ra + global rb - global rp_width - global rp_height + global rp_width + global rp_height - global x_old - global y_old + global x_old + global y_old - if init == 0: - theme_path = karamba.getThemePath(widget) + "/" - - # read widget coordinates from eyes.theme - # f = open(theme_path + "eyes.theme") + if init == 0: + theme_path = karamba.getThemePath(widget) + "/" + + # read widget coordinates from eyes.theme + # f = open(theme_path + "eyes.theme") - # karamba_line = "" - #while re.compile('KARAMBA').search(karamba_line) == None: - # karamba_line = f.readline() + # karamba_line = "" + #while re.compile('KARAMBA').search(karamba_line) == None: + # karamba_line = f.readline() - #w_x = int(re.compile('X=([0-9]+)').search(karamba_line).group(1)) - #w_y = int(re.compile('Y=([0-9]+)').search(karamba_line).group(1)) + #w_x = int(re.compile('X=([0-9]+)').search(karamba_line).group(1)) + #w_y = int(re.compile('Y=([0-9]+)').search(karamba_line).group(1)) - #f.close() + #f.close() - #karamba.createWidgetMask(widget, theme_path + "pics/mask.png") + #karamba.createWidgetMask(widget, theme_path + "pics/mask.png") - linkePupille = karamba.createImage(widget, 15, 30, theme_path + "pics/pupille.png") - rechtePupille = karamba.createImage(widget, 100, 30, theme_path + "pics/pupille.png") - init = 1 + linkePupille = karamba.createImage(widget, 15, 30, theme_path + "pics/pupille.png") + rechtePupille = karamba.createImage(widget, 100, 30, theme_path + "pics/pupille.png") + init = 1 - karamba.redrawWidget(widget) + karamba.redrawWidget(widget) - # query mouse-cursor position - x, y = xcursor.position() - - #fp = os.popen("./xpos") - #output = fp.read() - #x, y = output.split() - - #print x, y + # query mouse-cursor position + x, y = xcursor.position() + + #fp = os.popen("./xpos") + #output = fp.read() + #x, y = output.split() + + #print(x, y) - if x != x_old or y != y_old: - x_old, y_old = x, y - # Get Widget Position - w_x, w_y = karamba.getWidgetPosition(widget) + if x != x_old or y != y_old: + x_old, y_old = x, y + # Get Widget Position + w_x, w_y = karamba.getWidgetPosition(widget) - # Calc left pupille - xp, yp = pupille (int(x), int(y), lx, ly, la, lb, w_x, w_y) + # Calc left pupille + xp, yp = pupille (int(x), int(y), lx, ly, la, lb, w_x, w_y) - xp = xp - lp_width / 2 - yp = yp - lp_height / 2 - #print xp, yp + xp = xp - lp_width // 2 + yp = yp - lp_height // 2 + #print(xp, yp) - karamba.moveImage(widget, linkePupille, xp, yp) + karamba.moveImage(widget, linkePupille, xp, yp) - # Calc right pupille - xp, yp = pupille (int(x), int(y), rx, ry, ra, rb, w_x, w_y) + # Calc right pupille + xp, yp = pupille (int(x), int(y), rx, ry, ra, rb, w_x, w_y) - xp = xp - rp_width / 2 - yp = yp - rp_height / 2 - #print xp, yp + xp = xp - rp_width // 2 + yp = yp - rp_height // 2 + #print(xp, yp) - karamba.moveImage(widget, rechtePupille, xp, yp) + karamba.moveImage(widget, rechtePupille, xp, yp) - karamba.redrawWidget(widget) + karamba.redrawWidget(widget) #This gets called everytime our widget is clicked. #Notes: @@ -180,13 +185,13 @@ def widgetClicked(widget, x, y, button): def widgetMouseMoved(widget, x, y, button): #Warning: Don't do anything too intensive here #You don't want to run some complex piece of code everytime the mouse moves - pass - #global linkePupille + pass + #global linkePupille - #karamba.moveImage(widget, linkePupille, x, y) - #karamba.redrawWidget(widget) + #karamba.moveImage(widget, linkePupille, x, y) + #karamba.redrawWidget(widget) # This will be printed when the widget loads. -print "Loaded Karamba Eyes" +print("Loaded Karamba Eyes") diff --git a/superkaramba/examples/globalMouse/xcursor.so b/superkaramba/examples/globalMouse/xcursor.so Binary files differindex 1ff08d5..167bb29 100644..100755 --- a/superkaramba/examples/globalMouse/xcursor.so +++ b/superkaramba/examples/globalMouse/xcursor.so |