blob: f227b352e5bd783b6f3d8a6be0eac63244029d8d (
plain)
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
71
72
73
74
|
import sys
from objc import *
from Foundation import *
from AppKit import *
from PyObjCTools import AppHelper
size_request_manager = None
class AppController(NSObject):
def applicationDidFinishLaunching_(self, notification):
from mvc.widgets.osx.osxmenus import MenuBar
self.portableApp.menubar = MenuBar()
self.portableApp.startup()
self.portableApp.run()
def setPortableApp_(self, portableApp):
self.portableApp = portableApp
def handleMenuActivate_(self, menu_item):
from mvc.widgets.osx import osxmenus
osxmenus.handle_menu_activate(menu_item)
def initialize(app):
nsapp = NSApplication.sharedApplication()
delegate = AppController.alloc().init()
delegate.setPortableApp_(app)
nsapp.setDelegate_(delegate)
global size_request_manager
from mvc.widgets.osx.widgetupdates import SizeRequestManager
size_request_manager = SizeRequestManager()
NSApplicationMain(sys.argv)
def attach_menubar():
pass
def mainloop_start():
pass
def mainloop_stop():
NSApplication.sharedApplication().terminate_(nil)
def idle_add(callback, periodic=None):
def wrapper():
callback()
if periodic is not None:
AppHelper.callLater(periodic, wrapper)
if periodic is not None and periodic < 0:
raise ValueError('periodic cannot be negative')
# XXX: we have a lousy thread API that doesn't allocate pools for us...
pool = NSAutoreleasePool.alloc().init()
if periodic is not None:
AppHelper.callLater(periodic, wrapper)
else:
AppHelper.callAfter(wrapper)
del pool
def idle_remove(id_):
pass
def reveal_file(filename):
# XXX: dumb lousy type conversions ...
path = NSURL.fileURLWithPath_(filename.decode('utf-8')).path()
NSWorkspace.sharedWorkspace().selectFile_inFileViewerRootedAtPath_(
path, nil)
def get_conversion_directory():
url, error = NSFileManager.defaultManager().URLForDirectory_inDomain_appropriateForURL_create_error_(NSMoviesDirectory, NSUserDomainMask, nil, YES, None)
if error:
return None
return url.path().encode('utf-8')
|