Commit graph

316 commits

Author SHA1 Message Date
Paul Davis
98d1200f2c add ArdourCanvas::Fill::set_pattern() to allow any filled canvas item to be filled using an arbitrary Cairo Pattern 2014-09-19 16:24:40 -04:00
Paul Davis
75a150ecc0 make computation of OS X pango text width correction less intrusive/more efficient.
Compute the correction only once after each font specification setting.
2014-09-19 16:24:40 -04:00
GZharun
c283320bcd [Summary] Added canvas project for Xcode 5 2014-09-18 12:22:30 +03:00
Robin Gareus
93dbae7c98 waveform drawing details:
* proper y-pixel alignment (+.5px offset)
* outline: draw dots (not 1px lines)
* shape: round towards peak (use signal, not top/bot)
* honor 2px red selection border
* work-around canvas rect +1 issue
* always draw clipping line towards center
* draw at most one clip-line at either side of 0.
* exact 1px wide zero line
* fix spread calculation for rectified view
2014-09-17 07:06:05 -04:00
Robin Gareus
80047e9877 waveform: really draw 1px lines. 2014-09-17 07:06:04 -04:00
Robin Gareus
72c630f445 update waveform drawing for zoomed-in, non-overlapping min/max peaks 2014-09-17 07:06:04 -04:00
Paul Davis
7198ac659e remove outline from now-small verbose cursor (TrackingText) text 2014-09-11 17:00:18 -04:00
Paul Davis
2c92680788 don't needlessly redraw ruler if new metric is the same as the old 2014-09-05 15:24:16 -04:00
Paul Davis
9b405de03d add Canvas::Ruler::set_metric() to allow ruler metrics to be changed dynamically 2014-09-05 14:45:27 -04:00
Paul Davis
8c17bb0ca0 change Metric element of a Canvas::Ruler item into a pointer internally 2014-09-05 14:42:06 -04:00
GZharun
9b010ed417 [Summary] Fixed name width issue on MAC applying a workaround. It's a response on Pango bug which will be fixed by Paul Davis 2014-09-05 15:29:41 +03:00
Paul Davis
637f3e9c2d use glib portable random function rather than POSIX.1 random() 2014-09-03 12:25:02 -04:00
Paul Davis
84f4ad912a more canvas debugging for current item tracing 2014-08-18 12:36:55 -04:00
David Robillard
b00b75de3d Update vcproj files for changed LILV config define.
Conflicts:
	libs/audiographer/MSVCaudiographer/audiographer.vcproj
	libs/clearlooks-newer/MSVCclearlooks/clearlooks.vcproj
	libs/evoral/MSVCevoral/evoral.vcproj
	libs/gtkmm2ext/MSVCgtkmm2ext/gtkmm2ext.vcproj
	libs/libltc/MSVCltc/ltc.vcproj
	libs/midi++2/MSVCmidi++/midi++.vcproj
	libs/panners/MSVCpanners/panner_1in2out.vcproj
	libs/panners/MSVCpanners/panner_2in2out.vcproj
	libs/panners/MSVCpanners/panner_vbap.vcproj
	libs/qm-dsp/MSVCqm-dsp/qm-dsp.vcproj
	libs/surfaces/control_protocol/MSVCardour_cp/ardour_cp.vcproj
	libs/surfaces/generic_midi/MSVCardour_genericmidi/ardour_genericmidi.vcproj
	libs/surfaces/mackie/MSVCardour_mackie/ardour_mackie.vcproj
2014-08-18 12:30:01 -04:00
nick_m
baf6a43ee7 Render waveview components onto alpha masks to simplify drawing.
Reduce user panic by removing ! from missing file dialog title.
Use justify left in missing file dialog.
2014-08-18 12:26:05 -04:00
Paul Davis
ef849bec91 fix potential crash if certain Canvas methods are used before its window is realized 2014-08-17 20:41:38 -04:00
Paul Davis
207e90adb1 Add Canvas::re_enter() which picks the current item again based on mouse pointer position and generates an enter event for it 2014-08-17 20:41:20 -04:00
Paul Davis
390869c0d9 actually do something in WaveView::region_resized() which is called whenever the region is resized; implement WaveView::set_region_start() which could be used by an xfade editor etc. 2014-08-17 20:34:41 -04:00
Paul Davis
3e85ec6ae8 more extensive canvas debug message for canvas-enter-leave tracing 2014-08-17 20:02:49 -04:00
Paul Davis
d994350760 add event-insensitivity to the list of conditions that causes a container to NOT add its children to the list of items-at-point 2014-08-17 20:02:43 -04:00
Paul Davis
a647755bdc verbose cursor text is always outlined 2014-08-17 19:59:51 -04:00
Paul Davis
3ceb01b331 allow Canvas::Text to have outline drawn in a contrasting color (based on actual color) 2014-08-17 19:59:43 -04:00
Paul Davis
b4aba271f4 move contrasting_text_color() into ArdourCanvas 2014-08-17 19:59:38 -04:00
Paul Davis
74a5737b7c invisible items/containers should not add their children to "items-at-point" 2014-08-17 19:58:14 -04:00
Paul Davis
861a22db4c additional DEBUG_TRACE message for canvas current item selection 2014-08-17 19:58:05 -04:00
John Emmas
8c77efd3ff Change some declarations from 'struct' to 'class' (and vice-versa) 2014-08-17 19:56:56 -04:00
John Emmas
b9c62e879a Add (newly introduced) sources to our MSVC projects 2014-08-17 19:47:47 -04:00
John Emmas
aa4fe5f5ee Remove (no longer needed) sources from our MSVC projects 2014-08-17 19:47:41 -04:00
Paul Davis
66115ee7f7 slightly increase size of a Canvas::PolyItem, to avoid left-over pixels when dragging (as well as other general incorrectness 2014-08-17 19:47:16 -04:00
Paul Davis
4cf21bd462 if CANVAS_DEBUG is defined, then the env variable CANVAS_HARLEQUIN_DEBUGGING will turn on drawing the expose areas for canvas render debugging 2014-08-17 19:46:36 -04:00
Paul Davis
f22f5725d5 in Canvas::window_to_canvas(), if either x or y coordinate is less than zero, search for the scroll group on the relevant edge.
If we don't do this then we find no scroll group covering the event coordinate, and the translation for scroll fails to be applied
2014-08-17 19:46:30 -04:00
Paul Davis
92b29e1ea1 new API for TrackingText and similar items 2014-08-17 19:28:47 -04:00
Paul Davis
6cea8f3c5b add tracking_text.cc to canvas wscript 2014-08-17 19:28:42 -04:00
Paul Davis
f9f0bfe6ed new TrackingText canvas item, to resolve conceptual issues with the Editor::VerboseCursor 2014-08-17 18:53:52 -04:00
Tim Mayberry
dbcc1f1d39 Rename PBD::find_file_in_search_path to just PBD::find_file
saves a bit of typing and not necessary if you look at how it is used.

Conflicts:
	gtk2_ardour/about.cc
	gtk2_ardour/session_dialog.cc
	libs/pbd/system_exec.cc
2014-08-17 18:36:02 -04:00
Ben Loftis
17b601a9f3 last piece of scroll-wheel checkin, oops 2014-08-17 18:10:21 -04:00
Ben Loftis
d0f41a4f5e add scroll wheel handler to canvas 2014-08-17 18:10:15 -04:00
Paul Davis
d893b493d6 return of the zero line 2014-08-17 18:07:37 -04:00
Paul Davis
1b58dd6ecf revert drawing of rectified waves back to previous approach since it (might be) slightly more efficient and is simpler to understand; add comments 2014-08-17 18:07:32 -04:00
Paul Davis
87cc9f7d4f completely rethink waveform rendering (again)
There are 3 possible components to draw at each x-axis position: the waveform "line", the zero line and an outline/clip indicator.
We have to decide which of the 3 to draw at each position, pixel by pixel. This makes the rendering less efficient but it is
the only way I can see to do this correctly.
2014-08-17 18:07:24 -04:00
Paul Davis
e0bceb3e4e fix logic error that meant one side of the waveform outline is not drawn; draw zero line before outline, for better effects with low amplitude waves 2014-08-17 18:07:14 -04:00
Paul Davis
9ebbcdde09 Canvas::Group was removed 2014-08-17 18:04:05 -04:00
Paul Davis
28fdc71d70 more canvas refactoring.
Remove Canvas::Layout, use Canvas::Container for the same purpose, move child-rendering into Item::render_children() so that it
could theoretically be used by any derived type.
2014-08-17 17:44:17 -04:00
Paul Davis
72ab6f6fe5 add missing new files for canvas redesign 2014-08-17 17:44:12 -04:00
Paul Davis
f11ad4f901 explicitly qualify cast to ArdourCanvas::Container so that it works.
I assume that gcc is failing to complain about ambiguity with Gtk::Container even though there should
really be no ambiguity
2014-08-17 17:43:51 -04:00
Paul Davis
98aa604aa0 refactor Canvas so that all Items have children; add Container abstract base class; rename Group as "Layout" and retain only drawing semantics 2014-08-17 17:42:59 -04:00
Paul Davis
1ba94eab60 if we're not going to notify parents of bbox changes while an item is hidden, we need to remind it when the item is hidden or shown 2014-08-17 16:24:21 -04:00
Paul Davis
4d4851cffc a whole slew of changes related to centralizing and rationalizing cursor management.
Debugging output left in place to help address the reports that will come in as people test this more
2014-08-17 16:23:52 -04:00
nick_m
929a787b71 Canvas tweaks.
* Only queue a draw for changed items that are set visible and in-window.
2014-08-17 16:23:37 -04:00
Paul Davis
3ef2430ae0 a set of 3 fixes that cure Canvas::Text leaving dirty pixels when being dragged. or might not - testing is non-deterministic, which is alarming 2014-08-17 15:34:13 -04:00