Warning, /frameworks/kio/src/kiod/kiod_agent.mm is written in an unsupported language. File is not indexed.
0001 /* This file is part of the KDE libraries
0002 SPDX-FileCopyrightText: 2017 René J.V. Bertin
0003
0004 SPDX-License-Identifier: LGPL-2.0-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006
0007 #import <CoreFoundation/CoreFoundation.h>
0008 #import <AppKit/AppKit.h>
0009
0010 // Set the LaunchServices LSUIElement property programmatically in unbundled
0011 // ("nongui") executables, instead of in the app bundle's Info.plist file.
0012 // This function has to be called as early as possible in main(), and before
0013 // creating the QApplication instance.
0014 void makeAgentApplication()
0015 {
0016 CFBundleRef mainBundle = CFBundleGetMainBundle();
0017 if (mainBundle) {
0018 // get the application's Info Dictionary. For app bundles this would live in the bundle's Info.plist,
0019 // for regular executables it is obtained in another way.
0020 CFMutableDictionaryRef infoDict = (CFMutableDictionaryRef) CFBundleGetInfoDictionary(mainBundle);
0021 if (infoDict) {
0022 // Add or set the "LSUIElement" key with/to value "1". This can simply be a CFString.
0023 CFDictionarySetValue(infoDict, CFSTR("LSUIElement"), CFSTR("1"));
0024 // That's it. We're now considered as an "agent" by the window server, and thus will have
0025 // neither menubar nor presence in the Dock or App Switcher.
0026 }
0027 }
0028 }
0029
0030 void setAgentActivationPolicy()
0031 {
0032 [NSApp setActivationPolicy:NSApplicationActivationPolicyAccessory];
0033 }