From 76c33f4680f52f4ebe4db1babe5e6d15b8d5d955 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 18 Nov 2025 10:58:13 -0700 Subject: [PATCH] add new UIConfiguration variable for default window position --- gtk2_ardour/editing_convert.h | 3 +++ gtk2_ardour/enums.cc | 10 +++++++++- gtk2_ardour/ui_config.h | 1 + gtk2_ardour/ui_config_vars.inc.h | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gtk2_ardour/editing_convert.h b/gtk2_ardour/editing_convert.h index 563cc4513b..02f6754439 100644 --- a/gtk2_ardour/editing_convert.h +++ b/gtk2_ardour/editing_convert.h @@ -22,6 +22,7 @@ #include "pbd/enum_convert.h" +#include "ytkmm/enums.h" #include "editing.h" namespace PBD { @@ -36,6 +37,8 @@ DEFINE_ENUM_CONVERT(Editing::NoteNameDisplay) DEFINE_ENUM_CONVERT(Editing::MarkerClickBehavior) DEFINE_ENUM_CONVERT(Editing::RegionEditDisposition) +DEFINE_ENUM_CONVERT(Gtk::WindowPosition) + } // namespace PBD #endif // GTK_ARDOUR_EDITING_CONVERT_H diff --git a/gtk2_ardour/enums.cc b/gtk2_ardour/enums.cc index 283071d9ff..859a800c16 100644 --- a/gtk2_ardour/enums.cc +++ b/gtk2_ardour/enums.cc @@ -59,11 +59,12 @@ setup_gtk_ardour_enums () StartupFSM::MainState startup_state; StartupFSM::DialogID startup_dialog; Gtk::ResponseType dialog_response; + Gtk::WindowPosition window_position; AddRouteDialog::TypeWanted type_wanted; NoteNameDisplay note_name_display; MarkerClickBehavior marker_click_behavior; RegionEditDisposition region_edit_disposition; - + #define REGISTER(e) enum_writer.register_distinct (typeid(e).name(), i, s); i.clear(); s.clear() #define REGISTER_BITS(e) enum_writer.register_bits (typeid(e).name(), i, s); i.clear(); s.clear() #define REGISTER_ENUM(e) i.emplace_back (e); s.emplace_back (#e) @@ -234,6 +235,13 @@ setup_gtk_ardour_enums () REGISTER_ENUM (RESPONSE_HELP); REGISTER (dialog_response); + REGISTER_ENUM (WIN_POS_NONE); + REGISTER_ENUM (WIN_POS_CENTER); + REGISTER_ENUM (WIN_POS_MOUSE); + REGISTER_ENUM (WIN_POS_CENTER_ALWAYS); + REGISTER_ENUM (WIN_POS_CENTER_ON_PARENT); + REGISTER (window_position); + REGISTER_CLASS_ENUM (AddRouteDialog, AudioTrack); REGISTER_CLASS_ENUM (AddRouteDialog, MidiTrack); REGISTER_CLASS_ENUM (AddRouteDialog, AudioBus); diff --git a/gtk2_ardour/ui_config.h b/gtk2_ardour/ui_config.h index df3e571015..c691ae84eb 100644 --- a/gtk2_ardour/ui_config.h +++ b/gtk2_ardour/ui_config.h @@ -28,6 +28,7 @@ #include #include +#include "ytkmm/enums.h" #include "ardour/types.h" // required for operators used in pbd/configuration_variable.h #include "ardour/types_convert.h" diff --git a/gtk2_ardour/ui_config_vars.inc.h b/gtk2_ardour/ui_config_vars.inc.h index 20091ebbd7..bd86f2af3f 100644 --- a/gtk2_ardour/ui_config_vars.inc.h +++ b/gtk2_ardour/ui_config_vars.inc.h @@ -163,6 +163,7 @@ UI_CONFIG_VARIABLE (bool, update_action_scripts, "update-action-scripts", true) UI_CONFIG_VARIABLE (bool, use_cocoa_invalidation, "use-cocoa-invalidation", true) UI_CONFIG_VARIABLE (Editing::RegionEditDisposition, region_edit_disposition, "region-edit-disposition", Editing::PreferBottomPane) UI_CONFIG_VARIABLE (int, drag_sensitivity, "drag-sensitivity", 1) +UI_CONFIG_VARIABLE (Gtk::WindowPosition, default_window_position, "default-window-position", Gtk::WIN_POS_MOUSE) /* these are visibility-type selections in the New Track dialog that we should make persistent for the user's choices */ UI_CONFIG_VARIABLE (bool, show_on_cue_page, "show-on-cue-page", true)