13
0
Commit Graph

33 Commits

Author SHA1 Message Date
d05572e14a
Fix round-corner backround of insensitive ArdourWidgets
ArdourButton draws a custom insensitive background, using
the color "gtk_background". This can conflict with gtk's
insensitive background color when using round-corners.
2021-02-14 22:53:18 +01:00
70ad205bc1
Separate static widget theme into abstract class
This allow the style to be used in classed that are not
directly derived from Ardour's CairoWidget, notably
container widgets or plugin UIs.
2021-01-26 23:37:54 +01:00
ab6e274613
Ignore idempotent set_name() calls
These calls are expensive, particularly for ArdourButton, that
triggers a re-layout.
2020-05-12 15:37:23 +02:00
563a8b15e0
Revert to use an image surface for CairoWidgets
This partially reverts 2edbda2526 and is a follow up to 0b266a54f,
to fix performance issues with MS Windows graphics performance.
2020-01-08 04:24:51 +01:00
2edbda2526
Replace explicit image-surface with cairo pattern/group
For MacOS/X this is equivalent, rendering happens using a
CGBitmapContext + image-surface. Windows and Linux needs profiling
for respective equivalent surfaces.
2019-12-27 19:35:02 +01:00
c3ab63a2ea
Allow for per-widget image-surface backing
This is an intermediate commit, before replacing image surfaces with
cairo pattern groups.

The eventual goal is to reduce flickering and/or use
CPU + bitblt for specific widgets instead of cairo
graphics-cards accel.

This also removes excessive calls to getenv() for every rendering
operation.
2019-12-27 19:34:56 +01:00
5ec5bc4523 goodbye USE_TRACKS_CODE_FEATURES and is_tracks_build 2019-09-25 12:16:13 -06:00
cec5ce8f45
Update canvas/UI lib GPL boilerplate and (C) from git log 2019-08-03 15:53:17 +02:00
e01582dd9a Prepare a boxy, no round borders, button-style 2018-10-02 21:28:49 +02:00
5e9492b996 consolidate NSGLView 2017-03-21 15:53:29 +01:00
d06de26a4f Towards a consistent render() API.
This fixes an -Woverloaded-virtual ambiguity introduced in b5e613d45

  void render (cairo_t*, cairo_rectagle*)
  void render (Cairo::RefPtr<Cairo::Context> const&, cairo_rectangle_t*)

ArdourCanvas prefers cairomm and CairoWidget itself uses Cairo::Context,
this improves overall API consistency.
2017-03-20 17:12:08 +01:00
60a0b8f645 Forward un/map events to NSGLView 2017-03-20 17:12:08 +01:00
e307094af3 Allow CairoWidget to be backed by NSGLView 2017-03-20 05:19:38 +01:00
004431426d Towards packing CairoWidgets on ArdourCanvas. 2016-12-19 13:36:42 +01:00
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
9a11e3a64d change API for CairoWidget::focus_handler
This functor/closure is responsible for stealing focus from any existing text entry (or whatever else may have focus)
when clicking on a CairoWidget or derived class.

The old implementation just gave focus back to the editor canvas. The new version walks up the widget packing
heirarchy to find a focusable parent (from the CairoWidget for which it is invoked). If no focusable parent
is found, it cancels keyboard focus in the toplevel window containing the CairoWidget
2016-03-15 12:41:21 -04:00
a8f242f80a no need for an noop method 2016-03-15 12:41:21 -04:00
bc487bb4b0 replicate the remove-all-trailing whitespace commit(s) in master 2016-02-22 15:31:24 -05:00
a48684c692 if _need_bg is set to false in a CairoWidget, then don't actually draw the background 2016-02-22 15:31:23 -05:00
4a9ffee486 Allow partial CairoWidget exposure 2016-02-12 22:57:46 +01:00
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
b385d02022 merge two small pieces of code by Valeriy into libs/gtkmm2ext, conditionally used ONLY in Tracks builds.
This code is not acceptable for use in Ardour ... comments in code explain more.
2015-06-29 14:18:10 -04:00
198c4d1d88 gfx-card & performance testing 2015-05-02 04:54:59 +02:00
de85bfd857 fix #6117 - fader prelight 2015-01-28 02:22:52 +01:00
b04414d170 allow to use cairo-image/software surface for canvas & cairowidgets 2014-10-28 02:15:10 +01:00
9be64f2648 add a focus handling callback so that all button press events on CairoWidgets will cause a focus reset. 2014-09-16 12:42:39 -04:00
585fa45b62 fix cairo widget background 2014-08-30 01:43:10 +02:00
e7a15027e8 refactor flat_buttons into cairowidget, and add a canvas-like convenience function for setting cairo color with a Gtk::Color 2014-08-27 10:55:01 -05:00
a7226133a9 refactor _grabbed into cairo_widget 2014-08-22 11:49:59 -05:00
ab44e41dfd change the meters into CairoWidget, add expose_area to CairoWidget::render() 2014-03-20 23:50:40 +01:00
e4e6010cd4 add on_name_changed() virtual method to CairoWidget
If a CairoWidget does not a GtkRC-defined style, then changing its name does not trigger on_style_changed(). Since we want to use CairoWidget::set_name()
to trigger changes in the rendering of a widget, this is ... bad. Adding on_name_changed() provides a workaround for that.
2014-03-06 09:44:33 -05:00
b08d13706f remove additional "mid" color from ArdourButton; replace Active/Mid widget state with ExplicitActive/ImplicitActive; represent implicit-active state with colored border around ArdourButton; tune button colors; new rounded_foo() functions, some in use, some not in use right now
git-svn-id: svn://localhost/ardour2/branches/3.0@11466 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-07 17:43:55 +00:00
20aeb5af0a move CairoWidget into gtkmm2ext, add CairoPacker, made the time info box use CairoPacker, make the info status "bar" use CairoPacker
git-svn-id: svn://localhost/ardour2/branches/3.0@10933 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-07 13:57:45 +00:00