aboutsummaryrefslogtreecommitdiffstats
path: root/lvc/widgets/osx/__init__.py
diff options
context:
space:
mode:
authorJesús Eduardo <heckyel@hyperbola.info>2017-09-11 17:47:17 -0500
committerJesús Eduardo <heckyel@hyperbola.info>2017-09-11 17:47:17 -0500
commit14738704ede6dfa6ac79f362a9c1f7f40f470cdc (patch)
tree31c83bdd188ae7b64d7169974d6f066ccfe95367 /lvc/widgets/osx/__init__.py
parenteb1896583afbbb622cadcde1a24e17173f61904f (diff)
downloadlibrevideoconverter-14738704ede6dfa6ac79f362a9c1f7f40f470cdc.tar.lz
librevideoconverter-14738704ede6dfa6ac79f362a9c1f7f40f470cdc.tar.xz
librevideoconverter-14738704ede6dfa6ac79f362a9c1f7f40f470cdc.zip
rename mvc at lvc
Diffstat (limited to 'lvc/widgets/osx/__init__.py')
-rw-r--r--lvc/widgets/osx/__init__.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/lvc/widgets/osx/__init__.py b/lvc/widgets/osx/__init__.py
new file mode 100644
index 0000000..86653eb
--- /dev/null
+++ b/lvc/widgets/osx/__init__.py
@@ -0,0 +1,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 lvc.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 lvc.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 lvc.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')