kaxe 1.8.1.dev4__tar.gz → 1.8.1.dev5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kaxe-1.8.1.dev4/src/kaxe.egg-info → kaxe-1.8.1.dev5}/PKG-INFO +1 -1
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/pyproject.toml +1 -1
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/viewer/window.py +21 -6
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5/src/kaxe.egg-info}/PKG-INFO +1 -1
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/tests/test_viewer.py +7 -5
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/LICENSE +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/MANIFEST.in +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/README.md +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/setup.cfg +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/__init__.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/__main__.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/_require_3d.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/_require_viewer.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/chart/__init__.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/chart/bar.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/chart/box.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/chart/pie.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/chart/qqplot.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/cli.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/__init__.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/axis.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/bounds.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/color.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/d3/backend.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/d3/camera.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/d3/helper.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/d3/hud.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/d3/objects/__init__.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/d3/objects/color.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/d3/objects/line.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/d3/objects/point.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/d3/objects/pointer.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/d3/objects/triangle.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/d3/openglrender.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/d3/translator.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/draw.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/fileloader.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/helper.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/ipython_display.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/legend.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/line.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/marker.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/palette.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/profiler.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/progress.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/round.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/shapes.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/styles.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/svg.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/svg_pdf.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/symbol.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/text.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/thin.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/core/window.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/data/__init__.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/data/excel.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/__init__.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/_lazy.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d2/__init__.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d2/arrow.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d2/bubble.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d2/contour.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d2/equation.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d2/fill.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d2/function.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d2/guide_grid.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d2/inequality.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d2/map.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d2/parameter.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d2/pillar.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d2/point.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d3/__init__.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d3/base.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d3/function.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d3/mesh.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d3/point.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/d3/potato.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/function.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/legend.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/mapdata.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/point.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/objects/text.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/__init__.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/_lazy.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/box.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/constants.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/d3/__init__.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/d3/axes.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/d3/geometry.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/d3/plot3d.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/d3/variants.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/double.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/empty.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/grid.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/log.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/polar.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/standard.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/themes.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/zoom.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/plot/zoom_connector.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/project/__init__.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/project/codec.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/project/context.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/project/document.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/project/registry.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/project/sample.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/project/sampled_curve.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/project/serializers.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/project/window.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/__init__.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/__init__.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.bright-oblique.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.bright-roman.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.bright-semibold.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.bright-semiboldoblique.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.classical-serif-italic.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.concrete-bold.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.concrete-bolditalic.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.concrete-italic.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.concrete-roman.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.sans-serif-bold.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.sans-serif-boldoblique.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.sans-serif-demi-condensed-demicondensed.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.sans-serif-medium.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.sans-serif-oblique.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.serif-bold.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.serif-bolditalic.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.serif-extra-boldslanted.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.serif-extra-romanslanted.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.serif-italic.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.serif-roman.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.serif-upright-italic-uprightitalic.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.typewriter-text-bold.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.typewriter-text-bolditalic.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.typewriter-text-italic.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.typewriter-text-light.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.typewriter-text-lightoblique.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.typewriter-text-regular.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.typewriter-text-variable-width-italic.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.typewriter-text-variable-width-medium.ttf +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/readme.txt +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/logo-small.png +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/viewer/__init__.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/viewer/cli.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/viewer/client.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/viewer/server.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe.egg-info/SOURCES.txt +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe.egg-info/dependency_links.txt +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe.egg-info/entry_points.txt +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe.egg-info/requires.txt +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe.egg-info/top_level.txt +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/tests/test.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/tests/test2.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/tests/test3.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/tests/test_4.py +0 -0
- {kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/tests/test_5.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kaxe
|
|
3
|
-
Version: 1.8.1.
|
|
3
|
+
Version: 1.8.1.dev5
|
|
4
4
|
Summary: A small graphing tool for functions, points, equations and more
|
|
5
5
|
Author-email: Valter Yde Daugberg <valteryde@hotmail.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/valteryde/kaxe
|
|
@@ -268,7 +268,14 @@ class KaxeViewerWindow(pyglet.window.Window):
|
|
|
268
268
|
|
|
269
269
|
# Mouse interaction state
|
|
270
270
|
self.dragging_card: Optional[PlotCard] = None
|
|
271
|
+
self.drag_offset_x: float = 0.0
|
|
272
|
+
self.drag_offset_y: float = 0.0
|
|
273
|
+
|
|
271
274
|
self.is_panning_camera: bool = False
|
|
275
|
+
self.pan_start_x: float = 0.0
|
|
276
|
+
self.pan_start_y: float = 0.0
|
|
277
|
+
self.pan_camera_start_x: float = 0.0
|
|
278
|
+
self.pan_camera_start_y: float = 0.0
|
|
272
279
|
|
|
273
280
|
self.show_hud: bool = True
|
|
274
281
|
self.notification_text: str = ""
|
|
@@ -455,20 +462,28 @@ class KaxeViewerWindow(pyglet.window.Window):
|
|
|
455
462
|
self.cards.append(hit_card)
|
|
456
463
|
self.select_card(hit_card)
|
|
457
464
|
self.dragging_card = hit_card
|
|
465
|
+
# Anchor grab offset so dragging sticks directly to the cursor
|
|
466
|
+
self.drag_offset_x = wx - hit_card.world_x
|
|
467
|
+
self.drag_offset_y = wy - hit_card.world_y
|
|
458
468
|
else:
|
|
459
469
|
# Clicked empty canvas -> pan
|
|
460
470
|
self.select_card(None)
|
|
461
471
|
self.is_panning_camera = True
|
|
472
|
+
self.pan_start_x = x
|
|
473
|
+
self.pan_start_y = y
|
|
474
|
+
self.pan_camera_start_x = self.camera_x
|
|
475
|
+
self.pan_camera_start_y = self.camera_y
|
|
462
476
|
|
|
463
477
|
def on_mouse_drag(self, x: int, y: int, dx: int, dy: int, buttons: int, modifiers: int):
|
|
464
478
|
if self.dragging_card:
|
|
465
|
-
#
|
|
466
|
-
|
|
467
|
-
self.dragging_card.
|
|
479
|
+
# Absolute position tracking: card sticks precisely to the cursor
|
|
480
|
+
wx, wy = self.screen_to_world(x, y)
|
|
481
|
+
self.dragging_card.world_x = wx - self.drag_offset_x
|
|
482
|
+
self.dragging_card.world_y = wy - self.drag_offset_y
|
|
468
483
|
elif self.is_panning_camera:
|
|
469
|
-
#
|
|
470
|
-
self.camera_x
|
|
471
|
-
self.camera_y
|
|
484
|
+
# Absolute canvas panning: workspace follows the mouse 1:1
|
|
485
|
+
self.camera_x = self.pan_camera_start_x - (x - self.pan_start_x) / self.zoom
|
|
486
|
+
self.camera_y = self.pan_camera_start_y - (y - self.pan_start_y) / self.zoom
|
|
472
487
|
|
|
473
488
|
def on_mouse_release(self, x: int, y: int, button: int, modifiers: int):
|
|
474
489
|
self.dragging_card = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kaxe
|
|
3
|
-
Version: 1.8.1.
|
|
3
|
+
Version: 1.8.1.dev5
|
|
4
4
|
Summary: A small graphing tool for functions, points, equations and more
|
|
5
5
|
Author-email: Valter Yde Daugberg <valteryde@hotmail.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/valteryde/kaxe
|
|
@@ -282,11 +282,13 @@ def test_canvas_multi_card_and_versioning():
|
|
|
282
282
|
assert window.cards[0].card_id == "graph_1"
|
|
283
283
|
assert window.cards[1].card_id == "graph_2"
|
|
284
284
|
|
|
285
|
-
# 4. Moving card changes its coordinates
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
window.
|
|
289
|
-
|
|
285
|
+
# 4. Moving card changes its coordinates via press and drag
|
|
286
|
+
card = window.cards[1]
|
|
287
|
+
sx, sy = window.world_to_screen(card.world_x + 20, card.world_y + 20)
|
|
288
|
+
window.on_mouse_press(int(sx), int(sy), button=1, modifiers=0)
|
|
289
|
+
orig_x = card.world_x
|
|
290
|
+
window.on_mouse_drag(int(sx + 50), int(sy + 20), dx=50, dy=20, buttons=1, modifiers=0)
|
|
291
|
+
assert card.world_x > orig_x
|
|
290
292
|
|
|
291
293
|
window.close()
|
|
292
294
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.bright-oblique.ttf
RENAMED
|
File without changes
|
{kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.bright-roman.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.concrete-bold.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.concrete-roman.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.serif-bold.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.serif-italic.ttf
RENAMED
|
File without changes
|
{kaxe-1.8.1.dev4 → kaxe-1.8.1.dev5}/src/kaxe/resources/computer-modern-family/cmu.serif-roman.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|