summaryrefslogtreecommitdiffstats
path: root/superkaramba/examples/globalMouse
diff options
context:
space:
mode:
Diffstat (limited to 'superkaramba/examples/globalMouse')
-rw-r--r--superkaramba/examples/globalMouse/CMakeLists.txt11
-rw-r--r--superkaramba/examples/globalMouse/README2
-rw-r--r--superkaramba/examples/globalMouse/extension/setup.py20
-rw-r--r--superkaramba/examples/globalMouse/extension/xcursor.c16
-rw-r--r--superkaramba/examples/globalMouse/eyes.py173
-rw-r--r--superkaramba/examples/globalMouse/xcursor.sobin7465 -> 0 bytes
6 files changed, 124 insertions, 98 deletions
diff --git a/superkaramba/examples/globalMouse/CMakeLists.txt b/superkaramba/examples/globalMouse/CMakeLists.txt
new file mode 100644
index 0000000..499a26b
--- /dev/null
+++ b/superkaramba/examples/globalMouse/CMakeLists.txt
@@ -0,0 +1,11 @@
+##### xcursor.so #######################
+
+include_directories(
+ ${PYTHON_INCLUDE_DIRS}
+)
+
+tde_add_library( xcursor MODULE NO_LIBTOOL_FILE
+ SOURCES extension/xcursor.c
+ LINK ${PYTHON_LIBRARIES} X11
+ DESTINATION ${DATA_INSTALL_DIR}/superkaramba/examples/globalMouse
+)
diff --git a/superkaramba/examples/globalMouse/README b/superkaramba/examples/globalMouse/README
index 758ce4b..7d2abc3 100644
--- a/superkaramba/examples/globalMouse/README
+++ b/superkaramba/examples/globalMouse/README
@@ -19,7 +19,7 @@ INSTALLATION:
named build. This file needs to be copied in the same directory as the
eyes.theme and eyes.py file.
- A precompiled xcursor.so file is included (Compiled on Mandrake 9.1).
+ A precompiled xcursor.so file is included.
CHANGES:
* Moving the theme now works as it should.
diff --git a/superkaramba/examples/globalMouse/extension/setup.py b/superkaramba/examples/globalMouse/extension/setup.py
index f33f8a6..2003334 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
deleted file mode 100644
index 1ff08d5..0000000
--- a/superkaramba/examples/globalMouse/xcursor.so
+++ /dev/null
Binary files differ