def __init__(self, app): Gtk.ApplicationWindow.__init__(self, title=_("Clocks"), application=app, hide_titlebar_when_maximized=True) action = Gio.SimpleAction.new("new", None) action.connect("activate", self._on_new_activated) self.add_action(action) app.add_accelerator("<Primary>n", "win.new", None) action = Gio.SimpleAction.new("about", None) action.connect("activate", self._on_about_activated) self.add_action(action) css_provider = Gtk.CssProvider() css_provider.load_from_path(os.path.join(Dirs.get_data_dir(), "gtk-style.css")) context = Gtk.StyleContext() context.add_provider_for_screen(Gdk.Screen.get_default(), css_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER) self.set_size_request(640, 480) self.vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.embed = Embed(self.vbox) self.add(self.embed) self.notebook = Gtk.Notebook() self.notebook.set_show_tabs(False) self.notebook.set_show_border(False) self.world = World() self.alarm = Alarm() self.stopwatch = Stopwatch() self.timer = Timer() self.views = (self.world, self.alarm, self.stopwatch, self.timer) self.toolbar = ClocksToolbar(self.views, self.embed) self.vbox.pack_start(self.toolbar, False, False, 0) self.single_evbox = Gtk.EventBox() self.vbox.pack_end(self.notebook, True, True, 0) for view in self.views: self.notebook.append_page(view, None) self.notebook.append_page(self.single_evbox, None) self.world.connect("show-standalone", self._on_show_standalone) self.alarm.connect("show-standalone", self._on_show_standalone) self.toolbar.connect("view-clock", self._on_view_clock) self.vbox.show_all() self.show_all() self.toolbar.show_overview_toolbar()
class Window(Gtk.ApplicationWindow): def __init__(self, app): Gtk.ApplicationWindow.__init__(self, title=_("Clocks"), application=app, hide_titlebar_when_maximized=True) action = Gio.SimpleAction.new("new", None) action.connect("activate", self._on_new_activated) self.add_action(action) app.add_accelerator("<Primary>n", "win.new", None) action = Gio.SimpleAction.new("about", None) action.connect("activate", self._on_about_activated) self.add_action(action) css_provider = Gtk.CssProvider() css_provider.load_from_path(os.path.join(Dirs.get_data_dir(), "gtk-style.css")) context = Gtk.StyleContext() context.add_provider_for_screen(Gdk.Screen.get_default(), css_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER) self.set_size_request(640, 480) self.vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.embed = Embed(self.vbox) self.add(self.embed) self.notebook = Gtk.Notebook() self.notebook.set_show_tabs(False) self.notebook.set_show_border(False) self.world = World() self.alarm = Alarm() self.stopwatch = Stopwatch() self.timer = Timer() self.views = (self.world, self.alarm, self.stopwatch, self.timer) self.toolbar = ClocksToolbar(self.views, self.embed) self.vbox.pack_start(self.toolbar, False, False, 0) self.single_evbox = Gtk.EventBox() self.vbox.pack_end(self.notebook, True, True, 0) for view in self.views: self.notebook.append_page(view, None) self.notebook.append_page(self.single_evbox, None) self.world.connect("show-standalone", self._on_show_standalone) self.alarm.connect("show-standalone", self._on_show_standalone) self.toolbar.connect("view-clock", self._on_view_clock) self.vbox.show_all() self.show_all() self.toolbar.show_overview_toolbar() def show_clock(self, view): self.toolbar.activate_view(view) def _on_show_standalone(self, widget, d): def show_standalone_page(): widget = d.get_standalone_widget() self.toolbar.show_standalone_toolbar(widget) self.single_evbox.add(widget) self.notebook.set_current_page(-1) if self.notebook.get_current_page() != len(self.views): self.embed.spotlight(show_standalone_page) def _on_view_clock(self, button, view): def show_clock_view(): for child in self.single_evbox.get_children(): self.single_evbox.remove(child) view.unselect_all() self.notebook.set_current_page(self.views.index(view)) self.toolbar.show_overview_toolbar() if self.single_evbox.get_children(): self.embed.spotlight(show_clock_view) else: show_clock_view() def _on_new_activated(self, action, param): self.toolbar.current_view.open_new_dialog() def _on_about_activated(self, action, param): about = Gtk.AboutDialog() about.set_title(_("About Clocks")) about.set_program_name(_("GNOME Clocks")) about.set_logo_icon_name("clocks") about.set_version(__version__) about.set_copyright(COPYRIGHTS) about.set_comments( _("Utilities to help you with the time.")) about.set_authors(AUTHORS) about.set_translator_credits(_("translator-credits")) about.set_website("http://live.gnome.org/GnomeClocks") about.set_website_label(_("GNOME Clocks")) about.set_wrap_license("true") about.set_license_type(Gtk.License.GPL_2_0) about.set_license("GNOME Clocks is free software;" " you can redistribute it and/or modify it under the terms" " of the GNU General Public License as published by the" " Free Software Foundation; either version 2 of the" " License, or (at your option) any later version.\n" " \n" "GNOME Clocks is distributed in the hope that it will be" " useful, but WITHOUT ANY WARRANTY; without even the" " implied warranty of MERCHANTABILITY or FITNESS FOR" " A PARTICULAR PURPOSE. See the GNU General Public" " License for more details.\n" " \n" "You should have received a copy of the GNU General" " Public License along with GNOME Clocks; if not, write" " to the Free Software Foundation, Inc., 51 Franklin" " Street, Fifth Floor, Boston, MA 02110-1301 USA\n") about.connect("response", lambda w, r: about.destroy()) about.set_modal(True) about.set_transient_for(self) about.show()