Commit graph

257 commits

Author SHA1 Message Date
Robin Gareus
f19e7c9ac9
Fix pane constraint calculation for > 2 child widgets 2025-10-11 22:22:44 +02:00
Robin Gareus
882ed91f2f
Fix pane allocation and size constraints
Correctly divide the fractions of *available* requested child-space.

This fixes issue with Trigger Page bottom attachment not showing
Frame content.

When calculating constraints the divider width/height was ignored.
When setting child allocation, the divider girth was only
subtracted *after* the first child, and iteratively subtracted
after each subsequent child widget.
This over-allocated the first child and later child widgets
were increasingly too small (factor * remaining).
2025-10-11 22:22:17 +02:00
Robin Gareus
b1841f9857
Only warn when Frame allocation is smaller than requested size
see also a8092c1782
2025-10-11 18:23:40 +02:00
Robin Gareus
c780d7c056
Don't blindly enforce a min attachment width/height
This also fixed a copy/edit type. enabling PaneBottom
set a min-width to content_right_pane :)
2025-10-11 18:13:45 +02:00
Robin Gareus
cb64c9a9c1
Update action state when watched controllable changes
This fixes bug, when a button has both a controllable and
a toggle action assigned. Previously only the visual state
was updated.  e.g. monitor section mute button.

When "cut all" was toggled (e.g. Control surface, or a Lua script:
`Session:monitor_out():monitor_control():set_cut_all(true)`,

The action state itself remained unchanged. Also the button
in the application remained unchanged since that button does
not :watch() the controllable.
2025-09-24 17:11:59 +02:00
Robin Gareus
74133432d3
Correctly hide attachment content at application start 2025-09-08 20:27:51 +02:00
Robin Gareus
a8092c1782
Frame: only warn when allocation is smaller than requested size
When using Gtk Box packing and the box has a border-width set
the child widget may get an allocation that is less that than
the requested size.
2025-08-27 15:10:53 +02:00
Robin Gareus
e5e9229eb2
Allow numeric entry with "shift" when using dbl-click to reset 2025-08-24 17:02:57 +02:00
Robin Gareus
d7af181037
Amend 28c8dbf128, unsubscribe from destroyed signal
This handles another edge case where the Frame is deleted
before the child widget.
2025-08-21 04:41:17 +02:00
Robin Gareus
28c8dbf128
Handle special case of using unmanaged widgets to Frame
This happens in in Ardour's Preference dialog with
e.g. BufferingOptions:

~OptionEditorContainer deletes the Option, which in turn
deletes the Widget BufferingOptions:_buffering_presets_combo
Since the widget is not managed it is not removed from its
parent.

Later ~OptionEditorContainer disposes the page layout, which
eventually also calls the Frame d'tor, causing a heap-use-after-free.
2025-08-20 16:19:25 +02:00
Robin Gareus
43e4e428f5
Handle case where a custom MenuElem is added to the dropdown 2025-08-19 20:06:04 +02:00
Robin Gareus
4859e4e57e
ArdourDropdown: use action's short-label for display text 2025-08-19 18:18:41 +02:00
Robin Gareus
26ca954574
Allow to scroll though meta-button items #9976 2025-08-17 06:29:31 +02:00
Paul Davis
9f49e6379d ArdourDropdown: new utility methods 2025-07-29 18:16:35 -06:00
Paul Davis
5b7b3860b8 NO-OP: function call whitespace niggle 2025-07-29 18:16:35 -06:00
Robin Gareus
91ea44e24e
Remove Mixbus special case in upstream Ardour 2025-07-18 16:49:39 +02:00
Ben Loftis
ae56743b7d
Tapereel icon should follow fg_color, not use hardcoded red 2025-07-16 16:39:38 +02:00
Robin Gareus
3cc13c1f1e
Consolidate ArdourButton layout and size for derivative projects 2025-07-16 13:56:43 +02:00
Paul Davis
f82a755a22 NoCamelCase method names (libs) 2025-07-12 10:51:46 -06:00
Robin Gareus
99c1f50a72
Really remove gtk+ option (see also 1e28ee9cc9)
After patching gtk/ytk to add touch support and macOS rendering,
upstream gtk+2 is no longer an option
2025-07-06 15:20:20 +02:00
Paul Davis
02abf956d7 a better way to build ArdourDropdowns from Actions 2025-06-25 22:17:53 -06:00
Robin Gareus
704241dec2
Fix button corner radius math 2025-06-13 02:42:26 +02:00
Ben Loftis
aa5685c585
Add icons for editor toolbar buttons: follow*, show_auto_on_touch 2025-06-12 18:57:56 +02:00
Ben Loftis
f644b83f3f
Add new icons for LoopMode and AutoReturn 2025-06-12 18:57:27 +02:00
Robin Gareus
7c476f0468
Allow for blank separators 2025-06-11 23:57:55 +02:00
Robin Gareus
31a75af243
In the case where there is no pane-divider, add space at top 2025-06-11 20:25:37 +02:00
Ben Loftis
2ac2a4fd4c
(backport) loop and config icon should obey the fg_color they are provided 2025-06-11 19:21:07 +02:00
Robin Gareus
63bab272dc
Tweak cue/trigger icon to match weight of similar icons 2025-06-11 19:20:31 +02:00
Ben Loftis
9463eabfe4
Expose corner_mask variable for ArdourButtons 2025-06-10 21:18:36 +02:00
Ben Loftis
b397d48a56
Remove redundant logic for calculating button rg color 2025-06-10 21:18:36 +02:00
Ben Loftis
43b48467f8
Ardour_icon: shrink the stop icon to match the weight of Play 2025-06-10 21:18:36 +02:00
Robin Gareus
ccf3addf5a
Add spacer widget to maintain size with GUI scaling
This is intended for the (Mixbus) Group Bar
2025-06-10 21:18:35 +02:00
Ben Loftis
41fc50898e
Allow themeing of icon colors so they can be less severe
Note: this breaks some themes, notably light ones.
2025-06-10 21:18:35 +02:00
Ben Loftis
d9176fd862
Button-sizing Tweak:TransportIcon alternative to ExpandToSquare 2025-06-10 21:18:32 +02:00
Robin Gareus
95949e6267
Implement multi-touch support for ArdourKnobs 2025-04-15 21:59:40 +02:00
Robin Gareus
5a90eb0776
Fix double toggle on repeat call of on_button_release_event
This can happen with touch screens.. leading to
`set_active (!get_active ());` being called twice, and effective NOOP.
2025-04-15 21:48:42 +02:00
Robin Gareus
7e8230c3be
Allow touch to tigger act-on-release events 2025-04-10 18:26:23 +02:00
Robin Gareus
349a3cf039
Add API to resize Fader widgets 2025-03-06 20:10:20 +01:00
Robin Gareus
f3ec590eb5
Dynamically update ArdourButton indicator
Previously this was semi-random, on_size_request() may be called
in response to some other widget changing size, before a given
ArdourButton DPIReset handler could set _diameter = 0.
2025-03-06 17:02:33 +01:00
Paul Davis
16535e9e1d expand ArdourButton API to expose ::is_led_click() for use by derived classes and owners 2025-02-08 09:28:53 -07:00
Paul Davis
fbc55a75b4 API changes to MetaButton, mostly to allow submenus to be hung from the built menu 2025-02-07 23:09:02 -07:00
Paul Davis
46507df2de expose Gtk::Menu member of ArdourDropdown 2025-02-03 14:29:35 -07:00
Robin Gareus
000c25edcc
Update gtkmm -> ytkmm header location (omnibus commit) 2025-02-01 15:25:14 +01:00
Robin Gareus
233fc890de
Update gdkmm -> ydkmm header location (omnibus commit) 2025-02-01 15:01:52 +01:00
Robin Gareus
07866caf1e
Update gdk -> ydk header location (omnibus commit) 2025-02-01 13:37:48 +01:00
Robin Gareus
0516c12694
MetaButton: handle boxy theme, separate active state from menu index 2025-01-28 22:52:00 +01:00
Robin Gareus
6cdf6b6e42
Properly propagate un/map window events
This fixes issues with openGL rendering bleeding
behind when switching editor/mixer and other related
window events that depend on  on_unmap()
2025-01-28 17:43:33 +01:00
Robin Gareus
fb6b64f736
Allow left-click on MetaButton Dropdown indicator 2025-01-28 17:38:38 +01:00
Robin Gareus
ff2c33e42e
Add MetaButton Widget
A Button that changes functionality.

* right click: show a drop-down to pick what left click will do
* left click: activate selected action
2025-01-28 07:52:35 +01:00
Robin Gareus
d280c46d44
Add API to add sizing-texts to ArdourButton 2025-01-28 07:52:34 +01:00