Commit fe4fd6ee authored by Canek Peláez's avatar Canek Peláez
Browse files

application-window: Add stack child, and implement open() method.

parent fce6067f
Loading
Loading
Loading
Loading
+28 −0
Original line number Original line Diff line number Diff line
@@ -3,11 +3,39 @@ namespace Example {
    [GtkTemplate (ui = "/org/gtk/exampleapp/window.ui")]
    [GtkTemplate (ui = "/org/gtk/exampleapp/window.ui")]
    public class ApplicationWindow : Gtk.ApplicationWindow {
    public class ApplicationWindow : Gtk.ApplicationWindow {


        [GtkChild]
        private Gtk.Stack stack;

        public ApplicationWindow (Gtk.Application application) {
        public ApplicationWindow (Gtk.Application application) {
            GLib.Object (application: application);
            GLib.Object (application: application);
        }
        }


        public void open (GLib.File file) {
        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);
            }
        }
        }
    }
    }
}
}