Localizations (Spanish), Friends++, UI improvements
|
@ -25,6 +25,8 @@
|
|||
CD8641512CA161D500803551 /* Rules.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD8641502CA161D500803551 /* Rules.xib */; };
|
||||
CD8641552CA161DA00803551 /* StatusBarPopover.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD8641542CA161DA00803551 /* StatusBarPopover.xib */; };
|
||||
CD8641592CA161DF00803551 /* UpdateWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD8641582CA161DF00803551 /* UpdateWindow.xib */; };
|
||||
CD8641702CA1B5F300803551 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = CD86416E2CA1B5F300803551 /* InfoPlist.strings */; };
|
||||
CD8641802CA1F03E00803551 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = CD86417F2CA1F03E00803551 /* Localizable.xcstrings */; };
|
||||
CD8FD5D623BAE2D200EFE0FB /* PrefsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CD8FD5D423BAE2D200EFE0FB /* PrefsWindowController.m */; };
|
||||
CD8FD5F623C05AD900EFE0FB /* RuleRow.m in Sources */ = {isa = PBXBuildFile; fileRef = CD8FD5F023C05AD800EFE0FB /* RuleRow.m */; };
|
||||
CD8FD5F723C05AD900EFE0FB /* RuleRowCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CD8FD5F223C05AD800EFE0FB /* RuleRowCell.m */; };
|
||||
|
@ -85,6 +87,8 @@
|
|||
CD8641562CA161DA00803551 /* mul */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; name = mul; path = mul.lproj/StatusBarPopover.xcstrings; sourceTree = "<group>"; };
|
||||
CD8641572CA161DF00803551 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UpdateWindow.xib; sourceTree = "<group>"; };
|
||||
CD86415A2CA161DF00803551 /* mul */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; name = mul; path = mul.lproj/UpdateWindow.xcstrings; sourceTree = "<group>"; };
|
||||
CD86416F2CA1B5F300803551 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
CD86417F2CA1F03E00803551 /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = "<group>"; };
|
||||
CD8FD5D223BAE2D100EFE0FB /* PrefsWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrefsWindowController.h; sourceTree = "<group>"; };
|
||||
CD8FD5D423BAE2D200EFE0FB /* PrefsWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PrefsWindowController.m; sourceTree = "<group>"; };
|
||||
CD8FD5ED23C05AD800EFE0FB /* RuleRowCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RuleRowCell.h; sourceTree = "<group>"; };
|
||||
|
@ -137,6 +141,7 @@
|
|||
7D7755DA1F02E05B00D0017D = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CD86417F2CA1F03E00803551 /* Localizable.xcstrings */,
|
||||
CDE09AF12919829000561CFF /* Uninstaller */,
|
||||
7D3B75201F13356900568828 /* Shared */,
|
||||
7D7755E51F02E05B00D0017D /* Source */,
|
||||
|
@ -170,6 +175,7 @@
|
|||
CDCBF0DC26499DFF001D9F9A /* Event.h */,
|
||||
CDCBF0DD26499DFF001D9F9A /* Event.m */,
|
||||
7D7755F11F02E05B00D0017D /* Info.plist */,
|
||||
CD86416E2CA1B5F300803551 /* InfoPlist.strings */,
|
||||
CDC6098C263CB7EB006D1332 /* LogMonitor.h */,
|
||||
CDC6098D263CB7EB006D1332 /* LogMonitor.m */,
|
||||
CD86414C2CA161CF00803551 /* MainMenu.xib */,
|
||||
|
@ -281,6 +287,7 @@
|
|||
English,
|
||||
en,
|
||||
Base,
|
||||
es,
|
||||
);
|
||||
mainGroup = 7D7755DA1F02E05B00D0017D;
|
||||
productRefGroup = 7D7755E41F02E05B00D0017D /* Products */;
|
||||
|
@ -302,10 +309,12 @@
|
|||
CD6836682391DB6F00CF19C1 /* security.plist in Resources */,
|
||||
CD86413C2CA1617A00803551 /* AboutWindow.xib in Resources */,
|
||||
CD8641592CA161DF00803551 /* UpdateWindow.xib in Resources */,
|
||||
CD8641802CA1F03E00803551 /* Localizable.xcstrings in Resources */,
|
||||
CD8641552CA161DA00803551 /* StatusBarPopover.xib in Resources */,
|
||||
CD2F801724468A8C009C3D77 /* patrons.txt in Resources */,
|
||||
CD8641512CA161D500803551 /* Rules.xib in Resources */,
|
||||
CD86414D2CA161CF00803551 /* MainMenu.xib in Resources */,
|
||||
CD8641702CA1B5F300803551 /* InfoPlist.strings in Resources */,
|
||||
7DD25FF01F23B73C00277EC4 /* Assets.xcassets in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
@ -402,6 +411,14 @@
|
|||
name = UpdateWindow.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CD86416E2CA1B5F300803551 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
CD86416F2CA1B5F300803551 /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
|
@ -458,6 +475,7 @@
|
|||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = NO;
|
||||
SDKROOT = macosx;
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
|
@ -507,6 +525,7 @@
|
|||
MACOSX_DEPLOYMENT_TARGET = 10.12;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = macosx;
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
|
|
|
@ -752,6 +752,9 @@ extern os_log_t logHandle;
|
|||
return;
|
||||
}
|
||||
|
||||
//TODO: refactor alerts
|
||||
// delay showing them!
|
||||
|
||||
//register for audio changes
|
||||
-(BOOL)watchAudioDevice:(AVCaptureDevice*)device
|
||||
{
|
||||
|
@ -813,12 +816,18 @@ extern os_log_t logHandle;
|
|||
//dbg msg
|
||||
os_log_debug(logHandle, "audio event: off");
|
||||
|
||||
//init event
|
||||
// process (client) and device are nil
|
||||
event = [[Event alloc] init:nil device:device deviceType:Device_Microphone state:NSControlStateValueOff];
|
||||
//still wait
|
||||
// cuz the on event is waiting...
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC), dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
||||
|
||||
//handle event
|
||||
[self handleEvent:event];
|
||||
//init event
|
||||
// process (client) and device are nil
|
||||
event = [[Event alloc] init:nil device:device deviceType:Device_Microphone state:NSControlStateValueOff];
|
||||
|
||||
//handle event
|
||||
[self handleEvent:event];
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
//audio on?
|
||||
|
@ -987,12 +996,18 @@ bail:
|
|||
//dbg msg
|
||||
os_log_debug(logHandle, "camera event: off");
|
||||
|
||||
//init event
|
||||
// process (client) and device are nil
|
||||
event = [[Event alloc] init:nil device:device deviceType:Device_Camera state:NSControlStateValueOff];
|
||||
//still wait
|
||||
// cuz the on event is waiting...
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC), dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
||||
|
||||
//handle event
|
||||
[self handleEvent:event];
|
||||
//init event
|
||||
// process (client) and device are nil
|
||||
event = [[Event alloc] init:nil device:device deviceType:Device_Camera state:NSControlStateValueOff];
|
||||
|
||||
//handle event
|
||||
[self handleEvent:event];
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
} //macOS 13.3
|
||||
|
@ -1435,7 +1450,7 @@ bail:
|
|||
result = NOTIFICATION_SPURIOUS;
|
||||
|
||||
//dbg msg
|
||||
os_log_debug(logHandle, "ignoring event, as it happened <1.0s ago");
|
||||
os_log_debug(logHandle, "ignoring event, as last event happened <1.0s ago");
|
||||
|
||||
//bail
|
||||
goto bail;
|
||||
|
@ -1498,6 +1513,9 @@ bail:
|
|||
//result
|
||||
NSInteger result = NOTIFICATION_ERROR;
|
||||
|
||||
//dbg msg
|
||||
os_log_debug(logHandle, "handling event: %{public}@", event);
|
||||
|
||||
//should show?
|
||||
@synchronized (self) {
|
||||
|
||||
|
@ -1586,6 +1604,19 @@ bail:
|
|||
//init request
|
||||
request = [UNNotificationRequest requestWithIdentifier:NSUUID.UUID.UUIDString content:content trigger:NULL];
|
||||
|
||||
//log: on
|
||||
if(NSControlStateValueOn == event.state)
|
||||
{
|
||||
//log
|
||||
os_log(logHandle, "[Alert] On Event: %@ / Device: %@ / %@", content.title, content.subtitle, content.body);
|
||||
}
|
||||
//log: off
|
||||
else
|
||||
{
|
||||
//log
|
||||
os_log(logHandle, "[Alert] Off Event: %@ / Device: %@", content.title, content.subtitle);
|
||||
}
|
||||
|
||||
//send notification
|
||||
[UNUserNotificationCenter.currentNotificationCenter addNotificationRequest:request withCompletionHandler:^(NSError *_Nullable error)
|
||||
{
|
||||
|
|
|
@ -31,8 +31,7 @@
|
|||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="3Oo-ON-R9s"/>
|
||||
<menuItem title="Preferences..." id="yfe-lu-f3I">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menuItem title="Settings..." keyEquivalent="," id="yfe-lu-f3I">
|
||||
<connections>
|
||||
<action selector="showPreferences:" target="Voe-Tx-rLC" id="0UK-iW-u9N"/>
|
||||
</connections>
|
||||
|
@ -69,9 +68,7 @@
|
|||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="Y5x-j1-ofU"/>
|
||||
<menuItem title="Preferences..." tag="103" id="Zao-2v-WyJ">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Settings..." tag="103" keyEquivalent="," id="Zao-2v-WyJ"/>
|
||||
<menuItem title="Allowed Items..." tag="104" id="i2A-ax-9ff">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
|
|
|
@ -94,7 +94,7 @@
|
|||
</connections>
|
||||
</button>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" preferredMaxLayoutWidth="156" translatesAutoresizingMaskIntoConstraints="NO" id="xbe-1S-lpy">
|
||||
<rect key="frame" x="72" y="327" width="114" height="15"/>
|
||||
<rect key="frame" x="72" y="327" width="510" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Start at Login" id="JVI-Or-h0u">
|
||||
<font key="font" size="13" name="Menlo-Bold"/>
|
||||
|
@ -103,11 +103,11 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" allowsCharacterPickerTouchBarItem="YES" preferredMaxLayoutWidth="471" translatesAutoresizingMaskIntoConstraints="NO" id="tFB-E4-zbp">
|
||||
<rect key="frame" x="72" y="310" width="475" height="15"/>
|
||||
<rect key="frame" x="72" y="310" width="510" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Automatically (re)start each time you login." id="E0T-Ug-P8f">
|
||||
<font key="font" size="13" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
|
@ -123,7 +123,7 @@
|
|||
</connections>
|
||||
</button>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" preferredMaxLayoutWidth="156" translatesAutoresizingMaskIntoConstraints="NO" id="Kjh-jc-STu">
|
||||
<rect key="frame" x="72" y="265" width="98" height="15"/>
|
||||
<rect key="frame" x="72" y="265" width="510" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="No Icon Mode" id="4EN-j2-enV">
|
||||
<font key="font" size="13" name="Menlo-Bold"/>
|
||||
|
@ -143,7 +143,7 @@
|
|||
</connections>
|
||||
</button>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" preferredMaxLayoutWidth="262" translatesAutoresizingMaskIntoConstraints="NO" id="Enr-tn-mwG">
|
||||
<rect key="frame" x="72" y="202" width="177" height="15"/>
|
||||
<rect key="frame" x="72" y="202" width="510" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Ignore External Device" id="a5n-tt-65v">
|
||||
<font key="font" size="13" name="Menlo-Bold"/>
|
||||
|
@ -152,11 +152,11 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" allowsCharacterPickerTouchBarItem="YES" preferredMaxLayoutWidth="471" translatesAutoresizingMaskIntoConstraints="NO" id="AAL-QY-azK">
|
||||
<rect key="frame" x="72" y="185" width="522" height="15"/>
|
||||
<rect key="frame" x="72" y="173" width="510" height="27"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Do not show an alert when external devices trigger an event." id="SYJ-Qv-cRq">
|
||||
<font key="font" size="13" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
|
@ -172,7 +172,7 @@
|
|||
</connections>
|
||||
</button>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" preferredMaxLayoutWidth="262" translatesAutoresizingMaskIntoConstraints="NO" id="K3U-Od-Xdy">
|
||||
<rect key="frame" x="72" y="150" width="200" height="15"/>
|
||||
<rect key="frame" x="72" y="150" width="510" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Disable 'Inactive' Alerts" id="Gsa-fn-iag">
|
||||
<font key="font" size="13" name="Menlo-Bold"/>
|
||||
|
@ -181,16 +181,25 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" allowsCharacterPickerTouchBarItem="YES" preferredMaxLayoutWidth="471" translatesAutoresizingMaskIntoConstraints="NO" id="5xo-jp-5qA">
|
||||
<rect key="frame" x="72" y="133" width="522" height="15"/>
|
||||
<rect key="frame" x="72" y="133" width="510" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Do not show an alert when the camera/microphone is deactivated. " id="1A2-j2-kqG">
|
||||
<font key="font" size="13" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" allowsCharacterPickerTouchBarItem="YES" preferredMaxLayoutWidth="471" translatesAutoresizingMaskIntoConstraints="NO" id="xaO-g8-rdS">
|
||||
<rect key="frame" x="72" y="248" width="510" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Run without showing an icon in the status menu bar." id="SG5-YM-BoV">
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="DuP-BJ-gMJ">
|
||||
<rect key="frame" x="212" y="59" width="176" height="32"/>
|
||||
<rect key="frame" x="201" y="59" width="198" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="push" title="View Allowed Items" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="KsW-is-XrR">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
|
@ -200,15 +209,6 @@
|
|||
<action selector="viewRules:" target="-2" id="jHD-eK-n4u"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" allowsCharacterPickerTouchBarItem="YES" preferredMaxLayoutWidth="471" translatesAutoresizingMaskIntoConstraints="NO" id="xaO-g8-rdS">
|
||||
<rect key="frame" x="72" y="248" width="475" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Run without showing an icon in the status menu bar." id="SG5-YM-BoV">
|
||||
<font key="font" size="13" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<point key="canvasLocation" x="-167" y="510"/>
|
||||
</customView>
|
||||
|
@ -228,7 +228,7 @@
|
|||
</connections>
|
||||
</button>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" preferredMaxLayoutWidth="117" translatesAutoresizingMaskIntoConstraints="NO" id="8Tb-Ih-SsC">
|
||||
<rect key="frame" x="72" y="226" width="59" height="15"/>
|
||||
<rect key="frame" x="72" y="226" width="74" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Execute" id="ncJ-bF-dAA">
|
||||
<font key="font" size="13" name="Menlo-Bold"/>
|
||||
|
@ -248,7 +248,7 @@
|
|||
</connections>
|
||||
</button>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="dH0-Xi-Qnd">
|
||||
<rect key="frame" x="72" y="152" width="114" height="15"/>
|
||||
<rect key="frame" x="72" y="152" width="510" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Pass Arguments" id="WL4-fV-4Wq">
|
||||
<font key="font" size="13" name="Menlo-Bold"/>
|
||||
|
@ -257,7 +257,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" preferredMaxLayoutWidth="382" translatesAutoresizingMaskIntoConstraints="NO" id="z32-0s-dpb">
|
||||
<rect key="frame" x="143" y="223" width="437" height="20"/>
|
||||
<rect key="frame" x="147" y="223" width="433" height="20"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" allowsUndo="NO" state="on" borderStyle="bezel" placeholderString="Path..." drawsBackground="YES" id="Oe0-3Y-Srk">
|
||||
<font key="font" size="13" name="Menlo-Regular"/>
|
||||
|
@ -286,8 +286,8 @@
|
|||
<rect key="frame" x="72" y="185" width="427" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Execute a script or binary when an event is detected." id="bky-MW-yBn">
|
||||
<font key="font" size="13" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
|
@ -295,11 +295,11 @@
|
|||
<rect key="frame" x="72" y="39" width="510" height="105"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" id="7Ah-kZ-gGe">
|
||||
<font key="font" size="13" name="Menlo-Regular"/>
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<string key="title">OverSight will pass in the following arguments:
-device <camera|microphone> -event <on|off> -process <pid> -activeCount <0..n>
Notes:
|
||||
-process is only specified on activation events.
|
||||
-activeCount is the number of devices still active.</string>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
|
@ -327,7 +327,7 @@
|
|||
</connections>
|
||||
</button>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="YB6-Vv-lQu">
|
||||
<rect key="frame" x="72" y="224" width="169" height="15"/>
|
||||
<rect key="frame" x="72" y="224" width="528" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Disable Update Checks" id="z5b-fA-WCk">
|
||||
<font key="font" size="13" name="Menlo-Bold"/>
|
||||
|
@ -336,16 +336,16 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" allowsCharacterPickerTouchBarItem="YES" preferredMaxLayoutWidth="471" translatesAutoresizingMaskIntoConstraints="NO" id="TmH-6A-xdG">
|
||||
<rect key="frame" x="72" y="207" width="475" height="15"/>
|
||||
<rect key="frame" x="72" y="207" width="528" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Do not automatically check for new versions." id="JV5-cY-ff4">
|
||||
<font key="font" size="13" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<font key="font" size="11" name="Menlo-Regular"/>
|
||||
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Mtn-pi-zIl">
|
||||
<rect key="frame" x="242" y="135" width="134" height="32"/>
|
||||
<rect key="frame" x="226" y="135" width="167" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="push" title="Check Now" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="2qr-2x-A3U">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
|
@ -355,10 +355,6 @@
|
|||
<action selector="check4Update:" target="-2" id="GJb-mB-UIz"/>
|
||||
</connections>
|
||||
</button>
|
||||
<progressIndicator wantsLayer="YES" horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" maxValue="100" displayedWhenStopped="NO" bezeled="NO" indeterminate="YES" controlSize="small" style="spinning" translatesAutoresizingMaskIntoConstraints="NO" id="o0T-ra-4H0">
|
||||
<rect key="frame" x="378" y="145" width="16" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
</progressIndicator>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Oe2-Ye-1s6">
|
||||
<rect key="frame" x="118" y="60" width="383" height="74"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
|
@ -368,8 +364,12 @@
|
|||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<progressIndicator wantsLayer="YES" horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" maxValue="100" displayedWhenStopped="NO" bezeled="NO" indeterminate="YES" controlSize="small" style="spinning" translatesAutoresizingMaskIntoConstraints="NO" id="o0T-ra-4H0">
|
||||
<rect key="frame" x="394" y="144" width="16" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
</progressIndicator>
|
||||
</subviews>
|
||||
<point key="canvasLocation" x="673" y="436"/>
|
||||
<point key="canvasLocation" x="673" y="435.5"/>
|
||||
</customView>
|
||||
</objects>
|
||||
<resources>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23094" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23094"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
|
@ -22,7 +22,7 @@
|
|||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="AppIcon" id="15"/>
|
||||
</imageView>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="16" userLabel="title">
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="16" userLabel="title">
|
||||
<rect key="frame" x="78" y="46" width="200" height="20"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="OverSight up & running!" id="17">
|
||||
|
@ -31,16 +31,16 @@
|
|||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="21" userLabel="details">
|
||||
<rect key="frame" x="78" y="18" width="161" height="20"/>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="21" userLabel="details">
|
||||
<rect key="frame" x="78" y="18" width="224" height="20"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="...access it from here anytime" id="22">
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Access it from here anytime" id="22">
|
||||
<font key="font" metaFont="label" size="11"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button fixedFrame="YES" tag="2" translatesAutoresizingMaskIntoConstraints="NO" id="hL7-ZY-bJK">
|
||||
<button tag="2" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hL7-ZY-bJK">
|
||||
<rect key="frame" x="288" y="56" width="32" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="bevel" title="⌃" bezelStyle="rounded" alignment="center" inset="2" id="2jG-uf-4XV">
|
||||
|
|
|
@ -37,4 +37,7 @@
|
|||
//time stamp
|
||||
@property(nonatomic, retain)NSDate* timestamp;
|
||||
|
||||
//was shown
|
||||
@property BOOL wasShown;
|
||||
|
||||
@end
|
||||
|
|
|
@ -36,4 +36,12 @@
|
|||
return self;
|
||||
}
|
||||
|
||||
//override description method
|
||||
-(NSString*)description
|
||||
{
|
||||
//description
|
||||
return [NSString stringWithFormat:@"EVENT: device: %@, device type: %d, state: %ld, timestamp: %@", self.device.localizedName, self.deviceType, (long)self.state, self.timestamp];
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
|
|
@ -320,14 +320,17 @@ bail:
|
|||
//init update obj
|
||||
update = [[Update alloc] init];
|
||||
|
||||
//check for update
|
||||
// 'updateResponse newVersion:' method will be called when check is done
|
||||
[update checkForUpdate:^(NSUInteger result, NSString* newVersion) {
|
||||
//check
|
||||
// but after a delay for UI
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.75 * NSEC_PER_SEC), dispatch_get_main_queue(),
|
||||
^{
|
||||
[update checkForUpdate:^(NSUInteger result, NSString* newVersion) {
|
||||
|
||||
//process response
|
||||
[self updateResponse:result newVersion:newVersion];
|
||||
//process response
|
||||
[self updateResponse:result newVersion:newVersion];
|
||||
|
||||
}];
|
||||
}];
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -226,8 +226,8 @@ bail:
|
|||
self.popover.contentViewController = [[StatusBarPopoverController alloc] initWithNibName:@"StatusBarPopover" bundle:nil];
|
||||
|
||||
//set behavior
|
||||
// auto-close if user clicks button in status bar
|
||||
self.popover.behavior = NSPopoverBehaviorTransient;
|
||||
// don't want it close before timeout (unless user clicks '^')
|
||||
self.popover.behavior = NSPopoverBehaviorApplicationDefined;
|
||||
|
||||
//set delegate
|
||||
self.popover.delegate = self;
|
||||
|
@ -458,6 +458,14 @@ bail:
|
|||
//status bar item controller
|
||||
StatusBarItem* statusBarItemController = nil;
|
||||
|
||||
//first
|
||||
// sure to close popover
|
||||
if(YES == self.popover.shown)
|
||||
{
|
||||
//close
|
||||
[self.popover performClose:nil];
|
||||
}
|
||||
|
||||
//grab
|
||||
avMonitor = ((AppDelegate*)[[NSApplication sharedApplication] delegate]).avMonitor;
|
||||
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
/* Bundle name */
|
||||
"CFBundleName" = "OverSight";
|
||||
|
||||
/* Copyright (human-readable) */
|
||||
"NSHumanReadableCopyright" = "Copyright (c) 2021 Objective-See. Todos los derechos reservados.";
|
||||
|
|
@ -10,6 +10,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Support Us!"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "¡Apóyanos!"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -22,6 +28,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Version:"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Versión:"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -34,6 +46,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Supporters/Patrons:"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Friends/Patrons:"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -46,6 +64,12 @@
|
|||
"state" : "new",
|
||||
"value" : "More Info"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Más Información"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,12 @@
|
|||
"state" : "new",
|
||||
"value" : "OverSight"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "OverSight"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -22,6 +28,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Uninstall OverSight..."
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Desinstalar OverSight..."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -34,6 +46,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Main Menu"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Menú Principal"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -46,6 +64,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Quit OverSight"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Salir de OverSight"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -58,6 +82,12 @@
|
|||
"state" : "new",
|
||||
"value" : "OverSight: enabled"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "OverSight: activado"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -70,6 +100,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Active Devices"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Dispositivos Activos"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -82,6 +118,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Allowed Items..."
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Ítems Permitidos..."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -94,6 +136,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Allowed Items..."
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Ítems Permitidos..."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -106,6 +154,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Disable"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Deshabilitar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -118,6 +172,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Close Window"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Cerrar Ventana"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -130,6 +190,12 @@
|
|||
"state" : "new",
|
||||
"value" : "About OverSight"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Sobre OverSight"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -142,29 +208,47 @@
|
|||
"state" : "new",
|
||||
"value" : "OverSight"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "OverSight"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"yfe-lu-f3I.title" : {
|
||||
"comment" : "Class = \"NSMenuItem\"; title = \"Preferences...\"; ObjectID = \"yfe-lu-f3I\";",
|
||||
"comment" : "Class = \"NSMenuItem\"; title = \"Settings...\"; ObjectID = \"yfe-lu-f3I\";",
|
||||
"extractionState" : "extracted_with_value",
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "new",
|
||||
"value" : "Preferences..."
|
||||
"value" : "Settings..."
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Configuración…"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Zao-2v-WyJ.title" : {
|
||||
"comment" : "Class = \"NSMenuItem\"; title = \"Preferences...\"; ObjectID = \"Zao-2v-WyJ\";",
|
||||
"comment" : "Class = \"NSMenuItem\"; title = \"Settings...\"; ObjectID = \"Zao-2v-WyJ\";",
|
||||
"extractionState" : "extracted_with_value",
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "new",
|
||||
"value" : "Preferences..."
|
||||
"value" : "Settings..."
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Configuración…"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Do not show an alert when the camera/microphone is deactivated. "
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "No mostrar una alerta cuando la cámara/micrófono se desactiven."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -22,6 +28,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Check Now"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Verificar Ahora"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -34,6 +46,12 @@
|
|||
"state" : "new",
|
||||
"value" : "No Icon Mode"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Modo Sin Ícono"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -46,6 +64,12 @@
|
|||
"state" : "new",
|
||||
"value" : "OverSight will pass in the following arguments:
-device <camera|microphone> -event <on|off> -process <pid> -activeCount <0..n>
Notes:\n-process is only specified on activation events.\n-activeCount is the number of devices still active."
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "OverSight pasará los siguientes argumentos:\n-device <camera|microphone> -event <on|off> -process <pid> -activeCount <0..n>\n\nNotas:\n-process solo se especifica en eventos de activación.\n-activeCount es el número de dispositivos que siguen activos."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -58,6 +82,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Ignore External Device"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Ignorar Dispositivo Externo"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -70,6 +100,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Execute a script or binary when an event is detected."
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Ejecutar un script o un programa cuando se detecte un evento."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -82,6 +118,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Browse"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Navegar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -94,6 +136,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Automatically (re)start each time you login."
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Iniciar automáticamente cada vez que inicies sesión."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -106,6 +154,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Action"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Acción"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -118,6 +172,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Action"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Acción"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -130,6 +190,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Disable 'Inactive' Alerts"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Desactivar Alertas de 'Inactivo'"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -142,6 +208,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Do not automatically check for new versions."
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "No comprobar automáticamente si hay nuevas versiones."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -154,6 +226,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Start at Login"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Iniciar al iniciar sesión"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -166,6 +244,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Mode"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Modo"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -178,6 +262,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Mode"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Modo"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -190,6 +280,12 @@
|
|||
"state" : "new",
|
||||
"value" : "View Allowed Items"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Ver Ítems Permitidos"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -202,6 +298,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Execute"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Ejecutar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -214,6 +316,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Path..."
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Ruta..."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -226,6 +334,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Update"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Actualizar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -238,6 +352,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Update"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Actualizar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -250,6 +370,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Run without showing an icon in the status menu bar."
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Ejecutar sin mostrar un ícono en la barra de menú de estado."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -262,6 +388,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Do not show an alert when external devices trigger an event."
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "No mostrar una alerta cuando los dispositivos externos desencadenen un evento."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -274,6 +406,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Pass Arguments"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Pasar Argumentos"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -286,6 +424,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Disable Update Checks"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Desactivar Verificación de Actualizaciones"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Process"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Proceso"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -22,6 +28,12 @@
|
|||
"state" : "new",
|
||||
"value" : "file:"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "archivo:"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -34,6 +46,12 @@
|
|||
"state" : "new",
|
||||
"value" : " Process"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Proceso"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -46,6 +64,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Allowed Device"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Dispositivo Permitido"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -58,6 +82,12 @@
|
|||
"state" : "new",
|
||||
"value" : "action"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "acción"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -70,6 +100,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Currently, there are no allowed items..."
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Actualmente, no hay ítems permitidos..."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,12 @@
|
|||
"state" : "new",
|
||||
"value" : "⌃"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "⌃"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -22,17 +28,29 @@
|
|||
"state" : "new",
|
||||
"value" : "OverSight up & running!"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "¡OverSight en funcionamiento!"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"22.title" : {
|
||||
"comment" : "Class = \"NSTextFieldCell\"; title = \"...access it from here anytime\"; ObjectID = \"22\";",
|
||||
"comment" : "Class = \"NSTextFieldCell\"; title = \"Access it from here anytime\"; ObjectID = \"22\";",
|
||||
"extractionState" : "extracted_with_value",
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "new",
|
||||
"value" : "...access it from here anytime"
|
||||
"value" : "Access it from here anytime"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Accede desde aquí en cualquier momento"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,343 @@
|
|||
{
|
||||
"sourceLanguage" : "en",
|
||||
"strings" : {
|
||||
" Became Active!" : {
|
||||
"comment" : " Became Active!",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "¡Se activó!"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
" Became Inactive." : {
|
||||
"comment" : " Became Inactive.",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Se desactivó."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"%@: disabled" : {
|
||||
"comment" : "%@: disabled",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "%@: deshabilitado"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"%@: enabled" : {
|
||||
"comment" : "%@: enabled",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "%@: habilitado"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"a new version (%@) is available!" : {
|
||||
"comment" : "a new version (%@) is available!",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "¡una nueva versión (%@) está disponible!"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Active Devices:" : {
|
||||
"comment" : "Active Devices:",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Dispositivos Activos:"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Allow (Always)" : {
|
||||
"comment" : "Allow (Always)",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Permitir (Siempre)"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Allow (Once)" : {
|
||||
"comment" : "Allow (Once)",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Permitir (una vez)"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Block" : {
|
||||
"comment" : "Block",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Bloquear"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Close" : {
|
||||
"comment" : "Close",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Cerrar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Device: %@" : {
|
||||
"comment" : "Device: %@",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Dispositivo: %@"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Disable" : {
|
||||
"comment" : "Disable",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Deshabilitar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Enable" : {
|
||||
"comment" : "Enable",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Habilitar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"error: failed to load patrons :/" : {
|
||||
"comment" : "error: failed to load patrons :/",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "error: no se pudieron cargar los patrons :/"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"ERROR: failed to terminate %@ (%@)" : {
|
||||
"comment" : "ERROR: failed to terminate %@ (%@)",
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "new",
|
||||
"value" : "ERROR: failed to terminate %1$@ (%2$@)"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "ERROR: no se pudo terminar %1$@ (%2$@)"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"ERROR: OverSight is not authorized to display notifications." : {
|
||||
"comment" : "ERROR: OverSight is not authorized to display notifications.",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "ERROR: OverSight no está autorizado para mostrar notificaciones."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Error: update check failed" : {
|
||||
"comment" : "Error: update check failed",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Error: la verificación de actualización falló"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Installed version (%@),\r\nis the latest." : {
|
||||
"comment" : "Installed version (%@),\r\nis the latest.",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "La versión instalada (%@) es la más reciente."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"No Active Devices" : {
|
||||
"comment" : "No Active Devices",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "No hay Dispositivos Activos"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Open System Preferences..." : {
|
||||
"comment" : "Open System Preferences...",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Abrir Preferencias del Sistema..."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"OverSight notification mode set to %@." : {
|
||||
"comment" : "OverSight notification mode set to %@.",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Modo de notificación de OverSight configurado en %@."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"pid: unknown" : {
|
||||
"comment" : "pid: unknown",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "pid: desconocido"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Please authorize (style: \"Alerts\") via the Notifications pane in System Preferences." : {
|
||||
"comment" : "Please authorize (style: \"Alerts\") via the Notifications pane in System Preferences.",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Por favor, autoriza (estilo: \\\"Alertas\\\") a través del panel de Notificaciones en Preferencias del Sistema."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Please change to \"Alerts\" via the Notifications pane in System Preferences." : {
|
||||
"comment" : "Please change to \"Alerts\" via the Notifications pane in System Preferences.",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Por favor, cambia a \\\"Alertas\\\" a través del panel de Notificaciones en Preferencias del Sistema."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Process: %@ (%@)" : {
|
||||
"comment" : "Process: %@ (%@)",
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "new",
|
||||
"value" : "Process: %1$@ (%2$@)"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Proceso: %1$@ (%2$@)"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"system error code: %d" : {
|
||||
"comment" : "system error code: %d",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "código de error del sistema: %d"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"unknown" : {
|
||||
"comment" : "unknown",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "desconocido"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Update" : {
|
||||
"comment" : "Update",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Actualizar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Update available, but isn't supported on macOS %ld.%ld" : {
|
||||
"comment" : "Update available, but isn't supported on macOS %ld.%ld",
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "new",
|
||||
"value" : "Update available, but isn't supported on macOS %1$ld.%2$ld"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Actualización disponible, pero no es compatible con macOS %1$ld.%2$ld"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"version" : "1.0"
|
||||
}
|
|
@ -26,6 +26,8 @@
|
|||
CD8641302CA15DCD00803551 /* AboutWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD86412F2CA15DCD00803551 /* AboutWindow.xib */; };
|
||||
CD8641342CA15DDA00803551 /* ConfigureWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD8641332CA15DDA00803551 /* ConfigureWindowController.xib */; };
|
||||
CD8641382CA15DE200803551 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CD8641372CA15DE200803551 /* MainMenu.xib */; };
|
||||
CD86417B2CA1BCD900803551 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = CD86417A2CA1BCD900803551 /* Localizable.xcstrings */; };
|
||||
CD86417E2CA1BD1000803551 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = CD86417C2CA1BD1000803551 /* InfoPlist.strings */; };
|
||||
CD86B6EA23A5BBE7003F6BA4 /* configure.sh in Resources */ = {isa = PBXBuildFile; fileRef = CD86B6E923A5BBE7003F6BA4 /* configure.sh */; };
|
||||
CDAAC241202255580032F2E6 /* utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = CDAAC23F202255580032F2E6 /* utilities.m */; };
|
||||
CDAAC243202257D70032F2E6 /* utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = CDAAC23F202255580032F2E6 /* utilities.m */; };
|
||||
|
@ -99,6 +101,8 @@
|
|||
CD8641352CA15DDA00803551 /* mul */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; name = mul; path = mul.lproj/ConfigureWindowController.xcstrings; sourceTree = "<group>"; };
|
||||
CD8641362CA15DE200803551 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||
CD8641392CA15DE200803551 /* mul */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; name = mul; path = mul.lproj/MainMenu.xcstrings; sourceTree = "<group>"; };
|
||||
CD86417A2CA1BCD900803551 /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = "<group>"; };
|
||||
CD86417D2CA1BD1000803551 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
CD86B6E923A5BBE7003F6BA4 /* configure.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = configure.sh; path = Source/Script/configure.sh; sourceTree = SOURCE_ROOT; };
|
||||
CDA6E62E203B67A100C78F91 /* consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = consts.h; path = ../../Shared/consts.h; sourceTree = "<group>"; };
|
||||
CDA6E632203B6B7800C78F91 /* objectiveSeeText.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = objectiveSeeText.png; path = ../../shared/images/objectiveSeeText.png; sourceTree = "<group>"; };
|
||||
|
@ -132,6 +136,7 @@
|
|||
29B97314FDCFA39411CA2CEA /* SMJobBless */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CD86417A2CA1BCD900803551 /* Localizable.xcstrings */,
|
||||
CD17D55C201148F900F798D7 /* Script */,
|
||||
CD73DA9C20049158001FFC84 /* Shared */,
|
||||
4BE4904710445D49006BE471 /* Source */,
|
||||
|
@ -168,6 +173,7 @@
|
|||
CD73DA98200490B4001FFC84 /* HelperComms.h */,
|
||||
CD73DA97200490B4001FFC84 /* HelperComms.m */,
|
||||
4BE4904C10445D49006BE471 /* Info.plist */,
|
||||
CD86417C2CA1BD1000803551 /* InfoPlist.strings */,
|
||||
CD8641372CA15DE200803551 /* MainMenu.xib */,
|
||||
CD6CAC9120A42D5000188B0A /* main.h */,
|
||||
4BE4904D10445D49006BE471 /* main.m */,
|
||||
|
@ -310,10 +316,12 @@
|
|||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
CD86B6EA23A5BBE7003F6BA4 /* configure.sh in Resources */,
|
||||
CD86417E2CA1BD1000803551 /* InfoPlist.strings in Resources */,
|
||||
CD8641382CA15DE200803551 /* MainMenu.xib in Resources */,
|
||||
CD8641302CA15DCD00803551 /* AboutWindow.xib in Resources */,
|
||||
CD2F801124465F68009C3D77 /* patrons.txt in Resources */,
|
||||
CD3307AE203567D500F10D71 /* Assets.xcassets in Resources */,
|
||||
CD86417B2CA1BCD900803551 /* Localizable.xcstrings in Resources */,
|
||||
CD8641342CA15DDA00803551 /* ConfigureWindowController.xib in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
@ -403,6 +411,14 @@
|
|||
name = MainMenu.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CD86417C2CA1BD1000803551 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
CD86417D2CA1BD1000803551 /* es */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
|
@ -584,6 +600,7 @@
|
|||
PROVISIONING_PROFILE = "";
|
||||
RUN_CLANG_STATIC_ANALYZER = YES;
|
||||
SDKROOT = macosx;
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
|
@ -634,6 +651,7 @@
|
|||
PROVISIONING_PROFILE = "";
|
||||
RUN_CLANG_STATIC_ANALYZER = YES;
|
||||
SDKROOT = macosx;
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
|
|
|
@ -0,0 +1,193 @@
|
|||
{
|
||||
"sourceLanguage" : "en",
|
||||
"strings" : {
|
||||
"☑️ %@: installed!\n" : {
|
||||
"comment" : "☑️ %@: installed!\n",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "☑️ %@: ¡instalado!"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"☑️ %@: uninstalled!\n" : {
|
||||
"comment" : "☑️ %@: uninstalled!\n",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "☑️ %@: ¡desinstalado!"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"⚠️ Error: %@ failed" : {
|
||||
"comment" : "⚠️ Error: %@ failed",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "⚠️ Error: %@ falló"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Close" : {
|
||||
"comment" : "Close",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Cerrar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"ERROR: Insuffient Privileges." : {
|
||||
"comment" : "ERROR: Insuffient Privileges.",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "ERROR: Privilegios Insuficientes."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Exit" : {
|
||||
"comment" : "Exit",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Salir"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"For more info, from the terminal run:\r\nlog show --predicate=\"subsystem='com.objective-see.oversight'\"" : {
|
||||
"comment" : "For more info, from the terminal run:\r\nlog show --predicate=\"subsystem='com.objective-see.oversight'\"",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Para más información, ejecuta en la terminal:\nlog show --predicate=\"subsystem='com.objective-see.oversight'"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"install" : {
|
||||
"comment" : "install",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "instalar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Installing..." : {
|
||||
"comment" : "Installing...",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Instalando..."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Next »" : {
|
||||
"comment" : "Next »",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Siguiente »"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"OverSight can only be installed / run on accounts with administrative privileges" : {
|
||||
"comment" : "OverSight can only be installed / run on accounts with administrative privileges",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "OverSight solo puede ser instalado / ejecutado en cuentas con privilegios administrativos"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Protects your webcam & microphone!" : {
|
||||
"comment" : "Protects your webcam & microphone!",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "¡Protege tu webcam & micrófono!"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"uninstall" : {
|
||||
"comment" : "uninstall",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "desinstalar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Uninstalling..." : {
|
||||
"comment" : "Uninstalling...",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Desinstalando..."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Upgrade" : {
|
||||
"comment" : "Upgrade",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Actualizar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"version %@" : {
|
||||
"comment" : "version %@",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "versión %@"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Version: %@" : {
|
||||
"comment" : "Version: %@",
|
||||
"localizations" : {
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Versión %@"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"version" : "1.0"
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "darkMode.png",
|
||||
"idiom" : "mac"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "light"
|
||||
}
|
||||
],
|
||||
"filename" : "lightMode.png",
|
||||
"idiom" : "mac"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "darkMode.png",
|
||||
"idiom" : "mac"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"preserves-vector-representation" : true
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 4.3 KiB |
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "darkMode.png",
|
||||
"idiom" : "mac"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "light"
|
||||
}
|
||||
],
|
||||
"filename" : "lightMode.png",
|
||||
"idiom" : "mac"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "darkMode.png",
|
||||
"idiom" : "mac"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"preserves-vector-representation" : true
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 2.3 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"filename" : "malwarebytes.png"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
},
|
||||
"properties" : {
|
||||
"preserves-vector-representation" : true
|
||||
}
|
||||
}
|
BIN
Installer/Source/Assets.xcassets/FriendsMalwarebytes.imageset/malwarebytes.png
vendored
Normal file
After Width: | Height: | Size: 71 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"filename" : "iVerify.png"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
},
|
||||
"properties" : {
|
||||
"preserves-vector-representation" : true
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 6.1 KiB |
|
@ -1,8 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21225" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23094" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21225"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23094"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
|
@ -19,7 +19,7 @@
|
|||
<window allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES"/>
|
||||
<rect key="contentRect" x="196" y="240" width="486" height="301"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="3440" height="1415"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1512" height="944"/>
|
||||
<view key="contentView" id="se5-gp-TjO">
|
||||
<rect key="frame" x="0.0" y="0.0" width="486" height="301"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
|
@ -37,7 +37,7 @@
|
|||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageAlignment="left" imageScaling="proportionallyDown" image="OverSight" id="Ws8-bD-j2R"/>
|
||||
</imageView>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" tag="101" translatesAutoresizingMaskIntoConstraints="NO" id="HZZ-Es-mpy">
|
||||
<button tag="101" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="HZZ-Es-mpy">
|
||||
<rect key="frame" x="344" y="13" width="128" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="push" title="More Info" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="J9x-sM-h9S">
|
||||
|
@ -48,7 +48,7 @@
|
|||
<action selector="buttonHandler:" target="-2" id="Cgx-f4-Thr"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" tag="100" translatesAutoresizingMaskIntoConstraints="NO" id="xnd-Gw-0o8">
|
||||
<button tag="100" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="xnd-Gw-0o8">
|
||||
<rect key="frame" x="201" y="13" width="128" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="push" title="Support Us!" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="6g3-Pg-x3P">
|
||||
|
@ -95,7 +95,7 @@
|
|||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
</scrollView>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fZJ-sG-ZuJ">
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fZJ-sG-ZuJ">
|
||||
<rect key="frame" x="20" y="166" width="153" height="19"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Supporters/Patrons:" id="fJg-qw-wDf">
|
||||
|
@ -104,7 +104,7 @@
|
|||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="OSm-xS-Dmd">
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="OSm-xS-Dmd">
|
||||
<rect key="frame" x="129" y="206" width="182" height="19"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Version:" id="bBK-v0-ypq">
|
||||
|
|
|
@ -120,18 +120,25 @@
|
|||
<rect key="frame" x="0.0" y="0.0" width="812" height="48"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button tag="3" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="8I9-ag-g5s">
|
||||
<rect key="frame" x="718" y="7" width="81" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<button tag="3" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8I9-ag-g5s">
|
||||
<rect key="frame" x="679" y="7" width="120" height="32"/>
|
||||
<buttonCell key="cell" type="push" title="Next »" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="DHG-bQ-JvA">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" size="13" name="Menlo-Bold"/>
|
||||
</buttonCell>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="20" id="F47-Ks-7EZ"/>
|
||||
<constraint firstAttribute="width" constant="106" id="R5D-Yl-fOc"/>
|
||||
</constraints>
|
||||
<connections>
|
||||
<action selector="configureButtonHandler:" target="-2" id="6Tl-Ce-fBS"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="bottom" secondItem="8I9-ag-g5s" secondAttribute="bottom" constant="14" id="NUa-LA-HAl"/>
|
||||
<constraint firstAttribute="trailing" secondItem="8I9-ag-g5s" secondAttribute="trailing" constant="20" symbolic="YES" id="rsT-T9-ZCA"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<color key="fillColor" red="0.52700018810000004" green="0.69087679930000001" blue="0.21211786799999999" alpha="0.99595620600000001" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</box>
|
||||
|
@ -163,18 +170,25 @@
|
|||
<rect key="frame" x="0.0" y="0.0" width="812" height="48"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button tag="4" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2V7-Bx-gVi">
|
||||
<rect key="frame" x="718" y="7" width="81" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<button tag="4" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="2V7-Bx-gVi">
|
||||
<rect key="frame" x="672" y="7" width="134" height="32"/>
|
||||
<buttonCell key="cell" type="push" title="Next »" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="0wd-cy-xEw">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" size="13" name="Menlo-Bold"/>
|
||||
</buttonCell>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="20" id="0xV-JP-mPJ"/>
|
||||
<constraint firstAttribute="width" constant="120" id="liO-Kn-S9L"/>
|
||||
</constraints>
|
||||
<connections>
|
||||
<action selector="configureButtonHandler:" target="-2" id="qnn-kG-aKi"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="2V7-Bx-gVi" secondAttribute="trailing" constant="13" id="3jd-h7-KSx"/>
|
||||
<constraint firstAttribute="bottom" secondItem="2V7-Bx-gVi" secondAttribute="bottom" constant="14" id="8h9-rI-ecv"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<color key="fillColor" red="0.52700018810000004" green="0.69087679930000001" blue="0.21211786799999999" alpha="0.99595620600000001" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</box>
|
||||
|
@ -255,17 +269,8 @@
|
|||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" preferredMaxLayoutWidth="660" translatesAutoresizingMaskIntoConstraints="NO" id="mL7-9q-jrx">
|
||||
<rect key="frame" x="520" y="219" width="274" height="57"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Show some love? " id="Hvk-zS-1VC">
|
||||
<font key="font" size="40" name="AvenirNextCondensed-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" alphaValue="0.59999999999999998" id="MWL-4T-Xv3">
|
||||
<rect key="frame" x="306" y="122" width="203" height="29"/>
|
||||
<rect key="frame" x="244" y="126" width="324" height="29"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" alignment="center" title="Mahalo to the "Friends Objective-See"" id="OYn-6J-Cfb">
|
||||
<font key="font" size="15" name="AvenirNextCondensed-Regular"/>
|
||||
|
@ -273,48 +278,69 @@
|
|||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" id="86r-q1-8zB">
|
||||
<rect key="frame" x="20" y="69" width="77" height="23"/>
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" preferredMaxLayoutWidth="660" translatesAutoresizingMaskIntoConstraints="NO" id="mL7-9q-jrx">
|
||||
<rect key="frame" x="430" y="211" width="357" height="57"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="FriendsJamf" id="pbJ-5m-jHq"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Show some love? " id="Hvk-zS-1VC">
|
||||
<font key="font" size="40" name="AvenirNextCondensed-Regular"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" id="BmY-hr-sOX">
|
||||
<rect key="frame" x="10" y="53" width="77" height="23"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" animates="YES" imageScaling="proportionallyDown" image="FriendsJamf" id="d2a-JT-BQS"/>
|
||||
</imageView>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" alphaValue="0.69999999999999996" id="vet-MN-3Ad">
|
||||
<rect key="frame" x="703" y="67" width="84" height="28"/>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" alphaValue="0.80000000000000004" id="Pn8-1Y-qTv">
|
||||
<rect key="frame" x="220" y="49" width="138" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="FriendsKolide" id="ArD-gl-wjh"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" animates="YES" imageScaling="proportionallyDown" image="FriendsMacPaw" id="ZjN-wt-ht1"/>
|
||||
</imageView>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" alphaValue="0.80000000000000004" id="7HT-gV-yPa">
|
||||
<rect key="frame" x="126" y="65" width="138" height="31"/>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" alphaValue="0.80000000000000004" id="Bbi-MA-hNE">
|
||||
<rect key="frame" x="91" y="52" width="119" height="24"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="FriendsMacPaw" id="How-yq-spI"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" animates="YES" imageScaling="proportionallyDown" image="FriendsPANW" id="3eA-ny-z2T"/>
|
||||
</imageView>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" alphaValue="0.69999999999999996" id="FVF-37-HVW">
|
||||
<rect key="frame" x="554" y="68" width="119" height="24"/>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" alphaValue="0.80000000000000004" id="TCT-Oc-Qe2">
|
||||
<rect key="frame" x="491" y="52" width="122" height="26"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="FriendsPANW" id="VLA-rl-5Tm"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" animates="YES" imageScaling="proportionallyDown" image="FriendsHuntress" id="2aO-vk-Uk9"/>
|
||||
</imageView>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" alphaValue="0.69999999999999996" id="W5o-uI-7Ie">
|
||||
<rect key="frame" x="303" y="65" width="84" height="31"/>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" alphaValue="0.80000000000000004" id="HlD-KA-f3H">
|
||||
<rect key="frame" x="746" y="55" width="57" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="FriendsKandji" id="utL-Oi-omi"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" animates="YES" imageScaling="proportionallyDown" image="FriendsiVerify" id="I4T-3Z-ClS"/>
|
||||
</imageView>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" alphaValue="0.69999999999999996" id="qeo-at-ZIE">
|
||||
<rect key="frame" x="432" y="68" width="92" height="26"/>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" alphaValue="0.80000000000000004" id="RoF-KP-j9w">
|
||||
<rect key="frame" x="368" y="89" width="96" height="34"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="FriendsMosyle" id="4eU-Rk-ODg"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" animates="YES" imageScaling="proportionallyDown" image="FriendsKandji" id="3FW-9B-v0b"/>
|
||||
</imageView>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" alphaValue="0.80000000000000004" id="hGU-DC-Z60">
|
||||
<rect key="frame" x="611" y="42" width="128" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" animates="YES" imageScaling="proportionallyDown" image="FriendsMalwarebytes" id="j5T-la-Pvx"/>
|
||||
</imageView>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" alphaValue="0.80000000000000004" id="RAI-89-KVV">
|
||||
<rect key="frame" x="369" y="53" width="119" height="24"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" animates="YES" imageScaling="proportionallyDown" image="Friends1Password" id="enQ-mJ-Juf"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<point key="canvasLocation" x="686" y="1393"/>
|
||||
<point key="canvasLocation" x="1174" y="1122"/>
|
||||
</customView>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="DoNotDisturb" width="1430" height="510"/>
|
||||
<image name="Friends1Password" width="272" height="52"/>
|
||||
<image name="FriendsHuntress" width="800" height="198"/>
|
||||
<image name="FriendsJamf" width="328" height="114"/>
|
||||
<image name="FriendsKandji" width="1944" height="494"/>
|
||||
<image name="FriendsKolide" width="636" height="216"/>
|
||||
<image name="FriendsMacPaw" width="2034" height="335"/>
|
||||
<image name="FriendsMosyle" width="240" height="60"/>
|
||||
<image name="FriendsMacPaw" width="145" height="20"/>
|
||||
<image name="FriendsMalwarebytes" width="2500" height="403"/>
|
||||
<image name="FriendsPANW" width="1312" height="240"/>
|
||||
<image name="FriendsiVerify" width="500" height="180"/>
|
||||
<image name="Icon" width="512" height="512"/>
|
||||
<image name="Love" width="256" height="256"/>
|
||||
<image name="Notifications" width="1430" height="607"/>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21225" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23094" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21225"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23094"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication"/>
|
||||
|
|
|
@ -75,7 +75,7 @@ extern os_log_t logHandle;
|
|||
[self window].title = [NSString stringWithFormat:NSLocalizedString(@"version %@", @"version %@"), getAppVersion()];
|
||||
|
||||
//init status msg
|
||||
[self.statusMsg setStringValue:NSLocalizedString(@"...protects your webcam & microphone!", @"...protects your webcam & microphone!")];
|
||||
[self.statusMsg setStringValue:NSLocalizedString(@"Protects your webcam & microphone!", @"Protects your webcam & microphone!")];
|
||||
|
||||
//uninstall via app?
|
||||
// just enable uinstall button
|
||||
|
@ -106,7 +106,7 @@ extern os_log_t logHandle;
|
|||
self.uninstallButton.enabled = YES;
|
||||
|
||||
//set to 'upgrade'
|
||||
self.installButton.title = ACTION_UPGRADE;
|
||||
self.installButton.title = NSLocalizedString(@"Upgrade", @"Upgrade");
|
||||
}
|
||||
|
||||
//otherwise disable
|
||||
|
@ -540,7 +540,7 @@ extern os_log_t logHandle;
|
|||
(ACTION_INSTALL_FLAG == event) )
|
||||
{
|
||||
//next
|
||||
self.installButton.title = ACTION_NEXT;
|
||||
self.installButton.title = NSLocalizedString(@"Next »", @"Next »");
|
||||
|
||||
//set tag
|
||||
self.installButton.tag = ACTION_SHOW_NOTIFICATION_VIEW;
|
||||
|
@ -550,7 +550,7 @@ extern os_log_t logHandle;
|
|||
else
|
||||
{
|
||||
//close
|
||||
self.installButton.title = ACTION_CLOSE;
|
||||
self.installButton.title = NSLocalizedString(@"Close", @"Close");
|
||||
|
||||
//update it's tag
|
||||
// will allow button handler method process
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
/* Copyright (human-readable) */
|
||||
"NSHumanReadableCopyright" = "Copyright (c) 2020 Objective-See. Todos los derechos reservados. ";
|
||||
|
|
@ -10,6 +10,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Support Us!"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "¡Apóyanos!"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -22,6 +28,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Version:"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Versión:"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -34,6 +46,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Supporters/Patrons:"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Friends/Patrons:"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -46,6 +64,12 @@
|
|||
"state" : "new",
|
||||
"value" : "More Info"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Más Información"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Next »"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Siguiente »"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -22,6 +28,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Install"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Instalar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -34,6 +46,12 @@
|
|||
"state" : "new",
|
||||
"value" : "If prompted, please allow OverSight to show notifications, setting the style to \"Alerts\""
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Si solicitado, permite que OverSight muestre notificaciones, configurando el estilo en \"Alertas\""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -46,6 +64,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Next »"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Siguiente »"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -58,6 +82,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Yes!"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "¡Sí!"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -70,6 +100,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Uninstall"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Desinstalar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -82,6 +118,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Support OverSight?"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "¿Apoyas OverSight?"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -94,6 +136,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Show some love? "
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "¿Nos das tu apoyo?"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -106,6 +154,12 @@
|
|||
"state" : "new",
|
||||
"value" : "No"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "No"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -118,6 +172,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Mahalo to the \"Friends Objective-See\""
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Mahalo a los \"Friends de Objective-See\""
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -130,6 +190,12 @@
|
|||
"state" : "new",
|
||||
"value" : "It's free, open-source, and written by a single (mac-loving) coder!"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Sin cargo, open-source y desarrollado por un único programador (amante de Mac)! "
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -142,6 +208,12 @@
|
|||
"state" : "new",
|
||||
"value" : "If \"Do Not Disturb\" mode is activated, OverSight's alerts won't be shown"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Si el modo \"No Molestar\" está activado, las alertas de OverSight no se mostrarán"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,12 @@
|
|||
"state" : "new",
|
||||
"value" : "About OverSight"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Acerca de OverSight"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -22,6 +28,12 @@
|
|||
"state" : "new",
|
||||
"value" : "OverSight"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "OverSight"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -34,6 +46,12 @@
|
|||
"state" : "new",
|
||||
"value" : "Main Menu"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Menú Principal"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -46,6 +64,12 @@
|
|||
"state" : "new",
|
||||
"value" : "OverSight"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "OverSight"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -186,15 +186,6 @@
|
|||
//flag to install
|
||||
#define ACTION_INSTALL_FLAG 1
|
||||
|
||||
//button title: upgrade
|
||||
#define ACTION_UPGRADE NSLocalizedString(@"Upgrade", @"Upgrade")
|
||||
|
||||
//button title: close
|
||||
#define ACTION_CLOSE NSLocalizedString(@"Close", @"Close")
|
||||
|
||||
//button title: next
|
||||
#define ACTION_NEXT NSLocalizedString(@"Next »", @"Next »")
|
||||
|
||||
//show info about notifications
|
||||
#define ACTION_SHOW_NOTIFICATION_VIEW 2
|
||||
|
||||
|
|