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
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit