123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- using Adw;
- using Gtk;
- namespace Publicate {
- public class ViewerWindow : Adw.ApplicationWindow {
- private Stack stack;
- private StartupMenu startup_menu;
- public PpubEditor editor {get; set;}
- public Ppub.Publication publication {get; set;}
- private SimpleAction extract_action;
- public ViewerWindow(Adw.Application app) {
- application = app;
- stack = new Stack();
- startup_menu = new StartupMenu(this);
- editor = new PpubEditor(this);
- default_height = 600;
- default_width = 800;
- content = stack;
- stack.add_child(startup_menu);
- stack.add_child(editor);
- stack.transition_type = StackTransitionType.CROSSFADE;
- var save_action = new SimpleAction("save", null);
- save_action.activate.connect(() => editor.save_tab.begin());
- add_action(save_action);
- add_binding_action(Gdk.Key.s, Gdk.ModifierType.CONTROL_MASK, "win.save", "Save current tab");
- }
- public async void open_ppub() throws Error {
- var dialog = new FileDialog();
- var filter = new FileFilter();
- var filters = new GLib.ListStore(Type.OBJECT);
- filters.append(filter);
- filter.add_pattern("*.ppub");
- filter.name = "Portable Publications";
- dialog.filters = filters;
- var file = yield dialog.open(this, null);
- if(file == null) {
- return;
- }
-
- yield load_ppub(file);
- }
- public async void load_ppub(File file) {
- stack.visible_child = editor;
- yield editor.load_ppub(file);
- }
- }
- }
|