Skip to content

Commit a49e736

Browse files
committed
GNOME - Port to AdwOverlaySplitView
1 parent a5ca3cd commit a49e736

File tree

3 files changed

+28
-19
lines changed

3 files changed

+28
-19
lines changed

NickvisionMoney.GNOME/Blueprints/account_view.blp

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,23 @@ menu actionsMenu {
3131
}
3232
}
3333

34-
Adw.Bin _root {
35-
Adw.Flap _flap {
36-
flap: Gtk.ScrolledWindow _paneScroll {
37-
width-request: 360;
34+
Adw.BreakpointBin _root {
35+
width-request: 360;
36+
height-request: 420;
37+
38+
Adw.Breakpoint {
39+
condition ("max-width: 660sp")
40+
41+
setters {
42+
_splitView.collapsed: true;
43+
}
44+
}
45+
46+
child: Adw.OverlaySplitView _splitView {
47+
min-sidebar-width: 320;
48+
max-sidebar-width: 360;
49+
50+
sidebar: Gtk.ScrolledWindow _paneScroll {
3851
hscrollbar-policy: never;
3952

4053
Gtk.Box {
@@ -308,13 +321,7 @@ Adw.Bin _root {
308321
}
309322
}
310323
}
311-
}
312-
313-
styles ["background"]
314-
};
315-
316-
separator: Gtk.Separator {
317-
orientation: vertical;
324+
}
318325
};
319326

320327
content: Gtk.Overlay {
@@ -487,5 +494,5 @@ Adw.Bin _root {
487494
styles ["pill", "suggested-action"]
488495
}
489496
};
490-
}
497+
};
491498
}

NickvisionMoney.GNOME/Blueprints/window.blp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ Adw.ApplicationWindow _root {
1818
width-request: 360;
1919

2020
Adw.ToolbarView {
21+
top-bar-style: raised;
22+
2123
[top]
2224
Adw.HeaderBar _headerBar {
2325
title-widget: Adw.WindowTitle _windowTitle {};

NickvisionMoney.GNOME/Views/AccountView.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using Nickvision.GirExt;
1+
using Nickvision.GirExt;
22
using NickvisionMoney.GNOME.Controls;
33
using NickvisionMoney.GNOME.Helpers;
44
using NickvisionMoney.Shared.Controllers;
@@ -19,7 +19,7 @@ namespace NickvisionMoney.GNOME.Views;
1919
/// <summary>
2020
/// The AccountView for the application
2121
/// </summary>
22-
public partial class AccountView : Adw.Bin
22+
public partial class AccountView : Adw.BreakpointBin
2323
{
2424
[StructLayout(LayoutKind.Sequential)]
2525
public struct MoneyDateTime
@@ -57,7 +57,7 @@ public struct MoneyDateTime
5757
private Dictionary<uint, TransactionRow> _transactionRows;
5858
private uint _currentGraphPage;
5959

60-
[Gtk.Connect] private readonly Adw.Flap _flap;
60+
[Gtk.Connect] private readonly Adw.OverlaySplitView _splitView;
6161
[Gtk.Connect] private readonly Gtk.ScrolledWindow _paneScroll;
6262
[Gtk.Connect] private readonly Gtk.SearchEntry _searchDescriptionEntry;
6363
[Gtk.Connect] private readonly Gtk.Label _totalLabel;
@@ -144,7 +144,7 @@ public AccountView(Gtk.Builder builder, AccountViewController controller, MainWi
144144
};
145145
//Build UI
146146
builder.Connect(this);
147-
btnFlapToggle.BindProperty("active", _flap, "reveal-flap", GObject.BindingFlags.Bidirectional | GObject.BindingFlags.SyncCreate);
147+
btnFlapToggle.BindProperty("active", _splitView, "show-sidebar", GObject.BindingFlags.Bidirectional | GObject.BindingFlags.SyncCreate);
148148
btnGraphToggle.BindProperty("active", _visualizeGroup, "visible", GObject.BindingFlags.Bidirectional | GObject.BindingFlags.SyncCreate);
149149
btnGraphToggle.BindProperty("active", _visualizeSeparator, "visible", GObject.BindingFlags.Bidirectional | GObject.BindingFlags.SyncCreate);
150150
//Search Description Text
@@ -342,7 +342,7 @@ public AccountView(Gtk.Builder builder, AccountViewController controller, MainWi
342342
Page.SetTitle(_controller.AccountTitle);
343343
//Action Map
344344
var actionMap = Gio.SimpleActionGroup.New();
345-
_flap.InsertActionGroup("account", actionMap);
345+
_splitView.InsertActionGroup("account", actionMap);
346346
//New Transaction Action
347347
var actNewTransaction = Gio.SimpleAction.New("newTransaction", null);
348348
actNewTransaction.OnActivate += NewTransaction;
@@ -381,7 +381,7 @@ public AccountView(Gtk.Builder builder, AccountViewController controller, MainWi
381381
actionMap.AddAction(actAccountSettings);
382382
//Toggle Sidebar Action
383383
var actToggleSidebar = Gio.SimpleAction.New("toggleSidebar", null);
384-
actToggleSidebar.OnActivate += (sender, e) => _flap.SetRevealFlap(!_flap.GetRevealFlap());
384+
actToggleSidebar.OnActivate += (sender, e) => _splitView.SetCollapsed(!_splitView.GetCollapsed());
385385
actionMap.AddAction(actToggleSidebar);
386386
//Shortcut Controller
387387
_shortcutController = Gtk.ShortcutController.New();
@@ -391,7 +391,7 @@ public AccountView(Gtk.Builder builder, AccountViewController controller, MainWi
391391
_shortcutController.AddShortcut(Gtk.Shortcut.New(Gtk.ShortcutTrigger.ParseString("<Ctrl>G"), Gtk.NamedAction.New("account.newGroup")));
392392
_shortcutController.AddShortcut(Gtk.Shortcut.New(Gtk.ShortcutTrigger.ParseString("<Ctrl><Shift>N"), Gtk.NamedAction.New("account.newTransaction")));
393393
_shortcutController.AddShortcut(Gtk.Shortcut.New(Gtk.ShortcutTrigger.ParseString("F9"), Gtk.NamedAction.New("account.toggleSidebar")));
394-
_flap.AddController(_shortcutController);
394+
_splitView.AddController(_shortcutController);
395395
}
396396

397397
/// <summary>

0 commit comments

Comments
 (0)