Skip to content

Commit

Permalink
MainWindow: Use Hdy.Tab* instead of Granite.Widgets.DynamicNotebook
Browse files Browse the repository at this point in the history
  • Loading branch information
ryonakano committed Aug 31, 2023
1 parent 01c7388 commit 178c885
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 13 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ You'll need the following dependencies:
* libgee-0.8-dev
* libgranite-dev (>= 5.4.0)
* libgtk-3-dev (>= 3.22)
* libhandy-1-dev (>= 1.2.0)
* meson (>= 0.59.0)
* valac

Expand Down
5 changes: 3 additions & 2 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,12 @@ executable(meson.project_name(),
config_file,
sources,
dependencies: [
dependency('gee-0.8'),
dependency('glib-2.0'),
dependency('gobject-2.0'),
dependency('gee-0.8'),
dependency('gtk+-3.0', version: '>=3.22'),
dependency('granite', version: '>=5.4.0'),
dependency('gtk+-3.0', version: '>=3.22'),
dependency('libhandy-1', version: '>=1.2.0'),
dependency('pango')
],
install: true,
Expand Down
29 changes: 18 additions & 11 deletions src/UI/MainWindow.vala
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,11 @@ public class Spreadsheet.UI.MainWindow : ApplicationWindow {
private Gtk.Box welcome_box;
private Gtk.Box recent_widgets_box;

public DynamicNotebook tabs {
get;
set;
default = new DynamicNotebook () { allow_restoring = false };
}
private Hdy.TabView tab_view = new Hdy.TabView ();

public Sheet active_sheet {
get {
ScrolledWindow scroll = (ScrolledWindow)tabs.current.page;
ScrolledWindow scroll = (ScrolledWindow)tab_view.selected_page.child;
Viewport vp = (Viewport)scroll.get_child ();
return (Sheet)vp.get_child ();
}
Expand All @@ -53,15 +49,15 @@ public class Spreadsheet.UI.MainWindow : ApplicationWindow {

header.set_titles (value.title, display_path == null ? _("Not saved yet") : display_path);

while (tabs.n_tabs > 0) {
tabs.remove_tab (tabs.get_tab_by_index (0));
while (tab_view.n_pages > 0) {
tab_view.close_page (tab_view.get_nth_page (0));
}

Sheet? last_sheet = null;
foreach (var page in value.pages) {
var scrolled = new Gtk.ScrolledWindow (null, null);
var viewport = new Gtk.Viewport (null, null);
viewport.set_size_request (tabs.get_allocated_width (), tabs.get_allocated_height ());
viewport.set_size_request (tab_view.get_allocated_width (), tab_view.get_allocated_height ());
scrolled.add (viewport);

var sheet = new Sheet (page, this);
Expand Down Expand Up @@ -106,7 +102,8 @@ public class Spreadsheet.UI.MainWindow : ApplicationWindow {
viewport.add (sheet);
last_sheet = sheet;

tabs.insert_tab (new Tab (page.title, null, scrolled), 0);
var tabpage = tab_view.append (scrolled);
tabpage.title = page.title;
}
last_sheet.grab_focus ();
}
Expand Down Expand Up @@ -348,10 +345,20 @@ public class Spreadsheet.UI.MainWindow : ApplicationWindow {
private Box sheet () {
action_bar = new Widgets.ActionBar ();

var new_tab_button = new Gtk.Button.from_icon_name ("list-add-symbolic");

var tab_bar = new Hdy.TabBar () {
view = tab_view,
autohide = false,
expand_tabs = false,
start_action_widget = new_tab_button
};

var layout = new Box (Orientation.VERTICAL, 0);
layout.homogeneous = false;
layout.pack_start (toolbar (), false);
layout.pack_start (tabs);
layout.pack_start (tab_bar, false);
layout.pack_start (tab_view);
layout.pack_end (action_bar, false);
return layout;
}
Expand Down

0 comments on commit 178c885

Please sign in to comment.