13
0
Commit Graph

230 Commits

Author SHA1 Message Date
fee026c5ef break down GdkEventExpose into distinct rectangles for canvas expose rather than drawing the entire region as a single rect 2014-03-04 21:58:16 -05:00
912f07b919 mingw build fixes (tested with i686-w64-mingw32 on linux-x86_64) 2014-03-04 15:25:58 +01:00
e6c3cece64 remove recently added conflation of mingw64 and msvc with respect to symbol export 2014-03-02 14:59:08 -05:00
560c667ea9 fix compilation of libcanvas so that when built as a shared lib (the default), -DLIBCANVAS_DLL_EXPORTS=1 is not lost 2014-03-01 16:52:08 -05:00
19395ac258 when mingw is mingw64, it appears that we need to use __declspec() and not __attribute__((visibility)) for export control 2014-03-01 15:16:39 -05:00
e60933650e remove debug messages, for now 2014-02-28 17:17:00 -05:00
435c3ad47f change implementation of ArdourCanvas::Curve to use GIMP-inspired ideas.
Presmooth with quadratic bezier, then interpolate when rendering. Not finished yet
2014-02-28 17:00:25 -05:00
007e6bb15b remove unneeded extra methods in ArdourCanvas::Curve 2014-02-27 09:22:36 -05:00
0cbf8f7dea fix canvas enter/leave bug when point is over a group/ignore-event item and we fail to send a leave event to the previous item 2014-02-25 16:08:36 -05:00
f9a3e7f8bb add DEBUG::CanvasEnterLeave to allow runtime toggling of canvas enter/leave events 2014-02-25 16:07:51 -05:00
737aae908a tweak canvas rect drawing to correctly place bottom edge of rectangle inside the bounds (cairo works in mysterious ways) 2014-02-25 12:02:50 -05:00
e2f18ea658 allow per-line configurability of the threshold used to determine if a PolyLine covers a given coordination 2014-02-20 12:53:08 -05:00
14b2d0b549 fix error in canvas PolyLine::covers(), so that the mouse can actually enter/leave such items 2014-02-19 23:42:01 -05:00
05d7947795 make stateful image canvas item actually compile 2014-02-17 16:05:52 -05:00
eb3c14db25 new canvas item to allow image-based GUI construction 2014-02-17 15:28:18 -05:00
172a4a853d fix up problems with patch change flgs not changing height correctly 2014-02-14 12:06:44 -05:00
1df483d3db since we now expand rectangles to the right always, adjust the bounding box computation 2014-02-14 09:49:16 -05:00
1a9076c0ba remove debug message 2014-02-13 18:18:53 -05:00
08b86fda5c fix up some issues with precise placement of ArdourCanvas::Rectangle frame/outline 2014-02-13 18:18:19 -05:00
79d2a686ff make Item::set_position() do nothing if the position doesn't change 2014-02-13 18:18:19 -05:00
f889f391a1 Guard some Debug output so that it only appears when applicable ('Item::name' is only available when CANVAS_DEBUG is defined) 2014-02-13 14:12:36 +00:00
f5499d206a slight code tidy for Line::render() ... don't use 0.5 pixel adjustment if the line width > 1.0 2014-02-12 15:26:53 -05:00
e247103a7e fix up major thinko's in ArdourCanvas::Group's handling of deletion (both its own, and child items) 2014-02-12 15:15:27 -05:00
6876906d9d fix major thinko in ArdourCanvas::Group::clear() 2014-02-11 22:49:39 -05:00
a329a44cc1 when delivering canvas events, if an item is grabbed, use it in preference to Canvas::_current_item, but still propagate to its ancestors if left unhandled 2014-02-11 22:49:10 -05:00
cc2aca44fb fix text placement in ArdourCanvas::Flag 2014-02-11 12:40:44 -05:00
bb05ae05a8 remove unused _wave_color member from waveview canvas item; use outline color for edge dots of waveforms instead of hardcoding black 2014-01-26 16:02:38 -05:00
3c5a870289 a better, more general fix for the previous Canvas::item_going_away() issue. There is no need to repick the current item if the item going away is NOT the current item 2014-01-20 10:59:44 -05:00
2691209050 When removing an item which is event-insensitive, there is no need to repick the current item, since it can never have been used as the current item.
This fixes crashes associated with ghost notes in midi regions.
2014-01-20 10:53:58 -05:00
620e1e6677 add event type string function to canvas (since it does not use gtkmm2ext) 2014-01-16 10:52:34 -05:00
fbe94f4470 pixel-align canvas PolyItems with single-pixel outlines, for crispness 2014-01-13 09:39:50 -05:00
5062a00c7d move -fvisibility=hidden to the top of the source tree, and remove its internal use; use libtimecode as a shared lib again 2014-01-12 15:40:47 -05:00
22c303d8f6 final (?) tweaks to rectangle rendering 2014-01-10 14:36:05 -05:00
9df593d823 clamp expose (queue_redraw()) requests to visible window area, some extra debugging details 2014-01-10 14:35:36 -05:00
02e6d14e23 make no-zero-line be the default for wave views (still shown for normal audio region views 2014-01-10 12:08:58 -05:00
6d4c0baad3 fix up thinko in recent raise_to_top/lower_to_bottom optimization 2014-01-10 11:54:05 -05:00
70c4a5e2d6 slightly expand CanvasRender debug output 2014-01-10 11:02:34 -05:00
ffdf3ed017 don't go through ::deliver_enter_leave() unnecessarily 2014-01-10 11:02:05 -05:00
5cd35de56b prevent Rect::expand() from generating negative coordinates where there were none before 2014-01-08 18:20:19 -05:00
cf293d0593 tweak rectangle bounding box computation 2014-01-08 10:42:14 -05:00
35d3a4a351 remove unused code 2014-01-08 10:31:39 -05:00
a70edc5765 change rounding used for convert Rect from canvas to window coordinates 2014-01-08 10:31:14 -05:00
98dec658ee Revert "remove unused code"
This reverts commit 2d283c17e1.
2014-01-08 10:29:03 -05:00
2d283c17e1 remove unused code 2014-01-08 10:28:46 -05:00
8fa54cd1d9 shrink waveview zero line to single pixel 2014-01-07 22:51:18 -05:00
c235d3da99 mostly fix conceptual error in how canvas rectangle frames are drawn 2014-01-07 20:56:36 -05:00
5fec68e6c5 for now, hide ugly circle thing in drag handles 2014-01-07 20:56:03 -05:00
d1652f8cc6 outline width of 0.5 is stupid and meaningless, and was just hiding other issues with outlines 2014-01-07 11:31:47 -05:00
7914d45f27 add missing iterator increment to poly item renders. 2014-01-06 20:45:40 -05:00
4b71d7fde5 small optimization to curve rendering 2014-01-06 20:45:40 -05:00
7b24be86a2 make raise_to_top() and lower_to_bottom() no-ops if item is already in the right place 2014-01-02 16:49:42 -05:00
7f83975e7d add drag handle source to wscript 2014-01-02 16:49:11 -05:00
edb932b819 basic, prototypical drag handle implementation 2014-01-02 16:48:44 -05:00
8f876bb5ab remove legacy CANVAS_COMPATIBILITY property_foo() stuff (related to gnomecanvas API) from libcanvas 2013-12-31 11:54:05 -05:00
110c790d91 define signal associated with configurable clipping level to Canvas::WaveView 2013-12-30 15:54:09 -05:00
7158eb7565 add configurable clipping level to Canvas::WaveView 2013-12-30 15:46:44 -05:00
2d50adaf3a ignore invisible items when picking the current item
Also left behind some commented debug out that probably deserves a new PBD::Debug bit.
2013-12-30 14:02:43 -05:00
4886eb7098 try to rationalize logic for displaying/hiding regionview (time axis view item) name highlights and text 2013-12-29 23:10:54 -05:00
a585816f3e slight optimization of PolyItem::render_path() 2013-12-28 13:52:08 -05:00
218a4664be add visibility/export control to libcanvas 2013-12-27 16:24:58 -05:00
84f55440a3 fix redrawing of canvas with an optimized build
Best guess right now is that optimization does something bad when ceil() is called twice on a very large dbl-precision number,
which results in a zero (empty) redraw area. Without the removal of the redundant ceil & floor functions, no expose events
would be delivered to the canvas in an optimized build during drags (and maybe more).
2013-12-23 15:35:49 -05:00
9b6135b2e1 change enter/exit event delivery to follow X Window model (inferior, ancestor, virtual, nonlinear) 2013-12-12 20:44:04 -05:00
88732abd01 change event propagation to be based on parent/child lineage, not z-axis stacking, plus some more alterations to try to get enter/leave working 2013-12-12 10:03:33 -05:00
a631350f93 implement Curve::covers() in a very primitive way (also note: fails for actual spline curves) 2013-12-09 21:03:16 -05:00
c4f0063a68 make PolyLine use distance_to_segment_squared(), and add separate (null, for now) method Curve::covers(Duple) because the math there needs to be different, maybe 2013-12-09 17:24:34 -05:00
77a63c2bf7 ArdourCanvas::Line::covers() uses distance_to_segment_squared() 2013-12-09 13:39:10 -05:00
4780c84252 debug trace tweaks 2013-12-09 13:38:22 -05:00
75b25cd913 add a utility function to Canvas to compute distance from a point to a line segment 2013-12-09 13:35:07 -05:00
6473cc7cb4 drop use of bounding box to determine whether an item covers a point; add Item::covers(Duple const&)
Default implementation for Item still uses bounding box, but specializations for Arc (Circle), Polygon, Line and PolyLine have been added
2013-11-04 11:56:10 -05:00
08b485db75 send enter events to EVERY newly entered item (ignore the bool return from the event handler); other canvas debugging aids;switch items_at_point() to use canvas coordinates 2013-11-03 10:07:00 -05:00
85daa31ab5 all events propagate out of the canvas in canvas coordinates now, so revert changes in editor_drags.cc that worked around this not being the case 2013-10-31 16:43:35 -04:00
b46244d527 finally (?) fix up logic for rectangle drawing (fill+stroke) to tackle what is hopefully the last of the expose problems 2013-10-31 11:49:36 -04:00
7ce86cec7d handle enter/leave items when zooming and scrolling occur 2013-10-31 03:10:18 -04:00
7bbd28aa08 notable changes to try to improve most of enter/leave handling for canvas items 2013-10-30 23:36:30 -04:00
006ba7cd36 reduce verbiage and remove visible current_item red rect 2013-10-28 16:36:11 -04:00
f6d33d2a87 fix comment 2013-10-28 16:35:48 -04:00
30263a91d7 fix coordinate system for Canvas items_at_point() methods 2013-10-28 16:35:31 -04:00
f28fb76bd9 fix computation of Text bounding box to respect _clamped_width 2013-10-28 12:27:33 -04:00
1eb680f937 add coordinate space comment 2013-10-28 12:27:03 -04:00
f25ff95390 tweak whitespace and add coordinate space comment 2013-10-28 12:26:40 -04:00
0db7bdface streamline button press event handling code a little, and tweak enter/leave debugging text 2013-10-28 12:25:41 -04:00
5ebc4a99be don't request redraw of a Canvas item if it marked invisible 2013-10-25 13:29:23 -04:00
ecd29c6d70 add Item::redraw() convenience method 2013-10-24 17:54:54 -04:00
c3f1369cfd expand bounding box of all objects by 0.5 before computing intersection for render cycle; alter debug output 2013-10-24 17:14:12 -04:00
c21ed2b877 fix drawing of a canvas LineSet object 2013-10-24 17:13:22 -04:00
9d2e4fbec6 fix computation of rectangle bounding box 2013-10-24 17:13:03 -04:00
097b781209 fix computation of canvas text item bounding box 2013-10-24 17:12:28 -04:00
5ea6b4420b slightly more information in group render DEBUG_TRACE output 2013-10-23 10:39:26 -04:00
192f22d89e fix confusion in Canvas::LineSet over window vs. item coordinates that affected redraw (or not) of MIDI track note lines when the canvas origin != 0 2013-10-22 21:12:47 -04:00
18850253e9 only generate some current canvas debug output when CANVAS_DEBUG is defined, to quieten things down 2013-09-25 10:38:04 -04:00
67bb9a732a add casting for MSVC sqrt 2013-09-25 10:36:42 -04:00
3ba0ef7192 fix a typo in canvas-debug.h 2013-09-25 10:36:21 -04:00
741154e691 debugging various canvas event issues 2013-08-08 15:26:42 -04:00
c37040ef01 expand tabs to spaces in wscript 2013-07-14 19:39:24 +02:00
37743ea9b1 minor fixes for recent cairocanvas work so that it builds on OS X (64bit) 2013-07-01 12:04:02 -04:00
af3056769c changes to waveform clipping display
* clip level is now -0.9dbFS
   * display of clipping is optional (see Theme Manager window)
   * clipping is based on disk data, unscaled by region gain
2013-06-28 20:21:30 -04:00
aa480b8338 make clip indicators more visible (the smaller of 7 pixels or 5% of track height) 2013-06-28 17:09:39 -04:00
5b3ebe824e restore display of clipping in waveform displays 2013-06-28 13:40:51 -04:00
144fdfbbd0 fix drawing of rectangles larger than 2000 pixels, caused by silly hard-coding of width limit 2013-06-27 17:27:58 -04:00
c6fe6b0996 cleanup ArdourCanvas::WaveView
Mostly this just involved removing the private CacheEntry class that really served no further purpose once
the design reverted to a single cached image
2013-06-27 17:23:34 -04:00