diff --git a/CMakeLists.txt b/CMakeLists.txt index ca2b383f870ddbaf2ffe1bb1e7477697f44f6480..35600967518adf4662225d86b83d6acb4653d451 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -356,6 +356,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_file_upload.png ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_record_stop.png ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_camera.png ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_audio_msg.png +${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_group.png ${CMAKE_CURRENT_SOURCE_DIR}/data/light/ic_picture.png) SET_SOURCE_FILES_PROPERTIES(${ring_ICONS} PROPERTIES diff --git a/data/dark/ic_group.png b/data/dark/ic_group.png new file mode 100644 index 0000000000000000000000000000000000000000..f471bdb29ee1c203cbbc939a0aa1d6deb088c236 Binary files /dev/null and b/data/dark/ic_group.png differ diff --git a/src/AccAdvancedRingVC.mm b/src/AccAdvancedRingVC.mm index fb13275e4682682fb967e2525d104c0ff8091142..9beedbcaf4a449f32bf7cf870dd5f0e42459f667 100644 --- a/src/AccAdvancedRingVC.mm +++ b/src/AccAdvancedRingVC.mm @@ -30,6 +30,7 @@ __unsafe_unretained IBOutlet NSTextField *proxyServerField; __unsafe_unretained IBOutlet NSTextField *bootstrapServerField; __unsafe_unretained IBOutlet NSButton *enableProxyButton; + __unsafe_unretained IBOutlet NSButton *togleRendezVous; } @end @@ -48,6 +49,7 @@ const NSInteger BOOTSTRAP_SERVER_TAG = 300; [bootstrapServerField setStringValue: accountProperties.hostname.toNSString()]; [enableProxyButton setState: accountProperties.proxyEnabled]; [proxyServerField setEditable:accountProperties.proxyEnabled]; + [togleRendezVous setState: accountProperties.isRendezVous]; } -(void) viewDidLoad { @@ -71,6 +73,14 @@ const NSInteger BOOTSTRAP_SERVER_TAG = 300; } } +- (IBAction)enableRendezVous:(id)sender { + lrc::api::account::ConfProperties_t accountProperties = self.accountModel->getAccountConfig(self.selectedAccountID); + if(accountProperties.isRendezVous != [sender state]) { + accountProperties.isRendezVous = [sender state]; + self.accountModel->setAccountConfig(self.selectedAccountID, accountProperties); + } +} + - (IBAction)enableProxy:(id)sender { lrc::api::account::ConfProperties_t accountProperties = self.accountModel->getAccountConfig(self.selectedAccountID); if(accountProperties.proxyEnabled != [sender state]) { diff --git a/src/ChooseAccountVC.mm b/src/ChooseAccountVC.mm index 5ebf969d913b2ebd86c2add04c0bbf5b57d17559..e1837cde5903af72b5c4b7a9a1c5eed47493fca1 100644 --- a/src/ChooseAccountVC.mm +++ b/src/ChooseAccountVC.mm @@ -53,6 +53,7 @@ __unsafe_unretained IBOutlet RoundedTextField* accountStatus; __unsafe_unretained IBOutlet NSTextField* selectedAccountTitle; __unsafe_unretained IBOutlet NSPopUpButton* accountSelectionButton; + __unsafe_unretained IBOutlet NSImageView* rendezVousIndicator; lrc::api::NewAccountModel* accMdl_; AccountSelectionManager* accountSelectionManager_; } @@ -86,9 +87,10 @@ NSMutableDictionary* menuItemsTags; accountSelectionButton.menu = accountsMenu; [accountSelectionButton setAutoenablesItems:NO]; menuItemsTags = [[NSMutableDictionary alloc] init]; + rendezVousIndicator.image = [NSColor image: [NSImage imageNamed:@"ic_group.png"] tintedWithColor: [NSColor textColor]]; + [NSDistributedNotificationCenter.defaultCenter addObserver:self selector:@selector(themeChanged:) name:@"AppleInterfaceThemeChangedNotification" object: nil]; [self update]; - QObject::connect(accMdl_, &lrc::api::NewAccountModel::accountAdded, [self] (const QString& accountID) { @@ -133,6 +135,9 @@ NSMutableDictionary* menuItemsTags; }); } +-(void)themeChanged:(NSNotification *) notification { + rendezVousIndicator.image = [NSColor image: [NSImage imageNamed:@"ic_group.png"] tintedWithColor: [NSColor textColor]]; +} -(const lrc::api::account::Info&) selectedAccount { @@ -195,6 +200,7 @@ NSMutableDictionary* menuItemsTags; [itemView.accountTypeLabel setHidden:YES]; [itemView.userNameLabel setHidden:YES]; [itemView.accountLabel setHidden:YES]; + [itemView.rendezVousIndicator setHidden:YES]; [itemView.createNewAccount setAction:@selector(createNewAccount:)]; [itemView.createNewAccount setTarget:self]; [menuBarItem setView: itemView]; @@ -229,9 +235,10 @@ NSMutableDictionary* menuItemsTags; } [itemView.createNewAccount setHidden:YES]; [itemView.createNewAccountImage setHidden:YES]; + lrc::api::account::ConfProperties_t accountProperties = account.accountModel->getAccountConfig(accountId); + [itemView.rendezVousIndicator setHidden: !accountProperties.isRendezVous]; } - - (void)createNewAccount:(id)sender { [accountSelectionButton.menu cancelTrackingWithoutAnimation]; [self.delegate createNewAccount]; @@ -328,6 +335,8 @@ NSMutableDictionary* menuItemsTags; return; } [accountSelectionButton selectItemWithTag:[menuItemsTags[account.id.toNSString()] intValue]]; + lrc::api::account::ConfProperties_t accountProperties = account.accountModel->getAccountConfig(account.id); + [rendezVousIndicator setHidden: !accountProperties.isRendezVous]; [selectedAccountTitle setAttributedStringValue: accountSelectionButton.attributedTitle]; } @catch (NSException *ex) { @@ -347,6 +356,8 @@ NSMutableDictionary* menuItemsTags; [accountSelectionManager_ setSavedAccount:account]; [self.delegate selectAccount:account currentRemoved: NO]; [self updatePhoto]; + lrc::api::account::ConfProperties_t accountProperties = account.accountModel->getAccountConfig(account.id); + [rendezVousIndicator setHidden: !accountProperties.isRendezVous]; [selectedAccountTitle setAttributedStringValue: accountSelectionButton.attributedTitle]; } diff --git a/src/CurrentCallVC.mm b/src/CurrentCallVC.mm index 9ff78435decd00a03e7283c507d9913ee1e82ca8..3d1619dab64bc23e6771d5ec1e30690d44b2342a 100644 --- a/src/CurrentCallVC.mm +++ b/src/CurrentCallVC.mm @@ -34,6 +34,7 @@ extern "C" { ///LRC #import <video/renderer.h> #import <api/newcallmodel.h> +#import <api/newaccountmodel.h> #import <api/call.h> #import <api/conversationmodel.h> #import <api/avmodel.h> @@ -167,7 +168,7 @@ CVPixelBufferRef pixelBufferPreview; return; } confUid_ = conv.confId; - [self.chatVC setConversationUid:convUid model:account->conversationModel.get()]; + [self.chatVC setConversationUid:convUid model: account->conversationModel.get()]; [self connectSignals]; } @@ -491,6 +492,8 @@ CVPixelBufferRef pixelBufferPreview; cancelCallButton.hidden = (currentCall.status == Status::IN_PROGRESS || currentCall.status == Status::PAUSED) ? YES : NO; callingWidgetsContainer.hidden = (currentCall.status == Status::IN_PROGRESS) ? NO : YES; + lrc::api::account::ConfProperties_t accountProperties = accountInfo_->accountModel->getAccountConfig(accountInfo_->id); + switch (currentCall.status) { case Status::SEARCHING: @@ -557,11 +560,16 @@ CVPixelBufferRef pixelBufferPreview; case Status::PEER_BUSY: case Status::TIMEOUT: connectingCalls[callUid_.toNSString()] = nil; - [self removeConferenceLayout ]; [self.delegate callFinished]; - [self switchToNextConferenceCall: confUid_]; + if (!accountProperties.isRendezVous) { + [self removeConferenceLayout]; + [self switchToNextConferenceCall: confUid_]; + } break; } + if (accountProperties.isRendezVous) { + [controlsStackView setHidden:YES]; + } } -(void) setUpVideoCallView { diff --git a/src/views/AccountMenuItemView.h b/src/views/AccountMenuItemView.h index 71533eff37991fb50ee65f197866e767877b741b..12bff26f8e3502a720515a811a85e0f5ba4823c2 100644 --- a/src/views/AccountMenuItemView.h +++ b/src/views/AccountMenuItemView.h @@ -31,5 +31,6 @@ @property (nonatomic, strong) IBOutlet RoundedTextField* accountStatus; @property (nonatomic, strong) IBOutlet NSButton* createNewAccount; @property (nonatomic, strong) IBOutlet NSImageView* createNewAccountImage; +@property (nonatomic, strong) IBOutlet NSImageView* rendezVousIndicator; @end diff --git a/src/views/AccountMenuItemView.mm b/src/views/AccountMenuItemView.mm index 196b2c0c473fc0fc5adad9b63ea3c37903aaf1f4..cddf2e50c496d44b14a89e8742694e691e75f5fb 100644 --- a/src/views/AccountMenuItemView.mm +++ b/src/views/AccountMenuItemView.mm @@ -85,6 +85,8 @@ NSTrackingArea *trackingArea; [self.accountStatus setWantsLayer:YES]; [self.accountAvatar.layer setBackgroundColor:[[NSColor disabledControlTextColor] CGColor]]; [self.backgroundView setFillColor:[NSColor windowBackgroundColor]]; + NSColor *color = [self checkIsDarkMode] ? [NSColor lightGrayColor] : [NSColor darkGrayColor]; + self.rendezVousIndicator.image = [NSColor image: [NSImage imageNamed:@"ic_group.png"] tintedWithColor: color]; [self createTrackingArea]; } } @@ -109,5 +111,20 @@ NSTrackingArea *trackingArea; [self.backgroundView setFillColor: highlightBackground]; } +-(void) viewDidChangeEffectiveAppearance { + NSColor *color = [self checkIsDarkMode] ? [NSColor lightGrayColor] : [NSColor darkGrayColor]; + self.rendezVousIndicator.image = [NSColor image: [NSImage imageNamed:@"ic_group.png"] tintedWithColor: color]; + [super viewDidChangeEffectiveAppearance]; +} + +-(BOOL)checkIsDarkMode { + NSAppearance *appearance = NSAppearance.currentAppearance; + if (@available(*, macOS 10.14)) { + NSString *interfaceStyle = [NSUserDefaults.standardUserDefaults valueForKey:@"AppleInterfaceStyle"]; + return [interfaceStyle isEqualToString:@"Dark"]; + } + return NO; +} + @end diff --git a/ui/Base.lproj/AccAdvancedRing.xib b/ui/Base.lproj/AccAdvancedRing.xib index 43f0b5ee1a62b57a9a53d316c90603becca5ed0c..b188272e27ab592f059dfe56e9ac918614f817dc 100644 --- a/ui/Base.lproj/AccAdvancedRing.xib +++ b/ui/Base.lproj/AccAdvancedRing.xib @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="16097.2" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES"> +<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="16097.3" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES"> <dependencies> - <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="16097.2"/> + <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="16097.3"/> <capability name="System colors introduced in macOS 10.14" minToolsVersion="10.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> @@ -27,6 +27,7 @@ <outlet property="togglePeersDiscoveryButton" destination="vCh-8x-HcZ" id="tzX-y7-gCB"/> <outlet property="toggleUPnPButton" destination="VJ3-C0-3ir" id="0N8-LY-Ift"/> <outlet property="toggleVideoButton" destination="fIl-oJ-Wgd" id="7kB-v1-op2"/> + <outlet property="togleRendezVous" destination="YQr-hN-cWA" id="26K-4H-guD"/> <outlet property="turnAddressField" destination="JeL-QA-0kk" id="6Il-CO-H86"/> <outlet property="turnPasswordField" destination="V1s-ND-hrq" id="l27-SA-6wr"/> <outlet property="turnRealmField" destination="uVQ-Lb-Eb8" id="Aec-qt-8yF"/> @@ -40,11 +41,11 @@ <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/> <customObject id="-3" userLabel="Application" customClass="NSObject"/> <customView id="Hz6-mo-xeY"> - <rect key="frame" x="0.0" y="0.0" width="620" height="1440"/> + <rect key="frame" x="0.0" y="0.0" width="620" height="1468"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <subviews> <box boxType="custom" borderType="bezel" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="IaB-ij-6CA"> - <rect key="frame" x="0.0" y="1324" width="620" height="116"/> + <rect key="frame" x="0.0" y="1352" width="620" height="116"/> <view key="contentView" id="jpc-BS-IzV"> <rect key="frame" x="1" y="1" width="618" height="114"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> @@ -108,76 +109,113 @@ <color key="fillColor" name="windowBackgroundColor" catalog="System" colorSpace="catalog"/> </box> <box boxType="custom" borderType="bezel" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="ZNe-H0-dJk"> - <rect key="frame" x="0.0" y="1159" width="620" height="145"/> + <rect key="frame" x="0.0" y="1159" width="620" height="173"/> <view key="contentView" id="KaI-8h-Y8q"> - <rect key="frame" x="1" y="1" width="618" height="143"/> + <rect key="frame" x="1" y="1" width="618" height="171"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> - <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="COO-Od-fza"> - <rect key="frame" x="38" y="76" width="291" height="18"/> - <buttonCell key="cell" type="check" title="Allow incoming calls from unknown contacts" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="1Xr-BO-Pu3"> - <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> - <font key="font" metaFont="system"/> - </buttonCell> - <connections> - <action selector="allowCallFromUnknownPeer:" target="-2" id="aMN-9g-3ED"/> - </connections> - </button> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="dqM-tx-ynx"> - <rect key="frame" x="18" y="107" width="83" height="16"/> - <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Call settings" id="BIS-Ft-yJn"> - <font key="font" metaFont="systemSemibold" size="13"/> - <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> - <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> - </textFieldCell> - </textField> - <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="7AV-dG-fCE"> - <rect key="frame" x="38" y="18" width="123" height="18"/> - <buttonCell key="cell" type="check" title="Custom ringtone" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="qFq-Yh-2JL"> - <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> - <font key="font" metaFont="system"/> - </buttonCell> - <connections> - <action selector="autoEnableRingtone:" target="-2" id="MKv-hu-txN"/> - </connections> - </button> - <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Qcu-SR-qaS"> - <rect key="frame" x="163" y="10" width="58" height="32"/> - <buttonCell key="cell" type="push" bezelStyle="rounded" image="NSTouchBarFolderTemplate" imagePosition="leading" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="pA7-mc-7MH"> - <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="systemLight" size="13"/> - </buttonCell> - <connections> - <action selector="selectFile:" target="-2" id="5Sj-oW-f3r"/> - </connections> - </button> - <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Iwx-oz-bCK"> - <rect key="frame" x="38" y="47" width="128" height="18"/> - <buttonCell key="cell" type="check" title="Auto answer calls" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="DSe-Cs-oD6"> - <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> - <font key="font" metaFont="system"/> - </buttonCell> - <connections> - <action selector="autoAnswerCall:" target="-2" id="YmC-hg-0U7"/> - </connections> - </button> + <stackView distribution="fill" orientation="vertical" alignment="leading" spacing="13" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hmV-yq-CBz"> + <rect key="frame" x="20" y="20" width="578" height="131"/> + <subviews> + <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="dqM-tx-ynx"> + <rect key="frame" x="-2" y="115" width="83" height="16"/> + <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Call settings" id="BIS-Ft-yJn"> + <font key="font" metaFont="systemSemibold" size="13"/> + <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> + <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> + </textFieldCell> + </textField> + <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="COO-Od-fza"> + <rect key="frame" x="18" y="86" width="291" height="18"/> + <buttonCell key="cell" type="check" title="Allow incoming calls from unknown contacts" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="1Xr-BO-Pu3"> + <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> + <font key="font" metaFont="system"/> + </buttonCell> + <connections> + <action selector="allowCallFromUnknownPeer:" target="-2" id="aMN-9g-3ED"/> + </connections> + </button> + <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Iwx-oz-bCK"> + <rect key="frame" x="18" y="59" width="128" height="18"/> + <buttonCell key="cell" type="check" title="Auto answer calls" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="DSe-Cs-oD6"> + <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> + <font key="font" metaFont="system"/> + </buttonCell> + <connections> + <action selector="autoAnswerCall:" target="-2" id="YmC-hg-0U7"/> + </connections> + </button> + <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="YQr-hN-cWA"> + <rect key="frame" x="18" y="32" width="438" height="18"/> + <buttonCell key="cell" type="check" title="Enable rendez-vous mode: turn your account into a conference room" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="2cZ-SI-nbz"> + <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> + <font key="font" metaFont="system"/> + </buttonCell> + <connections> + <action selector="enableRendezVous:" target="-2" id="jBr-CE-f2m"/> + </connections> + </button> + <stackView distribution="fill" orientation="horizontal" alignment="centerY" spacing="10" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fw9-zn-sgJ"> + <rect key="frame" x="20" y="0.0" width="175" height="21"/> + <subviews> + <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="7AV-dG-fCE"> + <rect key="frame" x="-2" y="2" width="123" height="18"/> + <buttonCell key="cell" type="check" title="Custom ringtone" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="qFq-Yh-2JL"> + <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> + <font key="font" metaFont="system"/> + </buttonCell> + <connections> + <action selector="autoEnableRingtone:" target="-2" id="MKv-hu-txN"/> + </connections> + </button> + <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Qcu-SR-qaS"> + <rect key="frame" x="123" y="-7" width="58" height="32"/> + <buttonCell key="cell" type="push" bezelStyle="rounded" image="NSTouchBarFolderTemplate" imagePosition="leading" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="pA7-mc-7MH"> + <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> + <font key="font" metaFont="systemLight" size="13"/> + </buttonCell> + <connections> + <action selector="selectFile:" target="-2" id="5Sj-oW-f3r"/> + </connections> + </button> + </subviews> + <visibilityPriorities> + <integer value="1000"/> + <integer value="1000"/> + </visibilityPriorities> + <customSpacing> + <real value="3.4028234663852886e+38"/> + <real value="3.4028234663852886e+38"/> + </customSpacing> + </stackView> + </subviews> + <constraints> + <constraint firstItem="fw9-zn-sgJ" firstAttribute="leading" secondItem="COO-Od-fza" secondAttribute="leading" id="9wU-yi-llZ"/> + <constraint firstItem="Iwx-oz-bCK" firstAttribute="leading" secondItem="COO-Od-fza" secondAttribute="leading" id="IsR-Ou-dbG"/> + <constraint firstItem="fw9-zn-sgJ" firstAttribute="leading" secondItem="YQr-hN-cWA" secondAttribute="leading" id="WkU-Gd-m3L"/> + <constraint firstItem="COO-Od-fza" firstAttribute="leading" secondItem="hmV-yq-CBz" secondAttribute="leading" constant="20" id="YSh-sa-RkS"/> + </constraints> + <visibilityPriorities> + <integer value="1000"/> + <integer value="1000"/> + <integer value="1000"/> + <integer value="1000"/> + <integer value="1000"/> + </visibilityPriorities> + <customSpacing> + <real value="3.4028234663852886e+38"/> + <real value="3.4028234663852886e+38"/> + <real value="3.4028234663852886e+38"/> + <real value="3.4028234663852886e+38"/> + <real value="3.4028234663852886e+38"/> + </customSpacing> + </stackView> </subviews> <constraints> - <constraint firstItem="dqM-tx-ynx" firstAttribute="leading" secondItem="KaI-8h-Y8q" secondAttribute="leading" constant="20" id="31p-Fn-db7"/> - <constraint firstItem="dqM-tx-ynx" firstAttribute="top" secondItem="KaI-8h-Y8q" secondAttribute="top" constant="20" id="90y-tP-vM5"/> - <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="COO-Od-fza" secondAttribute="trailing" constant="20" symbolic="YES" id="B9g-7D-Tlf"/> - <constraint firstItem="COO-Od-fza" firstAttribute="leading" secondItem="KaI-8h-Y8q" secondAttribute="leading" constant="40" id="Cgb-g6-ZGk"/> - <constraint firstItem="7AV-dG-fCE" firstAttribute="top" secondItem="Iwx-oz-bCK" secondAttribute="bottom" constant="15" id="EvV-Qa-VpP"/> - <constraint firstAttribute="bottom" secondItem="7AV-dG-fCE" secondAttribute="bottom" constant="20" id="K5t-Fk-LvR"/> - <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="Qcu-SR-qaS" secondAttribute="trailing" constant="20" symbolic="YES" id="QaP-yF-zUh"/> - <constraint firstItem="7AV-dG-fCE" firstAttribute="leading" secondItem="COO-Od-fza" secondAttribute="leading" id="RjG-CT-kSp"/> - <constraint firstItem="Iwx-oz-bCK" firstAttribute="leading" secondItem="COO-Od-fza" secondAttribute="leading" id="W4s-NX-qJd"/> - <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="dqM-tx-ynx" secondAttribute="trailing" constant="20" symbolic="YES" id="Y28-cZ-Suk"/> - <constraint firstItem="Iwx-oz-bCK" firstAttribute="top" secondItem="COO-Od-fza" secondAttribute="bottom" constant="15" id="gzO-Nh-Lb9"/> - <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="Iwx-oz-bCK" secondAttribute="trailing" constant="20" symbolic="YES" id="h7J-d7-EhW"/> - <constraint firstItem="Qcu-SR-qaS" firstAttribute="centerY" secondItem="7AV-dG-fCE" secondAttribute="centerY" id="mdp-K6-Pdh"/> - <constraint firstItem="COO-Od-fza" firstAttribute="top" secondItem="dqM-tx-ynx" secondAttribute="bottom" constant="15" id="nxr-d7-AEs"/> - <constraint firstItem="Qcu-SR-qaS" firstAttribute="leading" secondItem="7AV-dG-fCE" secondAttribute="trailing" constant="10" id="uWm-Da-7Z3"/> + <constraint firstAttribute="bottom" secondItem="hmV-yq-CBz" secondAttribute="bottom" constant="20" id="Scn-sb-PVL"/> + <constraint firstItem="hmV-yq-CBz" firstAttribute="leading" secondItem="KaI-8h-Y8q" secondAttribute="leading" constant="20" id="XT8-lg-wv0"/> + <constraint firstAttribute="trailing" secondItem="hmV-yq-CBz" secondAttribute="trailing" constant="20" id="dG4-2p-yTw"/> + <constraint firstItem="hmV-yq-CBz" firstAttribute="top" secondItem="KaI-8h-Y8q" secondAttribute="top" constant="20" id="y9r-RD-lkU"/> </constraints> </view> <color key="borderColor" name="unemphasizedSelectedTextBackgroundColor" catalog="System" colorSpace="catalog"/> diff --git a/ui/Base.lproj/AccountMenuItemView.xib b/ui/Base.lproj/AccountMenuItemView.xib index 41292f57ae0103158b476b2a8996ae1d01035244..7ee501294cd6bf912e33beeac56cb129ae394106 100644 --- a/ui/Base.lproj/AccountMenuItemView.xib +++ b/ui/Base.lproj/AccountMenuItemView.xib @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="15505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> +<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="16097.3" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> <dependencies> - <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="15505"/> + <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="16097.3"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <objects> @@ -15,6 +15,7 @@ <outlet property="containerView" destination="Hz6-mo-xeY" id="t5f-yD-zPi"/> <outlet property="createNewAccount" destination="BkF-b3-tzE" id="fcw-Qc-dRy"/> <outlet property="createNewAccountImage" destination="IyH-ia-I3z" id="4uD-jE-Svj"/> + <outlet property="rendezVousIndicator" destination="kKO-1B-QJK" id="irM-Fu-ZFu"/> <outlet property="userNameLabel" destination="tLn-uH-gZ6" id="pGG-sb-IlW"/> </connections> </customObject> @@ -84,7 +85,7 @@ <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tLn-uH-gZ6"> <rect key="frame" x="50" y="10" width="35" height="15"/> <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" alignment="left" title="Label" drawsBackground="YES" id="uPR-fc-nOP"> - <font key="font" metaFont="cellTitle"/> + <font key="font" metaFont="label" size="12"/> <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </textFieldCell> @@ -104,11 +105,19 @@ <constraint firstAttribute="height" constant="20" id="8mL-jo-3Kb"/> </constraints> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Label" drawsBackground="YES" id="gOS-aC-TGo"> - <font key="font" metaFont="cellTitle"/> + <font key="font" metaFont="label" size="12"/> <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </textFieldCell> </textField> + <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="kKO-1B-QJK"> + <rect key="frame" x="250" y="8" width="25" height="20"/> + <constraints> + <constraint firstAttribute="width" constant="25" id="VSP-HC-jbY"/> + <constraint firstAttribute="height" constant="20" id="Y1X-sD-SI8"/> + </constraints> + <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="VeT-DQ-gnU"/> + </imageView> </subviews> <constraints> <constraint firstAttribute="trailing" secondItem="BkF-b3-tzE" secondAttribute="trailing" id="4zr-zt-tNR"/> @@ -116,6 +125,7 @@ <constraint firstAttribute="bottom" secondItem="BkF-b3-tzE" secondAttribute="bottom" id="Erj-JK-1Jc"/> <constraint firstAttribute="trailing" secondItem="0PP-Di-b7L" secondAttribute="trailing" constant="5" id="GU6-yw-2Nu"/> <constraint firstItem="BkF-b3-tzE" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" id="M0t-ie-V4X"/> + <constraint firstAttribute="trailing" secondItem="kKO-1B-QJK" secondAttribute="trailing" constant="5" id="M5p-wX-3uG"/> <constraint firstItem="TdK-5g-ddU" firstAttribute="trailing" secondItem="XKc-lc-K67" secondAttribute="trailing" id="NU8-DL-jhB"/> <constraint firstItem="0PP-Di-b7L" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="tLn-uH-gZ6" secondAttribute="trailing" constant="20" id="Nb4-Z8-9Ul"/> <constraint firstItem="TdK-5g-ddU" firstAttribute="bottom" secondItem="XKc-lc-K67" secondAttribute="bottom" id="PGs-u9-1qr"/> @@ -127,6 +137,7 @@ <constraint firstItem="XKc-lc-K67" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="5" id="TUF-fx-zE7"/> <constraint firstItem="tLn-uH-gZ6" firstAttribute="leading" secondItem="V91-eS-dUh" secondAttribute="leading" id="WcF-NN-pmz"/> <constraint firstItem="ZIZ-jd-eLK" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" id="X9L-7K-HGm"/> + <constraint firstItem="kKO-1B-QJK" firstAttribute="centerY" secondItem="tLn-uH-gZ6" secondAttribute="centerY" id="Ya0-ML-RbE"/> <constraint firstItem="0PP-Di-b7L" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="V91-eS-dUh" secondAttribute="trailing" constant="20" id="ZH1-rk-GX6"/> <constraint firstItem="IyH-ia-I3z" firstAttribute="centerY" secondItem="Hz6-mo-xeY" secondAttribute="centerY" id="hQd-Pw-y4Q"/> <constraint firstItem="XKc-lc-K67" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" constant="10" id="ipM-Ca-Man"/> diff --git a/ui/Base.lproj/RingWindow.xib b/ui/Base.lproj/RingWindow.xib index 3fa90abb935c8beb77e16edccb732071d0021998..a9b405a21cbb4e16e12f6385bce998ee84b4ff11 100644 --- a/ui/Base.lproj/RingWindow.xib +++ b/ui/Base.lproj/RingWindow.xib @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="16097.2" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> +<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="16097.3" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> <dependencies> - <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="16097.2"/> + <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="16097.3"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <objects> @@ -30,7 +30,7 @@ <rect key="contentRect" x="196" y="240" width="1053" height="658"/> <rect key="screenRect" x="0.0" y="0.0" width="1440" height="877"/> <view key="contentView" autoresizesSubviews="NO" misplaced="YES" id="se5-gp-TjO"> - <rect key="frame" x="0.0" y="0.0" width="1053" height="577"/> + <rect key="frame" x="0.0" y="0.0" width="1053" height="658"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <customView wantsLayer="YES" translatesAutoresizingMaskIntoConstraints="NO" id="YgH-CN-tkB" userLabel="Left Panel"> @@ -795,10 +795,19 @@ <action selector="openAccountSettings:" target="-2" id="slP-fe-WpZ"/> </connections> </button> + <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="2yq-RD-b57"> + <rect key="frame" x="83" y="520" width="20" height="15"/> + <constraints> + <constraint firstAttribute="width" constant="20" id="1of-Yk-cii"/> + <constraint firstAttribute="height" constant="15" id="L2Z-Hy-OVI"/> + </constraints> + <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="yWN-EL-f5K"/> + </imageView> </subviews> <constraints> <constraint firstAttribute="bottom" secondItem="xXW-iq-GcP" secondAttribute="bottom" id="6Go-Jc-uHI"/> <constraint firstItem="6ek-bf-c5r" firstAttribute="centerY" secondItem="ztj-Lo-KjI" secondAttribute="centerY" id="7VR-it-jGk"/> + <constraint firstItem="2yq-RD-b57" firstAttribute="leading" secondItem="V1L-TB-Wng" secondAttribute="leading" id="F1M-Td-Hkd"/> <constraint firstItem="PoQ-x4-ES3" firstAttribute="top" secondItem="anW-mG-aee" secondAttribute="bottom" constant="10" id="FzA-Ba-WIt"/> <constraint firstItem="anW-mG-aee" firstAttribute="top" secondItem="0xt-Yr-Jqx" secondAttribute="top" constant="35" id="GET-v2-CBd"/> <constraint firstAttribute="trailing" secondItem="6ek-bf-c5r" secondAttribute="trailing" constant="13" id="GhG-h3-Ynv"/> @@ -811,6 +820,7 @@ <constraint firstItem="PoQ-x4-ES3" firstAttribute="leading" secondItem="0xt-Yr-Jqx" secondAttribute="leading" constant="13" id="XzG-Pl-DF1"/> <constraint firstItem="tBR-mv-w66" firstAttribute="leading" secondItem="3Nq-Rz-Etg" secondAttribute="leading" constant="257" id="aNt-lE-9XG"/> <constraint firstItem="6ek-bf-c5r" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="V1L-TB-Wng" secondAttribute="trailing" constant="20" id="acC-II-m6u"/> + <constraint firstItem="2yq-RD-b57" firstAttribute="top" secondItem="HIH-Ex-m3b" secondAttribute="bottom" constant="2" id="cEM-3H-cea"/> <constraint firstItem="xXW-iq-GcP" firstAttribute="top" secondItem="3Nq-Rz-Etg" secondAttribute="bottom" priority="999" constant="8" id="dFh-ij-z52"/> <constraint firstItem="xXW-iq-GcP" firstAttribute="leading" secondItem="0xt-Yr-Jqx" secondAttribute="leading" id="gEe-iR-Ygm"/> <constraint firstItem="tBR-mv-w66" firstAttribute="top" secondItem="3Nq-Rz-Etg" secondAttribute="top" constant="-4" id="lxv-3f-EsK"/> @@ -1034,6 +1044,7 @@ Copy and share it with your friends!</string> <outlet property="accountSelectionButton" destination="V1L-TB-Wng" id="lkm-Xs-Uby"/> <outlet property="accountStatus" destination="0Rh-O4-gug" id="bm4-tU-5i9"/> <outlet property="profileImage" destination="ztj-Lo-KjI" id="YA7-2b-b9W"/> + <outlet property="rendezVousIndicator" destination="2yq-RD-b57" id="hg0-qn-6dc"/> <outlet property="selectedAccountTitle" destination="HIH-Ex-m3b" id="5Rz-UQ-9kp"/> <outlet property="view" destination="anW-mG-aee" id="zig-fd-PDl"/> </connections>