import objc as _objc
from _Foundation import *

NSClassFromString = _objc.lookUpClass

# Do something smart to collect Foundation classes...

if _objc.platform == 'MACOSX':
    _objc.loadBundle(
        'Foundation',
        globals(),
        bundle_identifier=u'com.apple.Foundation',
    )
else:
    _objc.loadBundle(
        'Foundation',
        globals(),
        bundle_path=_objc.pathForFramework(
            u'/System/Library/Frameworks/Foundation.framework',
        ),
    )

def _initialize():
    import sys, os
    if 'PYOBJCFRAMEWORKS' in os.environ:
        paths = os.environ['PYOBJCFRAMEWORKS'].split(":")
        count = 0
        for path in paths:
            bundle = NSBundle.bundleWithPath_(path)
            bundle.principalClass()
            sys.path.insert(count, str(bundle.resourcePath()))
            count = count + 1

            initPath = bundle.pathForResource_ofType_( "Init", "py")
            if initPath:
                execfile(initPath, globals(), locals())

_initialize()

import protocols  # no need to export these, just register with PyObjC

#
# (informal) protocols eported for b/w compatibility
#
from protocols import NSConnectionDelegateMethods, \
                      NSDistantObjectRequestMethods, \
                      NSCopyLinkMoveHandler, NSKeyedArchiverDelegate, \
                      NSKeyedUnarchiverDelegate, NSNetServiceDelegateMethods, \
                      NSNetServiceBrowserDelegateMethods, NSPortDelegateMethods
