diff --git a/src/application-window.vala b/src/application-window.vala index 2bb3ea29ea308c7bc6dbda31e83cdffed030f180..ad21853e4a09aee8181ee35532d6bb71d7a401a2 100644 --- a/src/application-window.vala +++ b/src/application-window.vala @@ -3,11 +3,39 @@ namespace Example { [GtkTemplate (ui = "/org/gtk/exampleapp/window.ui")] public class ApplicationWindow : Gtk.ApplicationWindow { + [GtkChild] + private Gtk.Stack stack; + public ApplicationWindow (Gtk.Application application) { GLib.Object (application: application); } public void open (GLib.File file) { + var basename = file.get_basename (); + + var scrolled = new Gtk.ScrolledWindow (null, null); + scrolled.show (); + scrolled.hexpand = true; + scrolled.vexpand = true; + + var view = new Gtk.TextView (); + view.editable = false; + view.cursor_visible = false; + view.show (); + + scrolled.add (view); + stack.add_titled (scrolled, basename, basename); + + try { + uint8[] contents; + if (file.load_contents (null, out contents, null)) { + var buffer = view.get_buffer (); + buffer.set_text ((string)contents); + } + } catch (GLib.Error e) { + GLib.warning ("There was an error loading '%s': %s", + basename, e.message); + } } } }