using Adw; namespace Keychain.UI; public class AddShortcutWindow { public Window Window { get; } private EntryRow? pathEntry; private Gtk.Button? browseButton; public AddShortcutWindow() { var builder = new Gtk.Builder("Keychain.UI.AddShortcutWindow.AddShortcutWindow.xml"); var window = builder.GetObject("add_shortcut_window") as Window; if (window == null) { throw new Exception("Failed to load embedded resource AddShortcutWindow.xml"); } Window = window; browseButton = builder.GetObject("folder_browse_button") as Gtk.Button; if (browseButton == null) { throw new Exception("Failed to load UI element with ID: folder_browse_button"); } browseButton.OnClicked += BrowseFolder; } private async void BrowseFolder(object sender, EventArgs e) { var fileDialog = new Gtk.FileDialog(); var selectedFolder = await fileDialog.SelectFolderAsync(Window); if (selectedFolder != null) { var buttonContent = (ButtonContent)browseButton.Child; buttonContent.Label = selectedFolder.GetPath(); } } }