13
0
Commit Graph

129 Commits

Author SHA1 Message Date
7033b34a65 Ensure a plugin generic UI doesn't exceed screen width
Do that by wrapping the packed controls box in a ScrolledWindow and
making it request the same width than the box but capped to 90% of the
screen width.

Also, when the box width exceeds the maximum value, try again with
one-letter automation buttons in case the reduced width avoids showing a
scroll bar.
2017-08-30 20:11:17 +02:00
1b561446b8 GenericUI: rationalize Autostate button sizing
When there was a knobtable in the ControlUI, the behavior of the
automation state button changed by displaying one-char state as in track
headers. Factor out that logic to depend on a new boolean property of
the ControlUI, which should be set with set_short_autostate().

This regroups sizing logic in a single place and avoids future
discrepancies between the actual caption and the size allocated for it,
when several use-cases for smaller buttons are added.
2017-08-29 12:06:33 +02:00
eb1e423b75 Remove <gtkmm.h> include from header files. 2017-07-17 21:06:04 +02:00
f6e182b937 Move Gtkmm2ext widgets into libwidget 2017-07-17 21:06:04 +02:00
5c92613698 Separate Ardour UI widgets into dedicated library 2017-07-17 21:06:04 +02:00
b976bf8986 NO-OP whitespace & foratting of header files 2017-07-01 21:19:56 +02:00
Thomas Brand
63ea7b6516 NO-OP whitespace (updated GH PR #357) 2017-07-01 19:28:26 +02:00
555fcb89e5 GUI: prepare for API changes
remove use of
- unbound_min/max
- list->default_value and min/max_y
2017-06-21 18:12:16 +02:00
80fa696564 basic Mac VST Cocoa UI support 2016-11-13 16:35:06 +01:00
fcadcac7e7 Make knobs size requests dynamic
At the point of creation, the automate_button size request is wrong
since it has not the correct style yet. Instead of trying ugly hacks to
fix that, connect to the knob's size_request signal and get the button's
requisition only when needed. If the system font changes to one that has
different extents (even if the point size is the same), the UI will thus
correctly update.
2016-08-20 18:12:49 +02:00
606ffe6a35 Align the currently selected automation state on dropdown
By passing the current text of the automation button we can make the
dropdown menu align with the current mode. This will only work for
full-size automation buttons, not when use-knob is true, but in that
case it feels wrong to popup on top of the button anyway.

Also make the menu show on mouse down like a real dropdown.
2016-08-17 23:56:31 +02:00
836f48457d add a "Pin Management" button to the plugin UI-header 2016-08-05 02:35:51 +02:00
67cbdc6cf2 GenericUI: Update all input controls on preset load
The existing code relies on AutomationControls for getting parameter
changes and update the UI accordingly. One case where this doesn't yet
work is preset loading, where ARDOUR::Plugin is responsible for actually
loading the preset but doesn't notify the changes to AutomationControls.

Since the input_controls vector now contains all ControlUI's that rely on
AutomationControls to get updates, just listen to Plugin::PresetLoaded()
and trigger an update of all elements in input_controls.

This is temporary until a better solution is devised to make
AutomationControls aware of preset loading.
2016-07-29 02:06:55 +02:00
63bbcf968a GenericUI: only connect one PropertyChanged callback
The code connected the callback to the PropertyChanged signal from the
plugin once per filepath control created. Should the plugin have several
files to open, this would be at best wasteful and at worst racy.

Connect the callback a single time, since the same callback handles all
property updates that we're interested in. Also rename the methods,
members and typedefs so that it's clear what the code is trying to do.
2016-07-28 23:19:08 +02:00
1d173bc84f GenericUI: replace ComboBoxText by ArdourDropdown 2016-07-28 23:18:47 +02:00
d0f594ffd0 adjust plugin-UI height when toggling expanders 2016-07-16 02:12:16 +02:00
b382ad8b22 towards a generic plugin grid layout 2016-07-08 18:19:31 +02:00
77e50f56f9 first step to separate generic-gui layout 2016-07-08 18:19:31 +02:00
ff50b3780a Replace Gtk::ToggleButton with ArdourButton in Generic Plugin GUI 2016-07-04 00:20:11 +02:00
ac008dac02 Clean up generic and LV2 plugin GUI to deal with ParameterChanged(Externally) alteration 2015-10-20 10:23:49 -04:00
7804a524dc Revert "rename ParameterChanged signal in Plugin to ParameterChangedExternally to reflect its intent, and clean up the result."
This reverts commit 336b2eb9a4.
2015-10-20 10:23:49 -04:00
336b2eb9a4 rename ParameterChanged signal in Plugin to ParameterChangedExternally to reflect its intent, and clean up the result.
The signal exists to notify listeners that something outside of the host's control (e.g. a plugin's own GUI for AU or VST)
has modified a plugin parameter. Previous code had strange feedback loops and ambiguous semantics.

Significant modification of LV2 GUI updating was required.

Still to be tested for feedback loop issues: AudioUnits
2015-10-20 09:07:58 -04:00
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
9790d2b5dd prepare plugin reset (#6297) 2015-05-04 20:48:41 +02:00
0cb096a978 Use Ardour widgets consistently in plugin UI.
Several reasons:

* This previously looked horribly inconsistent.

* The Gtk selector was broken for plugins with many presets,
  making it impossible to select presets.  For whatever reason,
  the use of a menu fixes this bug.

* Towards a hierarchical menu for banked presets.
2015-03-07 14:04:45 -05:00
a0eeb80885 fix embedded plugin UI keyboard handling
When the GUI is opened the first time all is fine, focus is on the
embedded widget. However once a user presses one of the preset buttons
(Add, Save,...) there is no possibility to return focus to the
embedded widget. Ardour always 'sees' it as focus=GtkButton and passes
the event to the editor.
2015-02-21 03:16:04 +01:00
e3da7aff8c Remove redundant calls to start/end_touch.
The controllers do this automatically.
2014-11-28 18:31:18 -05:00
Jeremy Carter
fe6e6e3f35 Plugin Automation All: Fix bug where Switches weren't being changed. 2014-11-18 14:26:50 -05:00
251735080d fix up some suboptimal and crash-prone aspects of 7c263f3bc4 from Jeremy Carter 2014-11-14 17:14:48 -05:00
Jeremy Carter
7c263f3bc4 Added Write All, Play All, etc. automation buttons to generic plugin UI 2014-11-11 18:05:27 -05:00
21dde8f2a7 Fix crash when showing UI for plugins with output control ports. 2014-11-02 13:02:54 -05:00
8a128b33d3 Automation of LV2 plugin properties.
Work towards ParameterDescriptor being used more universally to describe control characteristics.
2014-11-02 02:10:24 -05:00
6dfb11c2d0 Move ParameterDescriptor from Plugin to its own header.
This fixes circular dependency issues that arise when using ParameterDescriptor more widely.
2014-11-02 02:10:24 -05:00
bd6ba1717e Decouple ControlUI from port index. 2014-11-02 02:10:24 -05:00
5de6c21ec1 More generic RT-safe implementation of LV2 properties. 2014-10-31 20:46:43 -04:00
b8cea19b95 prototype [LV2]patch-change support for generic plugin UIs. 2014-10-31 03:26:47 +01:00
0029ee40b6 honor LV2 units:midiNote: display Note name instead of integer 2013-10-22 17:28:49 +02:00
00f94a04cc remove unused virtual event handlers from PluginUIWindow 2013-05-02 21:12:59 -04:00
7df1654947 make PluginUIWindow inherit from ArdourWindow not GtkWindow 2013-05-02 10:11:57 -04:00
e5bb4c94ed kludgy hack/fix for plugin windows reappearing at (0,0) after re-activating ardour as app on OS X. having spent an entire day investigating the issue, this seems like an expedient though sad fix
git-svn-id: svn://localhost/ardour2/branches/3.0@12573 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-06 01:43:35 +00:00
ffe5a6c5c2 Add "Description" pane to generic plugin UI for LV2 plugins with documentation (rdfs:comment property).
A Gtk::Entry might be better here, making Gtk::Label wrap based on size is tedious...


git-svn-id: svn://localhost/ardour2/branches/3.0@12043 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-20 02:12:29 +00:00
1716dc0ce6 Update to latest LV2 atom extension.
Implement proper support for fixed size LV2 plugin UIs.


git-svn-id: svn://localhost/ardour2/branches/3.0@11757 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-25 17:17:40 +00:00
Carl Hetherington
0af622521b Use a AutoSpin rather than a combo box for input
parameters marked up as scalePoint with fewer labels
than there are possible values for the parameter
(should fix #2612).


git-svn-id: svn://localhost/ardour2/branches/3.0@11744 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-21 16:39:04 +00:00
Carl Hetherington
6238ca5e72 Rename combo_map variable to scale_points.
git-svn-id: svn://localhost/ardour2/branches/3.0@11742 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-21 16:38:53 +00:00
Carl Hetherington
013b31f1bb Don't fix size of preset combo any more. Comment what
widgets the PlugUIBase makes available for subclasses. 
Give up on trying to report when a VST plugin's settings
have been modified from a preset, since I think it is
impossible to do cleanly (you set the preset, then at some
point after that the plugin tells you that values have
changed using the same mechanism that it uses to report
normal user-initiated changes).


git-svn-id: svn://localhost/ardour2/branches/3.0@10798 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-23 17:48:10 +00:00
Carl Hetherington
aed44005b2 Merge some linux/windows VST GUI code.
git-svn-id: svn://localhost/ardour2/branches/3.0@10783 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-23 00:55:25 +00:00
Carl Hetherington
d9a3c6b89f Rename windows VST stuff with a Windows prefix.
git-svn-id: svn://localhost/ardour2/branches/3.0@10738 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-21 17:42:29 +00:00
05283a6339 Only use ArdourDialog (and thus Gtk::Dialog) for actual dialogs.
Fixes #4364.

I havn't fully tested every single dialog and window (heck, I don't even know
how to get at half of them), and there may be some packing niggles, but this is
the bulk of the work.  The Gnome 3 kiddies can close their dialogs now, anyway
:)


git-svn-id: svn://localhost/ardour2/branches/3.0@10699 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-19 00:56:35 +00:00
6449c2e5c8 more ardour-button-ization; fix transparency of selection rects; use "correct" cursors when entering and leaving selection rect handles; color tweaks for a few buttons
git-svn-id: svn://localhost/ardour2/branches/3.0@10527 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-10 15:25:01 +00:00
4aeebb914e changes for OS X support: change waf config define to COREAUDIO_SUPPORT, remove PluginInsert call to IO::PortCountChanged, remove use of explicit Carbon linkage, fix up AudioUnit internals to actually work (Cocoa GUIs still currently broken)
git-svn-id: svn://localhost/ardour2/branches/3.0@10224 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-18 15:08:42 +00:00