Search in sources :

Example 6 with ID

use of com.intellij.ui.mac.foundation.ID in project intellij-community by JetBrains.

the class MacEmojiAndSymbolsInputAction method actionPerformed.

@Override
public void actionPerformed(AnActionEvent e) {
    if (!SystemInfo.isMac)
        return;
    Foundation.executeOnMainThread(false, false, () -> {
        ID app = Foundation.invoke("NSApplication", "sharedApplication");
        Foundation.invoke(app, "orderFrontCharacterPalette:", (Object) null);
    });
}
Also used : ID(com.intellij.ui.mac.foundation.ID)

Example 7 with ID

use of com.intellij.ui.mac.foundation.ID in project intellij-community by JetBrains.

the class MacHelpUtil method invokeHelp.

static boolean invokeHelp(@NonNls @Nullable String id) {
    if (id == null || "top".equals(id))
        id = "startpage";
    ID mainBundle = Foundation.invoke("NSBundle", "mainBundle");
    ID helpBundle = Foundation.invoke(mainBundle, "objectForInfoDictionaryKey:", Foundation.nsString("CFBundleHelpBookName"));
    if (helpBundle.equals(ID.NIL)) {
        return false;
    }
    ID helpManager = Foundation.invoke("NSHelpManager", "sharedHelpManager");
    Foundation.invoke(helpManager, "openHelpAnchor:inBook:", Foundation.nsString(id), helpBundle);
    return true;
}
Also used : ID(com.intellij.ui.mac.foundation.ID)

Example 8 with ID

use of com.intellij.ui.mac.foundation.ID in project intellij-community by JetBrains.

the class MacMainFrameDecorator method createProtocolHandler.

private static void createProtocolHandler() {
    if (ourProtocolHandler == null) {
        // install uri handler
        final ID mainBundle = invoke("NSBundle", "mainBundle");
        final ID urlTypes = invoke(mainBundle, "objectForInfoDictionaryKey:", Foundation.nsString("CFBundleURLTypes"));
        final ApplicationInfoEx info = ApplicationInfoImpl.getShadowInstance();
        final BuildNumber build = info != null ? info.getBuild() : null;
        if (urlTypes.equals(ID.NIL) && build != null && !build.isSnapshot()) {
            LOG.warn("no url bundle present. \n" + "To use platform protocol handler to open external links specify required protocols in the mac app layout section of the build file\n" + "Example: args.urlSchemes = [\"your-protocol\"] will handle following links: your-protocol://open?file=file&line=line");
            return;
        }
        ourProtocolHandler = new CustomProtocolHandler();
        Application.getApplication().setOpenURIHandler(new OpenURIHandler() {

            @Override
            public void openURI(AppEvent.OpenURIEvent event) {
                ourProtocolHandler.openLink(event.getURI());
            }
        });
    }
}
Also used : ApplicationInfoEx(com.intellij.openapi.application.ex.ApplicationInfoEx) BuildNumber(com.intellij.openapi.util.BuildNumber) CustomProtocolHandler(com.intellij.ui.CustomProtocolHandler) ID(com.intellij.ui.mac.foundation.ID)

Example 9 with ID

use of com.intellij.ui.mac.foundation.ID in project intellij-community by JetBrains.

the class MacMainFrameDecorator method replaceNativeFullscreenListenerCallback.

private void replaceNativeFullscreenListenerCallback() {
    ID awtWindow = Foundation.getObjcClass("AWTWindow");
    Pointer windowWillEnterFullScreenMethod = Foundation.createSelector("windowWillEnterFullScreen:");
    ID originalWindowWillEnterFullScreen = Foundation.class_replaceMethod(awtWindow, windowWillEnterFullScreenMethod, windowWillEnterFullScreenCallBack, "v@::@");
    Foundation.addMethodByID(awtWindow, Foundation.createSelector("oldWindowWillEnterFullScreen:"), originalWindowWillEnterFullScreen, "v@::@");
    Pointer windowWillExitFullScreenMethod = Foundation.createSelector("windowWillExitFullScreen:");
    ID originalWindowWillExitFullScreen = Foundation.class_replaceMethod(awtWindow, windowWillExitFullScreenMethod, windowWillExitFullScreenCallBack, "v@::@");
    Foundation.addMethodByID(awtWindow, Foundation.createSelector("oldWindowWillExitFullScreen:"), originalWindowWillExitFullScreen, "v@::@");
}
Also used : Pointer(com.sun.jna.Pointer) ID(com.intellij.ui.mac.foundation.ID)

Example 10 with ID

use of com.intellij.ui.mac.foundation.ID in project intellij-community by JetBrains.

the class Growl method getApplicationIcon.

private static ID getApplicationIcon() {
    final ID sharedApp = invoke("NSApplication", "sharedApplication");
    final ID nsImage = invoke(sharedApp, "applicationIconImage");
    return invoke(nsImage, "TIFFRepresentation");
}
Also used : ID(com.intellij.ui.mac.foundation.ID)

Aggregations

ID (com.intellij.ui.mac.foundation.ID)13 Foundation (com.intellij.ui.mac.foundation.Foundation)3 ApplicationInfoEx (com.intellij.openapi.application.ex.ApplicationInfoEx)1 BuildNumber (com.intellij.openapi.util.BuildNumber)1 CustomProtocolHandler (com.intellij.ui.CustomProtocolHandler)1 Pointer (com.sun.jna.Pointer)1 ColorSpace (java.awt.color.ColorSpace)1 BufferedImage (java.awt.image.BufferedImage)1 ColorConvertOp (java.awt.image.ColorConvertOp)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 ByteBuffer (java.nio.ByteBuffer)1 Nullable (org.jetbrains.annotations.Nullable)1