def __init__(self, parent): Gtk.Dialog.__init__(self) self.set_default_size(420, 400) self.set_transient_for(parent) self.set_title(_("Terms of Use")) # buttons self.add_button(_("Decline"), Gtk.ResponseType.NO) self.add_button(_("Accept"), Gtk.ResponseType.YES) # label self.label = Gtk.Label(_(u"One moment, please\u2026")) self.label.show() # add the label box = self.get_action_area() box.pack_start(self.label, False, False, 0) box.set_child_secondary(self.label, True) # hrm, hrm, there really should be a better way for itm in box.get_children(): if itm.get_label() == _("Accept"): self.button_accept = itm break self.button_accept.set_sensitive(False) # webkit wb = ScrolledWebkitWindow() wb.show_all() self.webkit = wb.webkit self.webkit.connect("notify::load-status", self._on_load_status_changed) # content content = self.get_content_area() self.spinner = SpinnerNotebook(wb) self.spinner.show_all() content.pack_start(self.spinner, True, True, 0)
def _on_create_web_view(self, view, frame): win = Gtk.Window() win.set_size_request(400, 400) wk = ScrolledWebkitWindow(include_progress_ui=True) wk.webkit.connect("close-web-view", self._on_close_web_view) win.add(wk) win.show_all() # make sure close will work later wk.webkit.set_data("win", win) # find and set parent w = self.wk.get_parent() while w.get_parent(): w = w.get_parent() win.set_transient_for(w) return wk.webkit
def init_view(self): if self.wk is None: self.wk = ScrolledWebkitWindow() #self.wk.webkit.connect("new-window-policy-decision-requested", # self._on_new_window) self.wk.webkit.connect("create-web-view", self._on_create_web_view) self.wk.webkit.connect("close-web-view", self._on_close_web_view) self.wk.webkit.connect("console-message", self._on_console_message) # a possible way to do IPC (script or title change) self.wk.webkit.connect("script-alert", self._on_script_alert) self.wk.webkit.connect("title-changed", self._on_title_changed) self.wk.webkit.connect("notify::load-status", self._on_load_status_changed) # unblock signal handlers if needed when showing the purchase webkit # view in case they were blocked after a previous purchase was # completed or canceled self._unblock_wk_handlers()