From 1ada80cd6d1a36008be9b81ba65239ea838a97e4 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Tue, 30 Dec 2014 18:40:19 +0800 Subject: [PATCH] gui: add icon and app title --- artiq/gui/icon.png | Bin 0 -> 13730 bytes artiq/gui/scheduler.py | 6 +++--- artiq/gui/tools.py | 13 +++++++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 artiq/gui/icon.png create mode 100644 artiq/gui/tools.py diff --git a/artiq/gui/icon.png b/artiq/gui/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..33c071886b3da87c51f7cfaad0dde65b4cb82551 GIT binary patch literal 13730 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 Fe*lkXeuMx3 literal 0 HcmV?d00001 diff --git a/artiq/gui/scheduler.py b/artiq/gui/scheduler.py index 46bca03f6..e00fd0ebd 100644 --- a/artiq/gui/scheduler.py +++ b/artiq/gui/scheduler.py @@ -3,6 +3,7 @@ import asyncio from gi.repository import Gtk +from artiq.gui.tools import Window from artiq.management.sync_struct import Subscriber @@ -77,10 +78,9 @@ class _PeriodicStoreSyncer: del self.order[i] -class SchedulerWindow(Gtk.Window): +class SchedulerWindow(Window): def __init__(self): - Gtk.Window.__init__(self, title="Scheduler") - self.set_border_width(6) + Window.__init__(self, title="Scheduler") self.set_default_size(720, 570) vpane = Gtk.VPaned() diff --git a/artiq/gui/tools.py b/artiq/gui/tools.py new file mode 100644 index 000000000..17012b29b --- /dev/null +++ b/artiq/gui/tools.py @@ -0,0 +1,13 @@ +import os + +from gi.repository import Gtk + + +data_dir = os.path.abspath(os.path.dirname(__file__)) + +class Window(Gtk.Window): + def __init__(self, *args, **kwargs): + Gtk.Window.__init__(self, *args, **kwargs) + self.set_wmclass("ARTIQ GUI", "ARTIQ GUI") + self.set_icon_from_file(os.path.join(data_dir, "icon.png")) + self.set_border_width(6)