Revision: 15004 http://sourceforge.net/p/skim-app/code/15004 Author: hofman Date: 2025-03-22 17:28:37 +0000 (Sat, 22 Mar 2025) Log Message: ----------- Use small size in note toolbar when main toolbar uses small size
Modified Paths: -------------- trunk/SKNoteToolbarController.m Modified: trunk/SKNoteToolbarController.m =================================================================== --- trunk/SKNoteToolbarController.m 2025-03-22 16:33:39 UTC (rev 15003) +++ trunk/SKNoteToolbarController.m 2025-03-22 17:28:37 UTC (rev 15004) @@ -51,18 +51,17 @@ static char SKDefaultsObservationContext; +static char SKToolbarObservationContext; + +@interface SKNoteToolbarController (SKPrivate) +- (void)updateSizeMode; +@end + @implementation SKNoteToolbarController @synthesize mainController; @dynamic visible; -- (void)dealloc { - if (colorsButton) { - @try { [[NSUserDefaults standardUserDefaults] removeObserver:self forKeyPath:SKSwatchColorsKey context:&SKDefaultsObservationContext]; } - @catch (id e) {} - } -} - - (BOOL)isVisible { return [self isViewLoaded] && [[self view] window] != nil; } @@ -150,8 +149,25 @@ [NSLayoutConstraint activateConstraints:constraints]; [self setView:view]; + + [self updateSizeMode]; + [[[mainController window] toolbar] addObserver:self forKeyPath:@"sizeMode" options:0 context:&SKToolbarObservationContext]; } +- (void)setMainController:(SKMainWindowController *)newMainController { + if (mainController) { + if (noteButton) { + @try { [[[mainController window] toolbar] removeObserver:self forKeyPath:@"sizeMode" context:&SKToolbarObservationContext]; } + @catch (id e) {} + } + if (colorsButton) { + @try { [[NSUserDefaults standardUserDefaults] removeObserver:self forKeyPath:SKSwatchColorsKey context:&SKDefaultsObservationContext]; } + @catch (id e) {} + } + } + mainController = newMainController; +} + - (void)createNewNote:(id)sender { if ([mainController.pdfView canSelectNote]) { NSInteger type = [sender selectedSegment]; @@ -213,6 +229,15 @@ } } +- (void)updateSizeMode { + NSToolbarSizeMode sizeMode = [[[mainController window] toolbar] sizeMode]; + NSControlSize controlSize = sizeMode == NSToolbarSizeModeSmall ? NSControlSizeSmall : NSControlSizeRegular; + [noteButton setControlSize:controlSize]; + [colorsButton setControlSize:controlSize]; + [fontsButton setControlSize:controlSize]; + [linesButton setControlSize:controlSize]; +} + - (void)validateButtons { [noteButton setEnabled:[mainController hasOverview] == NO && [mainController.pdfView canSelectNote]]; } @@ -220,6 +245,8 @@ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context { if (context == &SKDefaultsObservationContext) { [self updateColorsMenu]; + } else if (context == &SKToolbarObservationContext) { + [self updateSizeMode]; } else { [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ Skim-app-commit mailing list Skim-app-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/skim-app-commit