From df5aa3102f9d0257224ee9423afdfd42f00592ac Mon Sep 17 00:00:00 2001 From: Marek Siarkowicz Date: Mon, 15 Jun 2015 13:20:28 +0200 Subject: Refactor. Move. --- parrot_zik/indicator/linux.py | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 parrot_zik/indicator/linux.py (limited to 'parrot_zik/indicator/linux.py') diff --git a/parrot_zik/indicator/linux.py b/parrot_zik/indicator/linux.py new file mode 100644 index 0000000..cbec1dd --- /dev/null +++ b/parrot_zik/indicator/linux.py @@ -0,0 +1,44 @@ +import os + +import gtk + +from .base import BaseIndicator + + +class LinuxIndicator(BaseIndicator): + def __init__(self, icon, menu): + import appindicator + self.icon_directory = os.path.join('/', 'usr', 'share', 'icons', 'zik') + if not os.path.isdir(self.icon_directory): + self.icon_directory = os.path.join('share', 'icons', 'zik') + statusicon = appindicator.Indicator( + "new-parrotzik-indicator", "indicator-messages", + appindicator.CATEGORY_APPLICATION_STATUS) + statusicon.set_status(appindicator.STATUS_ACTIVE) + statusicon.set_icon_theme_path(self.icon_directory) + statusicon.set_menu(menu.gtk_menu) + super(LinuxIndicator, self).__init__(icon, menu, statusicon) + + def gtk_right_click_event(self, icon, button, time): + if not self.menu_shown: + self.menu_shown = True + self.menu.popup(None, None, gtk.status_icon_position_menu, + button, time, self.statusicon) + else: + self.menu_shown = False + self.menu.poVpdown() + + def setIcon(self, name): + self.statusicon.set_icon(name) + + def main(self): + gtk.main() + + def show_about_dialog(self, widget): + about_dialog = gtk.AboutDialog() + about_dialog.set_destroy_with_parent(True) + about_dialog.set_name("Parrot Zik Tray") + about_dialog.set_version("0.3") + about_dialog.set_authors(["Dmitry Moiseev m0sia@m0sia.ru"]) + about_dialog.run() + about_dialog.destroy() -- cgit v1.2.1 From 3b4f022722e43d5821f4d2276018242c88cb1ed3 Mon Sep 17 00:00:00 2001 From: Marek Siarkowicz Date: Mon, 15 Jun 2015 13:30:06 +0200 Subject: Fix quit wrapping. --- parrot_zik/indicator/linux.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'parrot_zik/indicator/linux.py') diff --git a/parrot_zik/indicator/linux.py b/parrot_zik/indicator/linux.py index cbec1dd..ff06587 100644 --- a/parrot_zik/indicator/linux.py +++ b/parrot_zik/indicator/linux.py @@ -34,6 +34,9 @@ class LinuxIndicator(BaseIndicator): def main(self): gtk.main() + def quit(self, _): + gtk.main_quit() + def show_about_dialog(self, widget): about_dialog = gtk.AboutDialog() about_dialog.set_destroy_with_parent(True) -- cgit v1.2.1 From f291feaa8a33645850818f811ba8d7f9eb9d4c31 Mon Sep 17 00:00:00 2001 From: Marek Siarkowicz Date: Mon, 15 Jun 2015 13:41:06 +0200 Subject: Refactor. --- parrot_zik/indicator/linux.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'parrot_zik/indicator/linux.py') diff --git a/parrot_zik/indicator/linux.py b/parrot_zik/indicator/linux.py index ff06587..fc0f425 100644 --- a/parrot_zik/indicator/linux.py +++ b/parrot_zik/indicator/linux.py @@ -31,7 +31,8 @@ class LinuxIndicator(BaseIndicator): def setIcon(self, name): self.statusicon.set_icon(name) - def main(self): + @classmethod + def main(cls): gtk.main() def quit(self, _): -- cgit v1.2.1 From e7089b04e59ae1cf7a24649ec2ef64af56eb7dce Mon Sep 17 00:00:00 2001 From: Marek Siarkowicz Date: Mon, 15 Jun 2015 17:46:22 +0200 Subject: Use absolute package imports. --- parrot_zik/indicator/linux.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'parrot_zik/indicator/linux.py') diff --git a/parrot_zik/indicator/linux.py b/parrot_zik/indicator/linux.py index fc0f425..278f781 100644 --- a/parrot_zik/indicator/linux.py +++ b/parrot_zik/indicator/linux.py @@ -2,7 +2,7 @@ import os import gtk -from .base import BaseIndicator +from parrot_zik.indicator.base import BaseIndicator class LinuxIndicator(BaseIndicator): -- cgit v1.2.1 From 4098b681ca9bc4b57e8283f6f21d139fc1c9940b Mon Sep 17 00:00:00 2001 From: Max Grishkin Date: Tue, 8 Dec 2015 23:44:28 +0300 Subject: Use gtk on linux --- parrot_zik/indicator/linux.py | 49 ++++++++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 14 deletions(-) (limited to 'parrot_zik/indicator/linux.py') diff --git a/parrot_zik/indicator/linux.py b/parrot_zik/indicator/linux.py index 278f781..f6f9cfc 100644 --- a/parrot_zik/indicator/linux.py +++ b/parrot_zik/indicator/linux.py @@ -6,17 +6,7 @@ from parrot_zik.indicator.base import BaseIndicator class LinuxIndicator(BaseIndicator): - def __init__(self, icon, menu): - import appindicator - self.icon_directory = os.path.join('/', 'usr', 'share', 'icons', 'zik') - if not os.path.isdir(self.icon_directory): - self.icon_directory = os.path.join('share', 'icons', 'zik') - statusicon = appindicator.Indicator( - "new-parrotzik-indicator", "indicator-messages", - appindicator.CATEGORY_APPLICATION_STATUS) - statusicon.set_status(appindicator.STATUS_ACTIVE) - statusicon.set_icon_theme_path(self.icon_directory) - statusicon.set_menu(menu.gtk_menu) + def __init__(self, icon, menu, statusicon): super(LinuxIndicator, self).__init__(icon, menu, statusicon) def gtk_right_click_event(self, icon, button, time): @@ -28,9 +18,6 @@ class LinuxIndicator(BaseIndicator): self.menu_shown = False self.menu.poVpdown() - def setIcon(self, name): - self.statusicon.set_icon(name) - @classmethod def main(cls): gtk.main() @@ -46,3 +33,37 @@ class LinuxIndicator(BaseIndicator): about_dialog.set_authors(["Dmitry Moiseev m0sia@m0sia.ru"]) about_dialog.run() about_dialog.destroy() + + +class LinuxAppIndicator(LinuxIndicator): + def __init__(self, icon, menu): + import appindicator + self.icon_directory = os.path.join('/', 'usr', 'share', 'icons', 'zik') + if not os.path.isdir(self.icon_directory): + self.icon_directory = os.path.join('share', 'icons', 'zik') + statusicon = appindicator.Indicator( + "new-parrotzik-indicator", "indicator-messages", + appindicator.CATEGORY_APPLICATION_STATUS) + statusicon.set_status(appindicator.STATUS_ACTIVE) + statusicon.set_icon_theme_path(self.icon_directory) + statusicon.set_menu(menu.gtk_menu) + super(LinuxIndicator, self).__init__(icon, menu, statusicon) + + def setIcon(self, name): + self.statusicon.set_icon(name) + + + +class LinuxGtkIndicator(LinuxIndicator): + def __init__(self, icon, menu): + self.icon_directory = os.path.join( + '/usr', 'share', 'icons/') + self.menu_shown = False + statusicon = gtk.StatusIcon() + statusicon.connect("popup-menu", self.gtk_right_click_event) + statusicon.set_tooltip("Parrot Zik") + super(LinuxIndicator, self).__init__(icon, menu, statusicon) + + def setIcon(self, name): + self.statusicon.set_from_file(self.icon_directory + name + '.png') + -- cgit v1.2.1