1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
import os
import sys
from Foundation import *
from AppKit import *
from PyObjCTools import AppHelper
from parrot_zik.indicator.base import BaseIndicator
from parrot_zik.indicator.base import MenuItemBase
from parrot_zik.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)
@classmethod
def main(cls):
AppHelper.runEventLoop()
def show_about_dialog(self, widget):
pass
def quit(self, _):
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)
|