Commit Graph

315 Commits

Author SHA1 Message Date
abakkk 4d901db080 use constants for extremum values 2020-06-19 17:01:16 +02:00
abakkk 1e4a847565 replace Mainloop by GLib 2020-06-19 17:01:16 +02:00
abakkk 879fad367c SCALE_DIRECTIONAL -> STRETCH 2020-06-19 17:01:16 +02:00
abakkk a84d71bd5e Remove unnecessary 'setDash' 2020-06-19 17:01:16 +02:00
abakkk 6f9b07b64d Reduce computing by skipping the most 'getContains' calls without notable effect 2020-06-19 17:01:16 +02:00
abakkk 5ca7a5e4a6 fix transformed center getter
Since reflection and inversion introductions, compute center only with the slides of the traslations is not correct.

* `_getCenter` -> `_getOriginalCenter`
* `_getCenterWithSlide` -> `_getTransformedCenter`
* Use pango matrices to compute the new center position since matrices from Cairo, Graphene, ..., are not available with GJS.
* Stock original center and transformed center to not compute it numerous time.
2020-06-19 17:01:16 +02:00
abakkk a33f7b8324 add isStraightLine method to elements 2020-06-19 17:01:16 +02:00
abakkk a569eed459 elementFinder -> elementGrabber 2020-06-19 17:01:16 +02:00
abakkk 22ffa69f68 scale_directional transformation
It combines former `SCALE` and `SCALE_ANGLE` transformations.
2020-06-19 16:55:18 +02:00
abakkk fa4223b7ce Introduce mirror manipulations
* Reflection (symmetry axis)
* Inversion (symmetry point)

`transformingElement` is locked after selecting it.
2020-06-19 16:54:31 +02:00
abakkk 15d3efcbd5 user.css
* Add a warning about updates.
* Add alternative color palettes.
* Change background color (pure dark gray).
2020-06-17 17:59:42 +02:00
abakkk 2658926c44 Add debug constants and helpers 2020-06-17 15:43:23 +02:00
abakkk 317f9e4176 invert fill and stroke painting
Use `cr.fillPreserve, ..., then cr.stroke` instead of `cr.copyPath, ..., cr.stroke, cr.appendPath, cr.fill`
Was there a reason for painting stroke before fill ?
Is something broken ?
2020-06-17 15:37:37 +02:00
abakkk 6a0c0e525a cr.save, cr.stroke, cr.identityMatrix
* Use `cr.save` and `cr.stroke` (Restore the context but not the path).
* Use `cr.identityMatrix` to clean context after transformations.
  Inverting transformations was not enough, in particular with combinations of scale and rotate (`SCALE_ANGLE`, `REFLECTION`, ...).
  Now all elements can be grabbed correctly.
2020-06-17 15:27:18 +02:00
abakkk c26c8cd2b5 misc dash fixes
* Use `setDash([0,0], 0)` to disable dash.
* Disable dashes when drawing the grid.
* Add `crSetDummyStroke` utility function.
2020-06-16 00:06:52 +02:00
abakkk 4907e35778 Introduce resize manipulation
* `SCALE_PRESERVE` (preserve ratio)
* `SCALE` (vertical, horizontal or both)

There is a third transformation, `SCALE_ANGLE`, that is not used because it causes problems to the `elementFinder`. Probably a bug of Cairo.inStroke that do no consider scales.
2020-06-15 22:13:03 +02:00
abakkk 443d1f8662 Introduce move manipulation
* 'Shapes' -> 'Tools' ('Shapes' + 'Manipulations')
* 'TextState' -> 'TextStates'
* Rotation centers are now computed dynamically (when building Cairo or SVG paths).
* Text rotation center is now located at the beginning of the text.
* Text elements gain a 'lineIndex' attribute to retrieve the rotation center of the first line.
2020-06-15 21:09:30 +02:00
abakkk 9f4e8a25d0 refactor the code before introducing new tools
All geometric stuff is delegate to elements.
Use general and reusable transformations.
2020-06-12 03:45:51 +02:00
abakkk 9fc08f8bce dashed line: compute dash attributes from line width (by default) 2020-06-08 22:27:58 +02:00
abakkk 04894a9031 add "file-rule" drawing element attribute 2020-06-08 22:25:26 +02:00
abakkk 9bde4d3013 add "Open preferences" shortcut
Available since GS 3.36, so the shortcut is hidden for previous versions.
2020-06-08 15:26:55 +02:00
abakkk b4eb418c89 key label translations
Get key label translations by using Gtk.
2020-06-08 14:30:47 +02:00
abakkk 95f54f0576 fix undefined 'state' property
```
JS WARNING: [/home/.../draw.js 997]: reference to undefined property "state"
```

The state property is undefined if the element is loaded from json file.
2020-06-07 21:53:08 +02:00
abakkk d0177aa8eb Fix null line-width when drawing
It may be usefull to select null line width in combination with fill.
However user cannot see what he's drawing.

So add a dummy stroke while drawing.
2020-06-07 20:37:13 +02:00
abakkk 2c632c3d3a use `line` svg element for straight lines 2020-06-07 20:16:28 +02:00
abakkk 5b7d1eedf4 new polyline shape
Mark vertices with `Enter` and finish drawing by releasing clic, like other shapes.
2020-06-07 20:05:30 +02:00
abakkk b69c4ccf97 new polygon shape
Mark vertices with `Enter` and finish drawing by releasing clic, like other shapes.
2020-06-07 18:57:11 +02:00
abakkk 755b3d79c9 text: start a new line with Enter key
Finish writing with click or `Escape` key.

close #30
2020-06-07 17:01:36 +02:00
abakkk c087e359d9 hide help on `Escape` key pressed
Press the key again to leave drawing mode.
2020-06-05 22:52:02 +02:00
abakkk 0249d12694 css, minor 2020-06-05 22:48:32 +02:00
abakkk c5721f9752 no separator on small monitor 2020-06-05 22:45:11 +02:00
abakkk 360ac081ce Add grid overlay 2020-06-05 15:58:58 +02:00
abakkk 91475c8b70 Fix "Hide panel and dock" 2020-06-01 20:28:26 +02:00
abakkk 11a00a25d0 Fix font-color label color
Foreground color markup is not displayed since 3.36, use style instead but the transparency is lost.

close #31
2020-06-01 20:27:05 +02:00
abakkk a4456762b5 not to populate helper widget before the first showing
Does not fix anything, just a marginal gain.
2020-06-01 17:37:08 +02:00
abakkk b45c86a5af escape empty media-keys settings in the helper
close #28
2020-06-01 17:36:43 +02:00
abakkk 17c0da57a1 Merge branch 'dev' into 'master'
v6

See merge request abakkk/DrawOnYourScreen!11
2020-03-13 17:20:47 +01:00
abakkk 8b3256d820 version -> 6 2020-03-13 17:17:46 +01:00
albanobattistella 970a6370be update it translation
close !7
close !10
2020-03-13 17:09:57 +01:00
abakkk 0a5dff018d add gnome-shell-extension-prefs in readme 2020-03-13 17:09:57 +01:00
abakkk 1fe315b8f7 version -> 5.2
Ok with GS 3.36.
2020-03-13 17:09:57 +01:00
abakkk 508d7dca3a fix helper OSD display 2020-03-13 17:09:57 +01:00
abakkk 6286834473 GS 3.36 compatibility
* Clutter.Escape -> Clutter.KEY_Escape
* container.add(child) -> actor.add_child(child)
* container.add(child, { expand: true }) -> child.x_expand = true && actor.add_child(child)
* slider.onKeyPressEvent does not exist anymore (Slider use vfunc instead)
2020-03-13 17:09:57 +01:00
abakkk 2dbcb4a805 Merge branch 'master' into 'master'
Russian localization update

See merge request abakkk/DrawOnYourScreen!9
2020-03-13 16:59:35 +01:00
Sazonow Andrew da66b29032 Russian localization update 2020-03-13 16:59:35 +01:00
abakkk 9e92996cc0 Merge branch 'dev' into 'master'
v5.1

Closes #20 and #22

See merge request abakkk/DrawOnYourScreen!8
2020-03-06 16:30:22 +01:00
abakkk 0d83dcead1 add it locale .mo 2020-03-04 17:50:29 +01:00
albanobattistella 447b36421b Upload New File 2020-03-04 17:46:12 +01:00
abakkk 149b188e4e version -> 5.1 2020-03-04 15:47:36 +01:00
abakkk 0ae23a5d10 "Open user.css" -> "Edit style" 2020-03-04 14:23:49 +01:00