13
0
Commit Graph

1129 Commits

Author SHA1 Message Date
b32b9ceb58 Constant radian/degree factor 2018-10-09 19:31:01 +02:00
e01582dd9a Prepare a boxy, no round borders, button-style 2018-10-02 21:28:49 +02:00
cf652331ad Adapt our remaining MSVC projects for 'boost::atomic' (in case it later gets extended to the other libs)
Stage 3 of 3
2018-09-30 09:19:28 +01:00
6ca8ec5141 remove debug output 2018-09-23 13:48:19 -04:00
12d5eb9a34 remove debug output 2018-09-23 13:48:19 -04:00
d48dd0ccd5 defer creating a visibility tracker for a window until the window is mapped
Without this, the visibility tracker will report that the window is not visible at startup, and
this overrides the XML _visible property which denotes that the window should be made visible
2018-09-23 13:48:19 -04:00
497a3fbaa1 Fix --no-nls (2/5), prefer #if in libs
This is for consistency with system-wide gettext.h which is used
by some 3rd party libs. system-wide gettext uses `#if ENABLE_NLS`,
not #ifdef
2018-09-21 19:03:33 +02:00
79f01bc889 Initial changes needed for building Mixbus (with MSVC) as version 5
(Mixbus itself will probably need extra changes)
2018-09-10 07:14:59 +01:00
4983eb565d Only update tooltips if there is an actual change -- #7268
Changing a tooltip resets the timeout. In one particular case,
while rolling, AudioClock::set() is calling set_tooltip() at a rate
faster than the tooltip timeout and prevents tooltip from showing at all
(even if there is no actual change to the tooltip text).
Alas, there is no trivial fix for this UI side and there may be other
such cases. A central check is more than practical.
2018-04-12 02:54:55 +02:00
b9c9777b9a When building with MSVC, allow for the fact that Mixbus and Ardour can be using different versions of the SESSION_FILE format 2018-02-15 09:03:32 +00:00
6f019faaa0 Accommodate the change from libtimecode to libtemporal 2018-02-14 10:02:11 +00:00
c833b56029 Explicit encoding for bindings html. 2018-01-17 16:52:16 +01:00
Hiroki Inagaki
720ad15a45 Update Japanese translation 2017-12-22 22:19:00 +01:00
3421c6e814 NO-OP: whitespace 2017-08-18 09:42:04 -04:00
f84bebbb30 strip <Actions>/ from displayed path when printing bindings to HTML 2017-08-18 09:42:04 -04:00
bbc8c1354e Separate set_toggleaction_state () API
Prepare for a method consistent with access_action():
* separate group + action names
* no action string parsing overhead.
* no fatal, abort () call for invalid actions
2017-08-09 16:29:24 +02:00
bf150f049f MSVC changes needed to implement the new 'widgets' library 2017-07-19 08:16:30 +01:00
8c6d78c188 add required stdint.h 2017-07-17 18:15:42 -04:00
601c317d70 Clean up library inheritance (colors.h, utils.h)
make libwidget independent of libcanvas.
Confine basics to pbd and gtkmm2ext.
2017-07-17 21:06:04 +02:00
eb1e423b75 Remove <gtkmm.h> include from header files. 2017-07-17 21:06:04 +02:00
f9e5e4360e Move more Gtkmm2ext widgets into libwidget 2017-07-17 21:06:04 +02:00
b5e9451bc7 Remove unused sources & includes 2017-07-17 21:06:04 +02:00
f6e182b937 Move Gtkmm2ext widgets into libwidget 2017-07-17 21:06:04 +02:00
5292a8f4ae Allow DnDVbox to sort the selection, using original order
In preparation for Processors to be copy/pasted in the same order
as they appear on the strip -- not order in which they are selected.
2017-07-04 18:08:35 +02:00
3a42383975 Add binding-proxy to ClickBox 2017-07-02 22:48:39 +02:00
c4fcb12d12 Add control-focus notifications from bindable widgets. 2017-07-02 18:19:13 +02:00
496ac30c41 Accommodate newly introduced source(s) in our MSVC project (gtkmm2ext) 2017-06-29 10:11:05 +01:00
fae592e8f4 Remove ambiguity ('CheckMenuItem' conflicts with an item already existing in MSVC) 2017-06-29 10:08:32 +01:00
972e01f9c7 Add a convenience MenuHelper c'tor
This is pretty much Gtkmm's
  * CheckMenuElem::CheckMenuElem
  * MenuElem::MenuElem
except MenuItems are created with bool mnemonic = false;
2017-06-29 00:22:34 +02:00
5ddd7a58b6 Remove unused pbd/locale_guard.h header from Gtkmm2ext::Barcontroller class 2017-06-22 10:48:38 +10:00
Edgar Aichinger
278d5bdab2 update german translation 2017-05-14 15:29:27 +02:00
401eefec1c remove cruft (unused UI::ui_scale) 2017-05-05 14:00:30 +02:00
2f37885e4b MIDI learn on ctrl + middle-click only (not ctrl + other mods + btn2).
This fixes various other operations that use ctrl + btn2.
e.g. ctrl+alt+btn2 temporary all un/solo/mute.
2017-05-04 00:35:56 +02:00
410f94cf1b Fix Editor/Mixer visibility (OSX, NSGLCanvas)
Only unpacking a widget retains the GdkWindow and and the widget is still
mapped. The NSView is still visible. See also 235631a6.
2017-04-27 16:23:48 +02:00
9488cb0b69 Use XMLNode::get/set_property API in Gtkmm2ext::WindowProxy class 2017-04-19 09:36:55 +10:00
6779770fee Use XMLNode::get/set_property API in Gtkmm2ext::Tearoff class 2017-04-19 09:36:55 +10:00
c627da0a9f Use XMLNode::get/set_property API in Gtkmm2ext::Tabbable class 2017-04-19 09:36:55 +10:00
1f3589b122 Use XMLNode::get/set_property API in Gtkmm2ext::Keyboard class 2017-04-19 09:36:55 +10:00
ac89bfd229 Use XMLNode::set_property API in Gtkmm2ext::Bindings class 2017-04-19 09:36:54 +10:00
e31f242836 Add missing <iostream> header include
This will be required for subsequent commits that remove inclusion of
<iostream> from some shared headers.
2017-04-19 07:49:58 +10:00
c6747c9325 NO-OP: whitespace 2017-04-17 01:50:12 +02:00
3d0366d46b Send unmap event when removing a widget
This fixes a crash when hiding an ArdourCanvas Item VCA which
is about to display a tooltip.
2017-04-17 01:46:27 +02:00
6e4eed51ca Shortcut editor: include a raw list of the currently-available actions in the printout. 2017-03-30 11:02:06 -05:00
500033b416 Debug NSView Exposure 2017-03-21 15:53:29 +01:00
5e9492b996 consolidate NSGLView 2017-03-21 15:53:29 +01:00
d294d03670 Accommodate newly introduced sources in our build projects (gtkmm2ext) 2017-03-21 10:31:03 +00:00
4d515ad086 The new class 'Gtkmm2ext::EventBoxExt' needs to be exportable when building with MSVC
(previously the c'tor was private and nothing was getting exported anyway)
2017-03-21 10:28:53 +00:00
533a93daa6 match name of synthesized property (fixed i386 builds) 2017-03-21 03:46:40 +01:00
5cf95848e9 Fix gcc4 builds 2017-03-21 03:46:40 +01:00
d3e730abbf fix OSX/PPC compilation 2017-03-21 01:58:45 +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
c0828792f0 NSGLView: default to hidden, add API to un/hide 2017-03-20 17:12:08 +01:00
235631a618 Add a EventBox wrapper to forward unmap events. 2017-03-20 17:12:08 +01:00
e307094af3 Allow CairoWidget to be backed by NSGLView 2017-03-20 05:19:38 +01:00
b5e613d453 Move NSGlView into libgtkmm2ext
This allows to re-use the concept with CairoWidget
2017-03-20 04:35:05 +01:00
9cc068756b Clean up existing bindings on reset 2017-03-13 20:09:10 +01:00
d6d1074565 create_action_group -> get_or_create_action_group
Since adding an action-groups hides existing actions with the same name,
this adds a way to look up actions first.

This fixes an issue introduced in 6af51b52ff (both window_manager.cc
and ardour_ui_ed.cc use the "Window" group.
2017-03-11 15:33:24 +01:00
0b966460a5 NO-OP whitespace 2017-03-11 00:36:47 +01:00
41216d200a Remove old modal get_color API. 2017-03-11 00:35:26 +01:00
3ecd5d6f08 Allow to pre-seed Tabbable detached state. 2017-02-20 22:55:31 +01:00
Hiroki Inagaki
5668f6b40e Update Japanese translation 2017-02-12 11:59:40 +01:00
e16141c9aa Tweak output formatting of save_all_bindings_as_html 2017-02-06 12:52:39 -06:00
ddd0e862ce Properly remember window position.
Querying the position of unmapped windows may or may not return a valid
position. -- the configure handler is also called after hiding a window.
2017-02-01 23:07:57 +01:00
Hiroki Inagaki
5a5ed37384 Update Japanese translation 2017-01-22 22:03:55 +01:00
6b5dce2c66 Yet another pane pain: allow deleting children using forall_vfunc
We not only need to make sure the iterator remains valid, but also
the object pointed to.

Valgrind trace:
Invalid read of size 8
 Gtkmm2ext::Pane::forall_vfunc(int, void (*)(_GtkWidget*, void*), void*) (pane.cc:617)
 Gtk::Container_Class::forall_vfunc_callback(_GtkContainer*, int, void (*)(_GtkWidget*, void*), void*)
 gtk_container_destroy (gtkcontainer.c:1073)
 g_closure_invoke (gclosure.c:804)
...
 g_object_run_dispose (gobject.c:1084)
2017-01-20 03:13:41 +01:00
Hiroki Inagaki
777647259e Add Japanese translation 2017-01-15 15:37:38 +01:00
cd14e8f2e1 add API to query name of bound action 2017-01-12 20:53:20 +01:00
c590b540b0 NO-OP: whitespace 2017-01-08 17:48:57 +01:00
66e580d683 Fix Pane size allocation:
* Skip calling allocate on recently hidden children.
* Don't [temporarily] call size_allocate with negative sizes
2017-01-08 17:48:21 +01:00
cbf5f3d622 Fix crash when changing Pane widgets -- #7198
Gtkmm2Ext::Pane::on_add() uses a pointer to a std::vector<> element
in the destroy notify callback. If the vector is modified, that pointer
becomes invalid.

Add 2 widgets "A", "B". remove "B", add another one "C".
Now if A is destroyed, notify_child_destroyed(PTR) points to
invalid memory and not to "A".
2017-01-08 12:39:07 +01:00
Olivier Humbert
fda770eed0 French translation update 2017-01-05 09:31:09 +00:00
Olivier Humbert
7f5fcd4789 French translation update 2017-01-05 09:31:09 +00:00
c33f94f686 Enforce minimum pane sizes
* enforce minimum size of child widgets
* honor manually set child-minsize in size-requests
* ignore hidden children (eg. VCA)
* clamp divider position (instead of just ignoring out-of-bounds moves)
2017-01-02 17:13:56 +01:00
de04da27ee Fix crash when unpacking or deleting pane
Gtk::Widget_Class::dispose_vfunc_callback calls hide() which invokes
Pane::handle_child_visibility which calls Pane::reallocate which
tries to get the allocation of the widget being destroyed.
2016-12-21 17:10:37 +01:00
377b357afb Add Zoom/Expand icon 2016-12-20 18:48:10 +01:00
004431426d Towards packing CairoWidgets on ArdourCanvas. 2016-12-19 13:36:42 +01:00
545f5bee87 changes to adapt to modified version of GTK/Quartz which uses only MOD2 for Command, everywhere.
The default version of GTK2/Quartz uses MOD2+META for keys and MOD2 for scroll, which is
basically insane
2016-12-13 07:02:08 -05:00
cdbf49b873 Revert "Pixel hunt cairo-packer (status-bar, selection-clock border)"
This reverts commit 6015481377.
2016-12-11 02:19:10 +01:00
6015481377 Pixel hunt cairo-packer (status-bar, selection-clock border) 2016-12-11 01:32:27 +01:00
642b357376 CairoPacker draws outside of its widget allocation
This fixes fixes TimeInfoBox packing when the InfoBox position changes.
2016-12-10 21:30:33 +01:00
1468e270de Tweak transport icons 2016-12-10 15:56:47 +01:00
Olivier Humbert
059bbbf23f French translation update 2016-11-30 20:31:32 +01:00
8d70b76059 Fix restoration of key bindings assigned to Windows+key, bug #7037
Windows key generates Mod4+Super (at least with the version of Gdk we use on
linux) so for bindings using the Windows key to work, GDK_SUPER_MASK has to be
added to modifier mask.
2016-10-26 12:03:17 +10:00
Nathan Stewart
ca98c7a051 map::clear() calls erase. Cleans up cpp check warning 'iterator used after element has been erased' 2016-10-12 14:50:02 -04:00
99c8e51918 manually revert b9cab93fb1 and remove associated code.
For the last time, because of how GDK works, Keyboard::PrimaryModifier on MacOS MUST include MOD2 ***AND** META
2016-09-29 12:01:50 -04:00
5472498a50 enhance -D bindings output 2016-09-29 12:01:49 -04:00
0ff233d234 Update our MSVC project files to generate the most recent Ardour session file format (ver 5) rather than the older v3 format 2016-08-30 07:15:00 +01:00
a83febb268 fix optimized build compilation 2016-08-19 22:38:10 +02:00
4ece16f348 For MSVC, 'using namespace whatever' doesn't help us to differentiate between ambiguous type names
so... given that 'Rectangle' is a type name that's commonly found in several different namespaces, we'll need to specify explicitly which one we want.
2016-08-19 14:11:00 +01:00
45cd3482a2 fix failure to remove keyvalue from Keyboard::state on key release 2016-08-19 08:32:44 -04:00
08df4e1920 Fix anchored popups with separators in them
The code computing the position of the popup menu used to compare the
given string to each MenuItem::get_label() result, but that method
actually replaces the content (child) of the MenuItem if that child is
not already a Gtk::Label. In particular, this breaks menu separators.

Avoid the issue by checking by hand if the only child of the MenuItem is
a Label, and directly compare the label text.
2016-08-17 01:45:47 +02:00
6a985df81e Replace positioning function with popup helper
Because all uses of the function positioning menus anchored to a widget
were as callback argument to Gtk::Menu::popup() where the caller needed
to correctly bind arguments, this led to repeated and a bit obscure code.

Wrap the logic into an helper function that takes care of all that, and
update the callers.
2016-08-17 01:45:47 +02:00
nick_m
c62026b567 Ensure RelevantModifierKeyMask is updated on each modifier change.
- fixes bug where changing prefs in User Interaction
	  only took effect on restart.
2016-08-14 03:04:54 +10:00
e9752ff93e remove debug output 2016-08-09 21:26:27 -04:00
b9cab93fb1 fix definition of PrimaryModifier for Keyboard for OS X 2016-08-08 17:59:11 -04:00
3d400f97dd fix display of modifiers on OS X in the bindings editor 2016-08-08 17:47:11 -04:00
a51cd8689f Move anchored menu placement strategy to Gtkmm2ext utils
So that it can be used by others.
2016-08-08 16:44:40 +02:00
Edgar Aichinger
595684ddf7 update german translation 2016-08-06 16:49:41 +02:00
Nils Philippsen
65c2e089ab workaround changes in glibmm 2.49.x
Glib::RefPtr defines the operator bool() as explicit which breaks
comparisons like "some_ref_ptr == 0" or "... != 0".

https://bugzilla.gnome.org/show_bug.cgi?id=769502
2016-08-04 09:52:22 +02:00
3953879d4d add a timeout to flush_pending()
In some circumstances UI::flush_pending never returns, and all UI
interactive ends up being driven by
   while (gtk_events_pending()) { gtk_main_iteration(); }
This has various implications depending on the caller and usually results
in a crash at session-close or exit.
2016-07-25 14:13:52 +02:00
81211a91b1 minor safety fix for the Pane 2016-07-20 10:48:07 -04:00
82d3afb851 Gtkmm2ext::Pane: attempt to track child lifetime, since Gtkmm 2.4 doesn't do this correctly 2016-07-20 10:48:07 -04:00
727613b4b7 fix a compile of annoying compiler warnings with elcap clang 2016-07-18 14:42:34 -04:00
9f3a9ef02d before pushing keybindings to GTK for menu display, make sure that we add back the META modifer that GTK expects 2016-07-18 14:42:13 -04:00
1a55e83e98 move show_gdk_event_state() utility function from gtk2_ardour to libs/gtkmm2ext 2016-07-18 14:41:25 -04:00
b8f5306d5b fix incorrect restoration of pane positions on Apple.
Code to check if we were to close to an edge (for window resizing) blocked all divider setting,
because it would be called with a current widget allocation of 1x1
2016-07-18 12:49:36 -04:00
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
81a10a26e0 regenerate and manually fix all PO files so that ./waf i18n doesn't generate unnecessary errors 2016-07-14 06:19:19 -04:00
5335763f98 use initialization, not explicit assignment 2016-06-30 17:41:11 -04:00
37156d6761 more tweaks to HTML output when printing key bindings 2016-06-23 08:37:24 -04:00
791cff6f46 use new keyboard modifier names, and replace GDK names with better versions 2016-06-21 08:59:39 -04:00
ae4e84fd51 provide some Keyboard:: methods to get access to other versions of modifier names 2016-06-21 08:58:38 -04:00
10a4de1550 some modest improvements in the html rendering of key bindings, plus use of normal modifier names 2016-06-20 17:19:31 -04:00
0eb509ac2e remove debug output from Pane code 2016-06-14 11:46:24 -04:00
9142d1edf5 working version of pane position mgmt for OS X 2016-06-13 09:52:54 -04:00
ceb0bce971 write some code to limit pane handle positions on OS X.
So far untested, and uncompiled
2016-06-13 09:10:47 -04:00
8d17465016 give WindowProxy its own map/unmap signals so that other things can track map/unmap without accessing the Window 2016-06-12 22:49:15 -04:00
9a1c24dda7 fix thinko in Pane expose event handler.
There are always less dividers than children
2016-06-08 12:26:24 -04:00
83770f839b minor optimization when search for actions 2016-06-07 19:25:11 -04:00
73f3abedea make it possible to disable VisibilityTracker's use of WM visibility 2016-06-07 18:29:03 -04:00
9a50d15c7f fix crashing bug in Pane when accessing dividers 2016-06-06 16:05:43 -04:00
5700296cb6 add a destructor for Gtkmm2ext::Pane that unparents the children.
This seems to be required, although there is confusion in Gtkmm3 about this.
2016-06-06 16:05:25 -04:00
1550f3af35 NOOP: space required 2016-06-02 19:19:22 -04:00
a047d814f6 fix case where pane divider is not redrawn after a leave event. 2016-06-01 22:30:17 -04:00
d680c1f1db fix styling of pane dividers (the original reason for the "*Pane*" widget=>style spec) 2016-06-01 22:23:34 -04:00
7d770293e9 Accommodate recently introduced source(s) in our MSVC project (gtkmm2ext) 2016-06-01 14:30:27 +01:00
761ce9c914 allow StripWidth icon to draw properly on non-square buttons 2016-06-01 03:06:14 +02:00
8c74a1b99c make pane divider placement a little safer 2016-05-31 15:30:45 -04:00
47b85c3845 fix default pane divider cursor for vertical panes 2016-05-31 15:30:45 -04:00
4ef8e862b3 shrink down pane divider/handle width 2016-05-31 15:30:45 -04:00
0baedac4f4 fix pane behaviour when children are hidden/shown 2016-05-31 15:30:45 -04:00
229b026356 explicitly expose dividers
hmm, seems important to understand how this worked before
2016-05-31 15:30:45 -04:00
7c6cfd9fa0 more sensible API for Pane::set_child_minsize 2016-05-31 15:30:45 -04:00
d8b02be745 provide a mechanism to avoid allocating too small of a space to a Pane child
Gtk::Notebook throws an assertion if allocated too small a space during drawing (at least with Clearlooks)
2016-05-31 15:30:45 -04:00
067616a84f various work on Pane, including cursors, more styling stuff, and making the forall_vfunc safe against gtk_container_remove 2016-05-31 15:30:45 -04:00
9694a3181b Pane: use style-provided colors, and change colors on enter/leave/dragging 2016-05-31 15:30:45 -04:00
3c4503a849 fix use of widget allocation origin in Gtkm2mext::Pane 2016-05-31 15:30:45 -04:00
29b9c4ecc3 set default pane divider position to 0.5 2016-05-31 15:30:45 -04:00
ce68505a51 working but incomplete version of new Pane replacement widget 2016-05-31 15:30:45 -04:00
405fda66f7 basics of printing bindings as HTML 2016-05-31 15:30:44 -04:00
a48fada3c7 move new fractional pane utility functions into libs/gtkmm2ext 2016-05-31 15:30:41 -04:00
3daad04936 don't force size allocation to recompute pixfader patterns unless size actually changes 2016-05-31 15:30:38 -04:00
5c658db4bf most of the changes required to add a new master faders tabbable
the visibility button isn't actually working correctly
2016-05-31 15:30:38 -04:00
1f17784ac5 fix potential undefined DnD behavior for external drags
dragging from the tree-view (e.g. favorite sidebar or plugin-manager)
will not set _drag_source.
drag-motion may wrongly interpret it as "re-order".
2016-05-24 17:58:24 +02:00
b0200b23f2 Accommodate the fact that 'msvc_resources.rc.in' got moved to a new path 2016-05-21 10:33:18 +01:00
e610916c26 updated .de translation from edogawa 2016-05-16 10:36:33 -04:00
4963d65206 track geometry via configure events for tabbable own-windows 2016-05-10 09:46:12 -04:00
864f9e497d DnDTreeview: allow to handle multiple drag-targets 2016-05-06 14:51:29 +02:00
17ace643e4 OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one) 2016-05-04 23:09:45 -04:00