aboutsummaryrefslogtreecommitdiff
path: root/parrot_zik/indicator/mac.py
diff options
context:
space:
mode:
authorMarek Siarkowicz <mareksiarkowicz@gmail.com>2015-06-15 13:20:28 +0200
committerMarek Siarkowicz <mareksiarkowicz@gmail.com>2015-06-15 13:20:28 +0200
commitdf5aa3102f9d0257224ee9423afdfd42f00592ac (patch)
tree7c2ca93154b9c18f37cb2b700dd30585751fece1 /parrot_zik/indicator/mac.py
parent65f9c06e00c78c382451458ea1d8a9dad1016fb0 (diff)
downloadpyParrotZikTCP-df5aa3102f9d0257224ee9423afdfd42f00592ac.tar.xz
pyParrotZikTCP-df5aa3102f9d0257224ee9423afdfd42f00592ac.zip
Refactor. Move.
Diffstat (limited to 'parrot_zik/indicator/mac.py')
-rw-r--r--parrot_zik/indicator/mac.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/parrot_zik/indicator/mac.py b/parrot_zik/indicator/mac.py
new file mode 100644
index 0000000..8fdd1e6
--- /dev/null
+++ b/parrot_zik/indicator/mac.py
@@ -0,0 +1,66 @@
+import os
+import sys
+
+from Foundation import *
+from AppKit import *
+from PyObjCTools import AppHelper
+
+from .base import BaseIndicator
+from .base import MenuItemBase
+from ..status_app_mac import StatusApp
+
+
+class DarwinIndicator(BaseIndicator):
+ def __init__(self, icon, menu):
+ self.icon_directory = os.path.join(
+ os.path.dirname(os.path.realpath(sys.argv[0])), 'share', 'icons', 'zik')
+ statusicon = StatusApp.sharedApplication()
+ statusicon.initMenu(menu)
+ super(DarwinIndicator, self).__init__(icon, menu, statusicon)
+
+ def setIcon(self, name):
+ self.statusicon.setIcon(name, self.icon_directory)
+
+ def main(self):
+ AppHelper.runEventLoop()
+
+ def show_about_dialog(self, widget):
+ pass
+
+
+class NSMenu(object):
+ def __init__(self):
+ self.actions = {}
+ self.menubarMenu = NSMenu.alloc().init()
+ self.menubarMenu.setAutoenablesItems_(False)
+
+ def append(self, menu_item):
+ self.actions[menu_item.title] = menu_item.action
+ self.menubarMenu.addItem_(menu_item.nsmenu_item)
+
+ def reposition(self):
+ # TODO
+ pass
+
+
+class NSMenuItem(MenuItemBase):
+ def __init__(self, name, action, sensitive=True, checkitem=False, visible=True):
+ self.title = name
+ self.action = action
+ nsmenu_item = (
+ NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(
+ name, 'clicked:', ''))
+ super(NSMenuItem, self).__init__(nsmenu_item, sensitive, visible)
+
+ def set_sensitive(self, option):
+ self.base_item.setEnabled_(option)
+
+ def set_active(self, option):
+ self.base_item.setState_(option)
+
+ def get_active(self):
+ return self.base_item.state
+
+ def set_label(self, option):
+ self.title = option
+ self.base_item.setTitle_(option)