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);
});
}
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;
}
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());
}
});
}
}
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@::@");
}
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");
}
Aggregations