Commit graph

1086 commits

Author SHA1 Message Date
Robin Gareus
2f0914c730
Allow to disable use of NSGLView
On recent Mac systems (Catalina) OpenGL is slower compared to
directly using GTK's NSView. Furthermore when compiled on
Catalina, and running on a system with a Retina screen, the initial
size of the canvas may be wrong:

   libs/gtkmm2ext/nsglview.mm:175:1: warning: method possibly
   missing a [super reshape] call [-Wobjc-missing-super-calls]

This is not an issue when running versions compiled on older systems.
2020-03-24 14:24:14 +01:00
Robin Gareus
9e2b896516
Replace strftime() with Glib::DateTime()
This is mainly for windows compatibility "%F" is not supported.
An alternative would be to s/%F/%Y-%m-%d/ to produce the ISO date.
2020-03-08 23:31:51 +01:00
Robin Gareus
fa0a7d6739
Allow to limit error dump
This is in preparation of displaying verbose errors to the user.
2020-02-28 07:26:13 +01:00
Robin Gareus
06b2eb1c27
Explicitly use OSX
Previously this was inherited via PBD.

On MacOS/X,  this adds
  "-undefined dynamic_lookup -flat_namespace"
and various "-framework .." options to linkflags

Without this flag, .dylibs fail to link usually because
of missing `-lintl` (Undefined symbols: "_libintl_dgettext")

On other systems this is a NO-OP:
CFLAGS_OSX, CXXFLAGS_OSX and LINKFLAGS_OSX
are only set on the darwin platform.
2020-01-25 04:07:41 +01:00
Robin Gareus
61e53e303b
Fix ISO compliance 2020-01-18 19:09:36 +01:00
Robin Gareus
d7801ab7ee
Add timestamp to log -- #7877
This adds the time when a log message is displayed.
ARDOUR_UI::display_message() parses the prefix,
so the timestamp cannot be prefixed in the beforehand.

Still, UI::process_error_message() is called directly in
the same thread, so this makes no significant difference.
2020-01-18 18:18:05 +01:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Paul Davis
6f4e838a58 add a signal to Gtkmm2ext::Keyboard to allow (possible) handling of close-current-dialog 2019-11-06 16:25:30 -07:00
Julien "_FrnchFrgg_" RIVAUD
3cae11936f Highlight the currently selected item in ArdourDropdown & co 2019-10-31 14:38:26 +01:00
Julien "_FrnchFrgg_" RIVAUD
016db85fa1 Workaround a GTKMenu bug in ArdourDropdown & co. 2019-10-31 14:21:57 +01:00
Julien "_FrnchFrgg_" RIVAUD
07458155a2 Work around an initialization bug of GTK menus 2019-10-31 11:34:36 +01:00
Julien "_FrnchFrgg_" RIVAUD
eaba4fa593 Update |offset| instead of changing the formula
So that the test to see if it fits also takes the new offset into
account.
2019-10-31 10:42:37 +01:00
Julien "_FrnchFrgg_" RIVAUD
fb9203998b Align vertical centers of widget and active menuitem 2019-10-31 10:29:43 +01:00
Julien "_FrnchFrgg_" RIVAUD
7d48b20652 Fix a thinko in x position of menu popups
This has lasted without being noticed because menus that big are not
common.
2019-10-31 10:29:43 +01:00
Robin Gareus
5e4d641488
NO-OP: whitespace 2019-10-31 00:22:26 +01:00
Robin Gareus
98db30efb1
Declare helper function static (don't export) 2019-10-31 00:22:12 +01:00
Julien "_FrnchFrgg_" RIVAUD
3a16b89219 Try harder to put the active item under the mouse (ArdourDropdown) 2019-10-30 23:56:36 +01:00
Paul Davis
dd29e9b0e9 remove unnecessary template methods (replicated in libs/gtkmm2ext/doi.h 2019-10-10 16:52:00 -06:00
Paul Davis
5ec5bc4523 goodbye USE_TRACKS_CODE_FEATURES and is_tracks_build 2019-09-25 12:16:13 -06:00
Robin Gareus
e0d5c1426c
NO-OP: fix some Wimplicit-fallthrough
gcc can recognize various regexps in comments. Since C++17 provides
[[fallthrough]], using /* fallthrough */ consistently seems
appropriate until we switch to C++17.

see also https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
2019-09-18 17:37:54 +02:00
Robin Gareus
cec5ce8f45
Update canvas/UI lib GPL boilerplate and (C) from git log 2019-08-03 15:53:17 +02:00
Robin Gareus
e76e18af96
Use exit-status macros for compatibility 2/3 2019-07-04 22:21:35 +02:00
John Emmas
2fcd19581a Add/remove source(s) in our MSVC project (gtkmm2ext) 2019-04-21 19:21:17 +01:00
Johannes Mueller
822f55f4af Provide ActionModel::build_custom_action_combo() for Control Protcols
to consolidate code that's identical in several control protocols.
2019-04-20 22:12:52 +02:00
Johannes Mueller
de876acc8b Provide a function to fill a Gtk::ComboBox with all available actions 2019-04-20 15:25:32 +02:00
Johannes Mueller
b141d17274 Provide an API to get all available actions by one singleton class
The singleton ActionModel provides a Gtk::Treestore of all actions known to
ardour.

To be used for example by surface control editors to implement action bindings.
2019-04-20 15:25:32 +02:00
Robin Gareus
2a8bda01b1
NO-OP: whitespace 2019-04-11 02:32:45 +02:00
Robin Gareus
01024e2b4c
Add API to render a reflection
This is to be used sparingly because the pattern is dynamically
created every time. Mainly for the benefit of some Mixbus
widgets -- compared to ArdourButton::convex_pattern
2019-04-11 02:06:32 +02:00
Paul Davis
df29e57cb4 ActionManager::get_all_actions() no longer includes <Actions> in the paths it returns, part 1 2019-03-20 11:15:22 -07:00
Paul Davis
ed97a290db make ::ardour_action_name() private to Bindings, because nothing else uses it and it semi-exposes the <Actions> nonsense 2019-03-20 11:12:06 -07:00
Ben Loftis
957393c435 Compiler fix for 201110. 2019-03-19 11:24:26 -05:00
Paul Davis
21110444c1 use a new unhandled (thus far) exception rather than ::abort() when an action is undefined 2019-03-19 08:29:30 -07:00
Robin Gareus
4d695eaf51
Work-around crash when printing bindings
(ardour -b or Keyboard-Shortcuts > Print Bindings)
see also https://github.com/Ardour/ardour/pull/447
2019-03-09 21:59:16 +01:00
Robin Gareus
7ea51298da
NO-OP: whitespace 2019-02-28 23:57:44 +01:00
Robin Gareus
fc7dc6a214
Abort when Action cast failed
Previously the action-manager only called ::abort() when
an action could no be found. This add a further restriction
that the expected class must match.
2019-02-28 23:57:32 +01:00
Robin Gareus
c83ba53399
Remove ancient, unmaintained xcode project files 2019-02-28 18:12:44 +01:00
Paul Davis
e5ae620c0b adjust debug/trace output for key bindings 2019-01-13 12:00:31 -06:00
Paul Davis
f974ff594a additional API to make it nicer to get an existing action group 2019-01-13 11:59:18 -06:00
Robin Gareus
58db958839
Fix crash for external windows
eg. LV2 externalUI windows are not managed by ardour; Ardour cannot
intercept mapped() or delete_event() signals and hence also not
create a visibility-tracker.

First call to WindowProxy::toggle() creates the window, and the 2nd call
crashed since 6ca8ec5141, due to missing vistracker.

e.g. externalUI plugin windows, the processor-box uses WindowProxy
for all plugin-UIs incl. externalUIs.
2018-12-20 19:41:57 +01:00
Paul Davis
758d0ca263 replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls 2018-12-12 10:08:01 -05:00
Paul Davis
e1b7a43139 add ActionManager::get_actions() to fetch all actions created in ActionGroups with a given "owner" value 2018-12-11 05:05:09 -05:00
Paul Davis
1de181479f add basic concept of an "owner" for an action group, to allow later grouping 2018-12-10 18:40:31 -05:00
Paul Davis
ab61c6837f add ActionManager::set_sensitive() for Gtk::ActionGroup 2018-12-10 18:40:00 -05:00
Paul Davis
d1d8fd197d change ActionManager::find_action() back to ActionManager::get_action()
This avoids dozens or hundreds of unnecessary changes in gtk2_ardour code
2018-12-10 08:34:01 -05:00
Paul Davis
ad002d0de0 consolidate ActionMap and ActionManager APIs into a single namespace 2018-12-10 08:34:01 -05:00
Paul Davis
39c253c590 provide (Static)ActionMapOwner::action_map() 2018-12-10 08:34:00 -05:00
Robin Gareus
9004a0df7a
Properly keep track of Window Visibility, action state
This fixes inconsistent WM::Proxy state when a window is destroyed
Specifically "session-options-editor" when the session is unloaded;
previously "toggle-session-options-editor" was never unset.
2018-12-08 22:38:03 +01:00
Paul Davis
dd4c788d3e add syntactic sugar for fetching toggle and radio actions 2018-12-06 22:12:34 -05:00