diff --git a/Applications/TextMate/src/Favorites.mm b/Applications/TextMate/src/Favorites.mm index c1a20f00..7fa6760b 100644 --- a/Applications/TextMate/src/Favorites.mm +++ b/Applications/TextMate/src/Favorites.mm @@ -70,14 +70,19 @@ static NSUInteger const kOakSourceIndexFavorites = 1; OakScopeBarView* scopeBar = [OakScopeBarView new]; scopeBar.labels = self.sourceListLabels; + OakBackgroundFillView* aboveScopeBarDark = OakCreateHorizontalLine([NSColor grayColor], [NSColor lightGrayColor]); + OakBackgroundFillView* aboveScopeBarLight = OakCreateHorizontalLine([NSColor colorWithCalibratedWhite:0.797 alpha:1], [NSColor colorWithCalibratedWhite:0.912 alpha:1]); + OakBackgroundFillView* topDivider = OakCreateHorizontalLine([NSColor darkGrayColor], [NSColor colorWithCalibratedWhite:0.551 alpha:1]); + OakBackgroundFillView* bottomDivider = OakCreateHorizontalLine([NSColor grayColor], [NSColor lightGrayColor]); + NSDictionary* views = @{ @"searchField" : self.searchField, - @"aboveScopeBarDark" : OakCreateHorizontalLine([NSColor grayColor], [NSColor lightGrayColor]), - @"aboveScopeBarLight" : OakCreateHorizontalLine([NSColor colorWithCalibratedWhite:0.797 alpha:1], [NSColor colorWithCalibratedWhite:0.912 alpha:1]), + @"aboveScopeBarDark" : aboveScopeBarDark, + @"aboveScopeBarLight" : aboveScopeBarLight, @"scopeBar" : scopeBar, - @"topDivider" : OakCreateHorizontalLine([NSColor darkGrayColor], [NSColor colorWithCalibratedWhite:0.551 alpha:1]), + @"topDivider" : topDivider, @"scrollView" : self.scrollView, - @"bottomDivider" : OakCreateHorizontalLine([NSColor grayColor], [NSColor lightGrayColor]), + @"bottomDivider" : bottomDivider, @"statusTextField" : self.statusTextField, @"itemCountTextField" : self.itemCountTextField, }; @@ -91,6 +96,11 @@ static NSUInteger const kOakSourceIndexFavorites = 1; [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(8)-[scopeBar]-(>=8)-|" options:NSLayoutFormatAlignAllBaseline metrics:nil views:views]]; [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[scrollView(==topDivider,==bottomDivider)]|" options:0 metrics:nil views:views]]; [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[statusTextField]-[itemCountTextField]-|" options:NSLayoutFormatAlignAllCenterY metrics:nil views:views]]; + + [contentView addConstraint:[NSLayoutConstraint constraintWithItem:aboveScopeBarLight attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; + [contentView addConstraint:[NSLayoutConstraint constraintWithItem:topDivider attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; + [contentView addConstraint:[NSLayoutConstraint constraintWithItem:bottomDivider attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; + [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(2)-[searchField]-(8)-[aboveScopeBarDark][aboveScopeBarLight]-(3)-[scopeBar]-(4)-[topDivider][scrollView(>=50)][bottomDivider]-(4)-[statusTextField]-(5)-|" options:0 metrics:nil views:views]]; self.sourceIndex = [[NSUserDefaults standardUserDefaults] integerForKey:kUserDefaultsOpenProjectSourceIndex]; diff --git a/Frameworks/CommitWindow/src/CommitWindow.mm b/Frameworks/CommitWindow/src/CommitWindow.mm index 444a86d6..0985cd1c 100644 --- a/Frameworks/CommitWindow/src/CommitWindow.mm +++ b/Frameworks/CommitWindow/src/CommitWindow.mm @@ -185,6 +185,10 @@ static void* kOakCommitWindowIncludeItemBinding = &kOakCommitWindowIncludeItemBi [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[previousMessages(>=200)]-(20)-|" options:0 metrics:nil views:views]]; [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[documentView(>=400,==topDocumentViewDivider,==bottomDocumentViewDivider)]|" options:0 metrics:nil views:views]]; [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(20)-[showTableButton]" options:0 metrics:nil views:views]]; + + [contentView addConstraint:[NSLayoutConstraint constraintWithItem:_topDocumentViewDivider attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; + [contentView addConstraint:[NSLayoutConstraint constraintWithItem:_bottomDocumentViewDivider attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; + [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(12)-[previousMessages]-(12)-[topDocumentViewDivider][documentView][bottomDocumentViewDivider]-(12)-[showTableButton]" options:0 metrics:nil views:views]]; if(self.showsTableView) @@ -366,6 +370,9 @@ static void* kOakCommitWindowIncludeItemBinding = &kOakCommitWindowIncludeItemBi [scrollViewConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[showTableButton]-(12)-[topScrollViewDivider][scrollView][bottomScrollViewDivider]" options:0 metrics:nil views:views]]; [scrollViewConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[scrollView(==topScrollViewDivider,==bottomScrollViewDivider)]|" options:0 metrics:nil views:views]]; + [scrollViewConstraints addObject:[NSLayoutConstraint constraintWithItem:_topScrollViewDivider attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; + [scrollViewConstraints addObject:[NSLayoutConstraint constraintWithItem:_bottomScrollViewDivider attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; + _scrollViewConstraints = scrollViewConstraints; _scrollViewHeightConstraint = [NSLayoutConstraint constraintWithItem:_scrollView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:0]; [contentView addConstraints:_scrollViewConstraints]; diff --git a/Frameworks/HTMLOutput/src/browser/HOBrowserView.mm b/Frameworks/HTMLOutput/src/browser/HOBrowserView.mm index e46a4134..ae22a3fc 100644 --- a/Frameworks/HTMLOutput/src/browser/HOBrowserView.mm +++ b/Frameworks/HTMLOutput/src/browser/HOBrowserView.mm @@ -51,7 +51,7 @@ static void ShowLoadErrorForURL (WebFrame* frame, NSURL* url, NSError* error) OakAddAutoLayoutViewsToSuperview([views allValues], self); - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[webView(==statusBar,==divider)]|" options:NSLayoutFormatAlignAllTop metrics:nil views:views]]; + [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[webView(==statusBar,==divider)]|" options:NSLayoutFormatAlignAllTop metrics:nil views:views]]; [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[webView(>=10)][divider][statusBar]|" options:NSLayoutFormatAlignAllLeading metrics:nil views:views]]; } return self; diff --git a/Frameworks/HTMLOutput/src/browser/HOStatusBar.mm b/Frameworks/HTMLOutput/src/browser/HOStatusBar.mm index bea906fe..ec0811a1 100644 --- a/Frameworks/HTMLOutput/src/browser/HOStatusBar.mm +++ b/Frameworks/HTMLOutput/src/browser/HOStatusBar.mm @@ -106,7 +106,7 @@ static NSTextField* OakCreateTextField () NSArray* layout = @[ @"H:|-(3)-[back(==22)]-(2)-[forward(==back)]-(2)-[divider]", - @"V:|[back(==forward,==divider)]|", + @"V:|[back(==forward,==divider)]|", @"V:|[forward]|", @"V:|[divider]|", @"V:[status]-5-|", ]; diff --git a/Frameworks/OakAppKit/src/OakTabItemView.mm b/Frameworks/OakAppKit/src/OakTabItemView.mm index 4cb2f41f..fd69832a 100644 --- a/Frameworks/OakAppKit/src/OakTabItemView.mm +++ b/Frameworks/OakAppKit/src/OakTabItemView.mm @@ -346,6 +346,7 @@ static NSString* kUserDefaultsTabItemLineBreakStyleKey = @"tabItemLineBreakStyle NSDictionary* views = @{ @"left" : _leftCapView, @"right" : _rightCapView, @"title" : _textField, @"close" : _closeButton, @"overflow" : (_overflowButton ?: [NSNull null]) }; [_myConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[left]-(3)-[close]-(>=3)-[title]-(>=3)-[right]-(0@450)-|" options:0 metrics:nil views:views]]; [_myConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[left(==right)]|" options:0 metrics:nil views:views]]; + [_myConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[right]|" options:0 metrics:nil views:views]]; [_myConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[close]-(5)-|" options:0 metrics:nil views:views]]; [_myConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[title]-(5)-|" options:0 metrics:nil views:views]]; diff --git a/Frameworks/OakFileBrowser/src/ui/OFBActionsView.mm b/Frameworks/OakFileBrowser/src/ui/OFBActionsView.mm index 2dab0be0..eace15a0 100644 --- a/Frameworks/OakFileBrowser/src/ui/OFBActionsView.mm +++ b/Frameworks/OakFileBrowser/src/ui/OFBActionsView.mm @@ -47,9 +47,11 @@ static NSButton* OakCreateImageButton (NSImage* image) [wrappedActionsPopUpButton addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[popup]|" options:0 metrics:nil views:@{ @"popup" : self.actionsPopUpButton }]]; [wrappedActionsPopUpButton addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[popup]|" options:0 metrics:nil views:@{ @"popup" : self.actionsPopUpButton }]]; + NSView* divider = OakCreateDividerImageView(); + NSDictionary* views = @{ @"create" : self.createButton, - @"divider" : OakCreateDividerImageView(), + @"divider" : divider, @"actions" : wrappedActionsPopUpButton, @"reload" : self.reloadButton, @"search" : self.searchButton, @@ -60,7 +62,7 @@ static NSButton* OakCreateImageButton (NSImage* image) OakAddAutoLayoutViewsToSuperview([views allValues], self); OakSetupKeyViewLoop(@[ self, _createButton, _actionsPopUpButton, _reloadButton, _searchButton, _favoritesButton, _scmButton ], NO); - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-3-[create(==24)]-1-[divider]-5-[actions(==30)]-(>=8)-[reload(==22,==search,==favorites,==scm)][search]-1-[favorites]-2-[scm]-(12)-|" options:0 metrics:nil views:views]]; + [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-3-[create(==24)]-1-[divider]-5-[actions(==30)]-(>=8)-[reload(==22,==search,==favorites,==scm)][search]-1-[favorites]-2-[scm]-(12)-|" options:NSLayoutFormatAlignAllCenterY metrics:nil views:views]]; [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[create(==divider,==actions,==reload,==search,==favorites,==scm)]|" options:0 metrics:nil views:views]]; } return self; diff --git a/Frameworks/OakFileBrowser/src/ui/OFBHeaderView.mm b/Frameworks/OakFileBrowser/src/ui/OFBHeaderView.mm index 6c3653c8..09dbdae2 100644 --- a/Frameworks/OakFileBrowser/src/ui/OFBHeaderView.mm +++ b/Frameworks/OakFileBrowser/src/ui/OFBHeaderView.mm @@ -132,7 +132,7 @@ static NSPopUpButton* OakCreateFolderPopUpButton () OakAddAutoLayoutViewsToSuperview([views allValues], self); OakSetupKeyViewLoop(@[ self, _folderPopUpButton, _goBackButton, _goForwardButton ], NO); - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(-3)-[folder(>=75)]-(3)-[divider]-(2)-[back(==22)]-(2)-[forward(==back)]-(3)-|" options:0 metrics:nil views:views]]; + [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(-3)-[folder(>=75)]-(3)-[divider]-(2)-[back(==22)]-(2)-[forward(==back)]-(3)-|" options:NSLayoutFormatAlignAllCenterY metrics:nil views:views]]; [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[bottomDivider]|" options:0 metrics:nil views:views]]; [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[folder(==divider,==back,==forward)][bottomDivider]|" options:0 metrics:nil views:views]]; diff --git a/Frameworks/OakFilterList/src/BundleItemChooser.mm b/Frameworks/OakFilterList/src/BundleItemChooser.mm index df7aafaa..a6d69da8 100644 --- a/Frameworks/OakFilterList/src/BundleItemChooser.mm +++ b/Frameworks/OakFilterList/src/BundleItemChooser.mm @@ -579,7 +579,12 @@ static std::vector relevant_items_in_scope (scope::context_t [constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(24)-[status]-[edit]-[select]-|" options:NSLayoutFormatAlignAllCenterY metrics:nil views:views]]; [constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(2)-[searchField]-(8)-[aboveScopeBarDark][aboveScopeBarLight]-(3)-[scopeBar]-(4)-[topDivider][scrollView(>=50)][bottomDivider]-(4)-[select]-(5)-|" options:0 metrics:nil views:views]]; - [self.window.contentView addConstraints:constraints]; + NSView* contentView = self.window.contentView; + [constraints addObject:[NSLayoutConstraint constraintWithItem:_aboveScopeBarLight attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; + [constraints addObject:[NSLayoutConstraint constraintWithItem:_topDivider attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; + [constraints addObject:[NSLayoutConstraint constraintWithItem:_bottomDivider attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; + + [contentView addConstraints:constraints]; self.layoutConstraints = constraints; OakSetupKeyViewLoop(@[ (self.keyEquivalentInput ? self.keyEquivalentView : self.searchField), self.actionsPopUpButton, self.scopeBar, self.editButton, self.selectButton ]); diff --git a/Frameworks/OakFilterList/src/FileChooser.mm b/Frameworks/OakFilterList/src/FileChooser.mm index 4cd330a3..67617796 100644 --- a/Frameworks/OakFilterList/src/FileChooser.mm +++ b/Frameworks/OakFilterList/src/FileChooser.mm @@ -265,15 +265,20 @@ static NSDictionary* globs_for_path (std::string const& path) _progressIndicator.controlSize = NSSmallControlSize; _progressIndicator.displayedWhenStopped = NO; + OakBackgroundFillView* aboveScopeBarDark = OakCreateHorizontalLine([NSColor grayColor], [NSColor lightGrayColor]); + OakBackgroundFillView* aboveScopeBarLight = OakCreateHorizontalLine([NSColor colorWithCalibratedWhite:0.797 alpha:1], [NSColor colorWithCalibratedWhite:0.912 alpha:1]); + OakBackgroundFillView* topDivider = OakCreateHorizontalLine([NSColor darkGrayColor], [NSColor colorWithCalibratedWhite:0.551 alpha:1]); + OakBackgroundFillView* bottomDivider = OakCreateHorizontalLine([NSColor grayColor], [NSColor lightGrayColor]); + NSDictionary* views = @{ @"searchField" : self.searchField, - @"aboveScopeBarDark" : OakCreateHorizontalLine([NSColor grayColor], [NSColor lightGrayColor]), - @"aboveScopeBarLight" : OakCreateHorizontalLine([NSColor colorWithCalibratedWhite:0.797 alpha:1], [NSColor colorWithCalibratedWhite:0.912 alpha:1]), + @"aboveScopeBarDark" : aboveScopeBarDark, + @"aboveScopeBarLight" : aboveScopeBarLight, @"scopeBar" : scopeBar, - @"topDivider" : OakCreateHorizontalLine([NSColor darkGrayColor], [NSColor colorWithCalibratedWhite:0.551 alpha:1]), + @"topDivider" : topDivider, @"scrollView" : self.scrollView, - @"bottomDivider" : OakCreateHorizontalLine([NSColor grayColor], [NSColor lightGrayColor]), - @"statusTextField" : self.statusTextField, + @"bottomDivider" : bottomDivider, + @"statusTextField" : self.statusTextField, @"itemCountTextField" : self.itemCountTextField, @"progressIndicator" : _progressIndicator, }; @@ -287,6 +292,11 @@ static NSDictionary* globs_for_path (std::string const& path) [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(8)-[scopeBar]-(>=8)-|" options:NSLayoutFormatAlignAllBaseline metrics:nil views:views]]; [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[scrollView(==topDivider,==bottomDivider)]|" options:0 metrics:nil views:views]]; [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(24)-[statusTextField]-[itemCountTextField]-(4)-[progressIndicator]-(4)-|" options:NSLayoutFormatAlignAllCenterY metrics:nil views:views]]; + + [contentView addConstraint:[NSLayoutConstraint constraintWithItem:aboveScopeBarLight attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; + [contentView addConstraint:[NSLayoutConstraint constraintWithItem:topDivider attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; + [contentView addConstraint:[NSLayoutConstraint constraintWithItem:bottomDivider attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; + [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(2)-[searchField]-(8)-[aboveScopeBarDark][aboveScopeBarLight]-(3)-[scopeBar]-(4)-[topDivider][scrollView(>=50)][bottomDivider]-(4)-[statusTextField]-(5)-|" options:0 metrics:nil views:views]]; self.sourceIndex = [[NSUserDefaults standardUserDefaults] integerForKey:kUserDefaultsFileChooserSourceIndexKey]; diff --git a/Frameworks/OakFilterList/src/SymbolChooser.mm b/Frameworks/OakFilterList/src/SymbolChooser.mm index 0894884d..479a9f81 100644 --- a/Frameworks/OakFilterList/src/SymbolChooser.mm +++ b/Frameworks/OakFilterList/src/SymbolChooser.mm @@ -41,11 +41,14 @@ static SymbolChooserItem* CreateItem (OakDocument* document, text::pos_t const& { self.window.title = @"Jump to Symbol"; + OakBackgroundFillView* topDivider = OakCreateHorizontalLine([NSColor grayColor], [NSColor lightGrayColor]); + OakBackgroundFillView* bottomDivider = OakCreateHorizontalLine([NSColor grayColor], [NSColor lightGrayColor]); + NSDictionary* views = @{ @"searchField" : self.searchField, - @"topDivider" : OakCreateHorizontalLine([NSColor grayColor], [NSColor lightGrayColor]), + @"topDivider" : topDivider, @"scrollView" : self.scrollView, - @"bottomDivider" : OakCreateHorizontalLine([NSColor grayColor], [NSColor lightGrayColor]), + @"bottomDivider" : bottomDivider, @"statusTextField" : self.statusTextField, @"itemCountTextField" : self.itemCountTextField, }; @@ -55,7 +58,11 @@ static SymbolChooserItem* CreateItem (OakDocument* document, text::pos_t const& [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(8)-[searchField(>=50)]-(8)-|" options:0 metrics:nil views:views]]; [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[scrollView(==topDivider,==bottomDivider)]|" options:0 metrics:nil views:views]]; - [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[statusTextField]-[itemCountTextField]-|" options:NSLayoutFormatAlignAllCenterY metrics:nil views:views]]; + + [contentView addConstraint:[NSLayoutConstraint constraintWithItem:topDivider attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; + [contentView addConstraint:[NSLayoutConstraint constraintWithItem:bottomDivider attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; + + [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[statusTextField]-[itemCountTextField]-|" options:NSLayoutFormatAlignAllCenterY metrics:nil views:views]]; [contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(2)-[searchField]-(8)-[topDivider][scrollView(>=50)][bottomDivider]-(4)-[statusTextField]-(5)-|" options:0 metrics:nil views:views]]; } return self; diff --git a/Frameworks/OakTextView/src/OTVStatusBar.mm b/Frameworks/OakTextView/src/OTVStatusBar.mm index 61df35e1..6d241c29 100644 --- a/Frameworks/OakTextView/src/OTVStatusBar.mm +++ b/Frameworks/OakTextView/src/OTVStatusBar.mm @@ -90,18 +90,26 @@ static NSMenuItem* OakCreateIndentMenuItem (NSString* title, SEL action, id targ [wrappedBundleItemsPopUpButton addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[popup]|" options:0 metrics:nil views:@{ @"popup" : self.bundleItemsPopUp }]]; [wrappedBundleItemsPopUpButton addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[popup]|" options:0 metrics:nil views:@{ @"popup" : self.bundleItemsPopUp }]]; + NSTextField* line = OakCreateTextField(@"Line:"); + + NSView* dividerOne = OakCreateDividerImageView(); + NSView* dividerTwo = OakCreateDividerImageView(); + NSView* dividerThree = OakCreateDividerImageView(); + NSView* dividerFour = OakCreateDividerImageView(); + NSView* dividerFive = OakCreateDividerImageView(); + NSDictionary* views = @{ - @"line" : OakCreateTextField(@"Line:"), + @"line" : line, @"selection" : self.selectionField, - @"dividerOne" : OakCreateDividerImageView(), + @"dividerOne" : dividerOne, @"grammar" : self.grammarPopUp, - @"dividerTwo" : OakCreateDividerImageView(), + @"dividerTwo" : dividerTwo, @"items" : wrappedBundleItemsPopUpButton, - @"dividerThree" : OakCreateDividerImageView(), + @"dividerThree" : dividerThree, @"tabSize" : self.tabSizePopUp, - @"dividerFour" : OakCreateDividerImageView(), + @"dividerFour" : dividerFour, @"symbol" : self.symbolPopUp, - @"dividerFive" : OakCreateDividerImageView(), + @"dividerFive" : dividerFive, @"recording" : self.macroRecordingButton, }; @@ -119,6 +127,12 @@ static NSMenuItem* OakCreateIndentMenuItem (NSString* title, SEL action, id targ [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-10-[line]-[selection(>=50,<=225)]-8-[dividerOne]-(-2)-[grammar(>=125@400,>=50,<=225)]-5-[dividerTwo]-(-2)-[tabSize(<=102)]-4-[dividerThree]-5-[items(==30)]-4-[dividerFour]-(-2)-[symbol(>=125@450,>=50)]-5-[dividerFive]-6-[recording]-7-|" options:0 metrics:nil views:views]]; [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[dividerOne(==dividerTwo,==dividerThree,==dividerFour,==dividerFive)]|" options:0 metrics:nil views:views]]; + + [self addConstraint:[NSLayoutConstraint constraintWithItem:dividerTwo attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0]]; + [self addConstraint:[NSLayoutConstraint constraintWithItem:dividerThree attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0]]; + [self addConstraint:[NSLayoutConstraint constraintWithItem:dividerFour attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0]]; + [self addConstraint:[NSLayoutConstraint constraintWithItem:dividerFive attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0]]; + // Baseline align text-controls [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[line]-[selection]-(>=1)-[grammar]-(>=1)-[tabSize]-(>=1)-[symbol]" options:NSLayoutFormatAlignAllBaseline metrics:nil views:views]]; // Center non-text control diff --git a/Frameworks/OakTextView/src/OakDocumentView.mm b/Frameworks/OakTextView/src/OakDocumentView.mm index 239b9ded..33d6c681 100644 --- a/Frameworks/OakTextView/src/OakDocumentView.mm +++ b/Frameworks/OakTextView/src/OakDocumentView.mm @@ -92,6 +92,10 @@ static NSString* const kFoldingsColumnIdentifier = @"foldings"; gutterScrollView.borderType = NSNoBorder; gutterScrollView.documentView = gutterView; + [gutterScrollView.contentView addConstraint:[NSLayoutConstraint constraintWithItem:gutterView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:gutterScrollView.contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; + [gutterScrollView.contentView addConstraint:[NSLayoutConstraint constraintWithItem:gutterView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:gutterScrollView.contentView attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0]]; + [gutterScrollView.contentView addConstraint:[NSLayoutConstraint constraintWithItem:gutterView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:gutterScrollView.contentView attribute:NSLayoutAttributeRight multiplier:1.0 constant:0.0]]; + gutterDividerView = OakCreateVerticalLine(nil); statusDividerView = OakCreateHorizontalLine([NSColor colorWithCalibratedWhite:0.500 alpha:1], [NSColor colorWithCalibratedWhite:0.750 alpha:1]); @@ -125,6 +129,7 @@ static NSString* const kFoldingsColumnIdentifier = @"foldings"; { [stackedViews addObjectsFromArray:@[ statusDividerView, _statusBar ]]; [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_statusBar(==statusDividerView)]|" options:NSLayoutFormatAlignAllLeft|NSLayoutFormatAlignAllRight metrics:nil views:NSDictionaryOfVariableBindings(statusDividerView, _statusBar)]]; + [self addConstraint:[NSLayoutConstraint constraintWithItem:statusDividerView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0]]; } [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[gutterScrollView(==gutterView)][gutterDividerView][textScrollView(>=100)]|" options:NSLayoutFormatAlignAllTop|NSLayoutFormatAlignAllBottom metrics:nil views:NSDictionaryOfVariableBindings(gutterScrollView, gutterView, gutterDividerView, textScrollView)]];