Revision: 14975
http://sourceforge.net/p/skim-app/code/14975
Author: hofman
Date: 2025-03-16 17:43:38 +0000 (Sun, 16 Mar 2025)
Log Message:
-----------
Add a class for a note toolbar below the main toolbar. For now unused.
Modified Paths:
--------------
trunk/SKMainWindowController.h
trunk/SKMainWindowController.m
trunk/SKMainWindowController_Actions.h
trunk/SKMainWindowController_Actions.m
trunk/Skim.xcodeproj/project.pbxproj
Added Paths:
-----------
trunk/SKNoteToolbarController.h
trunk/SKNoteToolbarController.m
Modified: trunk/SKMainWindowController.h
===================================================================
--- trunk/SKMainWindowController.h 2025-03-15 17:04:23 UTC (rev 14974)
+++ trunk/SKMainWindowController.h 2025-03-16 17:43:38 UTC (rev 14975)
@@ -70,7 +70,7 @@
@class PDFAnnotation, PDFSelection, SKGroupedSearchResult;
@class SKPDFView, SKSecondaryPDFView, SKPresentationView, SKStatusBar,
SKFindController, SKSplitView, SKFieldEditor, SKOverviewView, SKSideWindow;
-@class SKLeftSideViewController, SKRightSideViewController,
SKMainToolbarController, SKMainTouchBarController, SKProgressController,
SKNoteTypeSheetController, SKSnapshotWindowController, SKTransitionController;
+@class SKLeftSideViewController, SKRightSideViewController,
SKMainToolbarController, SKMainTouchBarController, SKNoteToolbarController,
SKProgressController, SKNoteTypeSheetController, SKSnapshotWindowController,
SKTransitionController;
@interface SKMainWindowController : NSWindowController
<SKSnapshotWindowControllerDelegate, SKThumbnailDelegate,
SKFindControllerDelegate, SKPDFViewDelegate, SKPDFDocumentDelegate,
NSTouchBarDelegate> {
SKSplitView *splitView;
@@ -92,6 +92,8 @@
SKMainTouchBarController *touchBarController;
+ SKNoteToolbarController *noteToolbarController;
+
SKOverviewView *overviewView;
NSView *overviewContentView;
Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m 2025-03-15 17:04:23 UTC (rev 14974)
+++ trunk/SKMainWindowController.m 2025-03-16 17:43:38 UTC (rev 14975)
@@ -106,6 +106,7 @@
#import "SKChainedUndoManager.h"
#import "SKThumbnailStamp.h"
#import "SKPresentationView.h"
+#import "SKNoteToolbarController.h"
#define MULTIPLICATION_SIGN_CHARACTER (unichar)0x00d7
@@ -1636,6 +1637,7 @@
if (isPresentation)
[NSCursor setHiddenUntilMouseMoves:NO];
[touchBarController overviewChanged];
+ [noteToolbarController validateButtons];
}
- (void)hideOverviewAnimating:(BOOL)animate completionHandler:(void
(^)(void))handler {
@@ -1666,6 +1668,7 @@
}
completionHandler:^{
[touchBarController overviewChanged];
+ [noteToolbarController validateButtons];
[[newKeyView window] makeFirstResponder:newKeyView];
if (handler)
handler();
@@ -1674,6 +1677,7 @@
[contentView replaceSubview:overviewContentView with:newView];
[NSLayoutConstraint activateConstraints:constraints];
[touchBarController overviewChanged];
+ [noteToolbarController validateButtons];
[[newKeyView window] makeFirstResponder:newKeyView];
if (handler)
handler();
Modified: trunk/SKMainWindowController_Actions.h
===================================================================
--- trunk/SKMainWindowController_Actions.h 2025-03-15 17:04:23 UTC (rev
14974)
+++ trunk/SKMainWindowController_Actions.h 2025-03-16 17:43:38 UTC (rev
14975)
@@ -107,6 +107,7 @@
- (IBAction)toggleStatusBar:(nullable id)sender;
- (IBAction)toggleSplitPDF:(nullable id)sender;
- (IBAction)toggleOverview:(nullable id)sender;
+- (IBAction)toggleNoteToolbar:(nullable id)sender ;
- (IBAction)toggleReadingBar:(nullable id)sender;
- (IBAction)togglePacer:(nullable id)sender;
- (IBAction)changePacerSpeed:(nullable id)sender;
Modified: trunk/SKMainWindowController_Actions.m
===================================================================
--- trunk/SKMainWindowController_Actions.m 2025-03-15 17:04:23 UTC (rev
14974)
+++ trunk/SKMainWindowController_Actions.m 2025-03-16 17:43:38 UTC (rev
14975)
@@ -82,6 +82,7 @@
#import "SKOverviewView.h"
#import "SKPresentationView.h"
#import "NSUserDefaults_SKExtensions.h"
+#import "SKNoteToolbarController.h"
#define STATUSBAR_HEIGHT 22.0
@@ -283,6 +284,7 @@
[notes setValue:wasHidden forKey:@"shouldPrint"];
[pdfView setHideNotes:[pdfView hideNotes] == NO];
[touchBarController handleToolModeChangedNotification:nil];
+ [noteToolbarController validateButtons];
}
- (IBAction)takeSnapshot:(id)sender{
@@ -1137,6 +1139,22 @@
[[self window] recalculateKeyViewLoop];
}
+- (IBAction)toggleNoteToolbar:(id)sender {
+ if ([self interactionMode] == SKPresentationMode)
+ return;
+ if ([noteToolbarController isVisible]) {
+ NSUInteger i = [[[self window] titlebarAccessoryViewControllers]
indexOfObject:noteToolbarController];
+ if (i != NSNotFound)
+ [[self window] removeTitlebarAccessoryViewControllerAtIndex:i];
+ } else {
+ if (noteToolbarController == nil) {
+ noteToolbarController = [[SKNoteToolbarController alloc] init];
+ [noteToolbarController setMainController:self];
+ }
+ [[self window]
addTitlebarAccessoryViewController:noteToolbarController];
+ }
+}
+
- (IBAction)toggleFullscreen:(id)sender {
if ([self canExitFullscreen])
[self exitFullscreen];
Added: trunk/SKNoteToolbarController.h
===================================================================
--- trunk/SKNoteToolbarController.h (rev 0)
+++ trunk/SKNoteToolbarController.h 2025-03-16 17:43:38 UTC (rev 14975)
@@ -0,0 +1,65 @@
+//
+// SKNoteToolbarController.h
+// Skim
+//
+// Created by Christiaan Hofman on 16/03/2025.
+/*
+ This software is Copyright (c) 2025
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Cocoa/Cocoa.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class SKMainWindowController;
+
+@interface SKNoteToolbarController : NSTitlebarAccessoryViewController {
+ __weak SKMainWindowController *mainController;
+ NSSegmentedControl *noteButton;
+ NSSegmentedControl *colorsButton;
+ NSSegmentedControl *fontsButton;
+ NSSegmentedControl *linesButton;
+}
+
+@property (nonatomic, nullable, weak) SKMainWindowController *mainController;
+@property (nonatomic, readonly, getter=isVisible) BOOL visible;
+
+- (void)createNewNote:(nullable id)sender;
+- (void)selectColor:(nullable id)sender;
+- (void)selectFontSize:(nullable id)sender;
+- (void)selectLineWidth:(nullable id)sender;
+
+- (void)validateButtons;
+
+@end
+
+NS_ASSUME_NONNULL_END
Added: trunk/SKNoteToolbarController.m
===================================================================
--- trunk/SKNoteToolbarController.m (rev 0)
+++ trunk/SKNoteToolbarController.m 2025-03-16 17:43:38 UTC (rev 14975)
@@ -0,0 +1,225 @@
+//
+// SKNoteToolbarController.m
+// Skim
+//
+// Created by Christiaan Hofman on 16/03/2025.
+/*
+ This software is Copyright (c) 2025
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "SKNoteToolbarController.h"
+#import "SKMainWindowController.h"
+#import "SKPDFView.h"
+#import <SkimNotes/SkimNotes.h>
+#import "PDFAnnotation_SKExtensions.h"
+#import "SKApplicationController.h"
+#import "NSImage_SKExtensions.h"
+#import "NSMenu_SKExtensions.h"
+#import "NSUserDefaults_SKExtensions.h"
+#import "NSColor_SKExtensions.h"
+#import "NSSegmentedControl_SKExtensions.h"
+#import "SKStringConstants.h"
+
+static char SKDefaultsObservationContext;
+
+@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;
+}
+
+- (void)loadView {
+ NSArray *images = @[[NSImage imageNamed:SKImageNameToolbarAddTextNote],
+ [NSImage imageNamed:SKImageNameToolbarAddAnchoredNote],
+ [NSImage imageNamed:SKImageNameToolbarAddCircleNote],
+ [NSImage imageNamed:SKImageNameToolbarAddSquareNote],
+ [NSImage imageNamed:SKImageNameToolbarAddHighlightNote],
+ [NSImage imageNamed:SKImageNameToolbarAddUnderlineNote],
+ [NSImage imageNamed:SKImageNameToolbarAddStrikeOutNote],
+ [NSImage imageNamed:SKImageNameToolbarAddLineNote],
+ [NSImage imageNamed:SKImageNameToolbarAddInkNote]];
+ noteButton = [NSSegmentedControl segmentedControlWithImages:images
trackingMode:NSSegmentSwitchTrackingMomentary target:self
action:@selector(createNewNote:)];
+ [noteButton setSegmentStyle:NSSegmentStyleSeparated];
+ [noteButton setHelp:NSLocalizedString(@"Add New Text Note", @"Tool tip
message") forSegment:SKNoteTypeFreeText];
+ [noteButton setHelp:NSLocalizedString(@"Add New Anchored Note", @"Tool tip
message") forSegment:SKNoteTypeAnchored];
+ [noteButton setHelp:NSLocalizedString(@"Add New Circle", @"Tool tip
message") forSegment:SKNoteTypeCircle];
+ [noteButton setHelp:NSLocalizedString(@"Add New Box", @"Tool tip message")
forSegment:SKNoteTypeSquare];
+ [noteButton setHelp:NSLocalizedString(@"Add New Highlight", @"Tool tip
message") forSegment:SKNoteTypeHighlight];
+ [noteButton setHelp:NSLocalizedString(@"Add New Underline", @"Tool tip
message") forSegment:SKNoteTypeUnderline];
+ [noteButton setHelp:NSLocalizedString(@"Add New Strike Out", @"Tool tip
message") forSegment:SKNoteTypeStrikeOut];
+ [noteButton setHelp:NSLocalizedString(@"Add New Line", @"Tool tip
message") forSegment:SKNoteTypeLine];
+ [noteButton setHelp:NSLocalizedString(@"Add New Freehand", @"Tool tip
message") forSegment:SKNoteTypeInk];
+ [noteButton setTranslatesAutoresizingMaskIntoConstraints:NO];
+
+ colorsButton = [NSSegmentedControl segmentedControlWithImages:@[[NSImage
imageNamed:SKImageNameToolbarColors]]
trackingMode:NSSegmentSwitchTrackingMomentary target:nil
action:@selector(orderFrontColorPanel:)];
+ [colorsButton setTranslatesAutoresizingMaskIntoConstraints:NO];
+ NSMenu *menu = [NSMenu menu];
+ [colorsButton setMenu:menu forSegment:0];
+ [self updateColorsMenu];
+ [[NSUserDefaults standardUserDefaults] addObserver:self
forKeyPath:SKSwatchColorsKey options:0 context:&SKDefaultsObservationContext];
+
+ fontsButton = [NSSegmentedControl segmentedControlWithImages:@[[NSImage
imageNamed:SKImageNameToolbarFonts]]
trackingMode:NSSegmentSwitchTrackingMomentary target:nil
action:@selector(orderFrontFontPanel:)];
+ [fontsButton setTranslatesAutoresizingMaskIntoConstraints:NO];
+ menu = [NSMenu menu];
+ for (NSInteger i = 9; i < 19; i++) {
+ [menu addItemWithTitle:[NSString stringWithFormat:@"%ld", (long)i]
action:@selector(selectFontSize:) target:self tag:i];
+ }
+ [fontsButton setMenu:menu forSegment:0];
+
+ linesButton = [NSSegmentedControl segmentedControlWithImages:@[[NSImage
imageNamed:SKImageNameToolbarLines]]
trackingMode:NSSegmentSwitchTrackingMomentary target:nil
action:@selector(orderFrontLineInspector:)];
+ [linesButton setTranslatesAutoresizingMaskIntoConstraints:NO];
+ menu = [NSMenu menu];
+ NSSize size = NSMakeSize(32.0, 16.0);
+ for (NSInteger i = 1; i < 11; i++) {
+ NSMenuItem *menuItem = [menu addItemWithTitle:@""
action:@selector(selectLineWidth:) target:self tag:i];
+ NSImage *image = [NSImage imageWithSize:size drawingHandler:^(NSRect
r){
+ [[NSColor blackColor] setStroke];
+ NSBezierPath *path = [NSBezierPath bezierPath];
+ [path setLineWidth:i];
+ [path moveToPoint:NSMakePoint(0.0, 8.0 + 0.5 * (i % 2))];
+ [path relativeLineToPoint:NSMakePoint(32.0, 0.0)];
+ [path stroke];
+ return YES;
+ }];
+ [image setAccessibilityDescription:[NSString stringWithFormat:@"%ld",
(long)i]];
+ [image setTemplate:YES];
+ [menuItem setImage:image];
+ }
+ [linesButton setMenu:menu forSegment:0];
+
+ [self validateButtons];
+
+ NSView *view = [[NSView alloc] init];
+ [view addSubview:noteButton];
+ [view addSubview:colorsButton];
+ [view addSubview:fontsButton];
+ [view addSubview:linesButton];
+
+ NSArray *constraints = @[
+ [[noteButton leadingAnchor] constraintEqualToAnchor:[view
leadingAnchor] constant:10.0],
+ [[noteButton centerYAnchor] constraintEqualToAnchor:[view
centerYAnchor]],
+ [[colorsButton leadingAnchor] constraintEqualToAnchor:[noteButton
trailingAnchor] constant:20.0],
+ [[colorsButton centerYAnchor] constraintEqualToAnchor:[noteButton
centerYAnchor]],
+ [[fontsButton leadingAnchor] constraintEqualToAnchor:[colorsButton
trailingAnchor] constant:8.0],
+ [[fontsButton centerYAnchor] constraintEqualToAnchor:[noteButton
centerYAnchor]],
+ [[linesButton leadingAnchor] constraintEqualToAnchor:[fontsButton
trailingAnchor] constant:8.0],
+ [[linesButton centerYAnchor] constraintEqualToAnchor:[noteButton
centerYAnchor]]
+ ];
+ [NSLayoutConstraint activateConstraints:constraints];
+
+ [self setView:view];
+}
+
+- (void)createNewNote:(id)sender {
+ if ([mainController.pdfView canSelectNote]) {
+ NSInteger type = [sender selectedSegment];
+ [mainController.pdfView addAnnotationWithType:type];
+ } else NSBeep();
+}
+
+- (void)selectColor:(id)sender {
+ PDFAnnotation *annotation = [mainController.pdfView currentAnnotation];
+ NSColor *newColor = [sender respondsToSelector:@selector(color)] ? [sender
color] : [sender respondsToSelector:@selector(representedObject)] ? [sender
representedObject] : nil;
+ BOOL isShift = ([NSEvent modifierFlags] & NSEventModifierFlagShift) != 0;
+ BOOL isAlt = ([NSEvent modifierFlags] & NSEventModifierFlagOption) != 0;
+ if (isAlt == NO && [sender respondsToSelector:@selector(isAlternate)])
+ isAlt = [sender isAlternate];
+ if ([annotation isSkimNote]) {
+ [annotation setColor:newColor alternate:isAlt updateDefaults:isShift];
+ } else {
+ NSString *defaultKey = [mainController.pdfView
currentColorDefaultKeyForAlternate:isAlt];
+ if (defaultKey)
+ [[NSUserDefaults standardUserDefaults] setColor:newColor
forKey:defaultKey];
+ }
+}
+
+- (void)selectFontSize:(id)sender {
+ PDFAnnotation *annotation = [mainController.pdfView currentAnnotation];
+ if ([mainController hasOverview] == NO && [annotation isSkimNote] &&
[annotation isText]) {
+ NSFont *font = [[NSFontManager sharedFontManager]
convertFont:[annotation font] toSize:[sender tag]];
+ [annotation setFont:font];
+ if (([NSEvent modifierFlags] & NSEventModifierFlagShift)) {
+ [[NSUserDefaults standardUserDefaults] setDouble:[font pointSize]
forKey:SKFreeTextNoteFontSizeKey];
+ }
+ }
+}
+
+- (void)selectLineWidth:(id)sender {
+ PDFAnnotation *annotation = [mainController.pdfView currentAnnotation];
+ if ([mainController hasOverview] == NO && [annotation hasBorder]) {
+ BOOL isShift = ([NSEvent modifierFlags] & NSEventModifierFlagShift) !=
0;
+ [annotation setLineWidth:[sender tag] updateDefaults:isShift];
+ }
+}
+
+- (void)updateColorsMenu {
+ NSMenu *menu = [colorsButton menuForSegment:0];
+
+ [menu removeAllItems];
+
+ NSSize size = NSMakeSize(16.0, 16.0);
+ for (NSColor *color in [NSColor favoriteColors]) {
+ NSMenuItem *item;
+ NSImage *image = [NSImage imageWithSize:size drawingHandler:^(NSRect
dstRect){
+ [color drawSwatchInRoundedRect:dstRect];
+ return YES;
+ }];
+ [image setAccessibilityDescription:[color accessibilityValue]];
+ item = [menu addItemWithTitle:@"" action:@selector(selectColor:)
target:self];
+ [item setRepresentedObject:color];
+ [item setImage:image];
+ }
+}
+
+- (void)validateButtons {
+ [noteButton setEnabled:[mainController hasOverview] == NO &&
[mainController.pdfView canSelectNote]];
+}
+
+- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
+ if (context == &SKDefaultsObservationContext) {
+ [self updateColorsMenu];
+ } else {
+ [super observeValueForKeyPath:keyPath ofObject:object change:change
context:context];
+ }
+}
+
+@end
Modified: trunk/Skim.xcodeproj/project.pbxproj
===================================================================
--- trunk/Skim.xcodeproj/project.pbxproj 2025-03-15 17:04:23 UTC (rev
14974)
+++ trunk/Skim.xcodeproj/project.pbxproj 2025-03-16 17:43:38 UTC (rev
14975)
@@ -232,6 +232,7 @@
CEAE1CA0287C7C39003A77DB /* SKGroupView.m in Sources */ = {isa
= PBXBuildFile; fileRef = CEAE1C9F287C7C39003A77DB /* SKGroupView.m */; };
CEAF079D0C4139EB00C3ECBB /* SKStatusBar.m in Sources */ = {isa
= PBXBuildFile; fileRef = CEAF079B0C4139EB00C3ECBB /* SKStatusBar.m */; };
CEB402C313EDAD6100851D1B /* SKTemporaryData.m in Sources */ =
{isa = PBXBuildFile; fileRef = CEB402C213EDAD6100851D1B /* SKTemporaryData.m
*/; };
+ CEB4EC502D87409100CA01A1 /* SKNoteToolbarController.m in
Sources */ = {isa = PBXBuildFile; fileRef = CEB4EC4F2D87409100CA01A1 /*
SKNoteToolbarController.m */; };
CEB735A20C4A8CD6000350F9 /* TransitionShading.tiff in Resources
*/ = {isa = PBXBuildFile; fileRef = CEB735A10C4A8CD6000350F9 /*
TransitionShading.tiff */; };
CEBC0DDD2791C607008686E8 /* NSObject_SKExtensions.m in Sources
*/ = {isa = PBXBuildFile; fileRef = CEBC0DDC2791C607008686E8 /*
NSObject_SKExtensions.m */; };
CEBCA4C02868A93A00E6376E /* SKLine.m in Sources */ = {isa =
PBXBuildFile; fileRef = CEBCA4BF2868A93A00E6376E /* SKLine.m */; };
@@ -1140,6 +1141,8 @@
CEAF079B0C4139EB00C3ECBB /* SKStatusBar.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= SKStatusBar.m; sourceTree = "<group>"; };
CEB402C113EDAD6100851D1B /* SKTemporaryData.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
SKTemporaryData.h; sourceTree = "<group>"; };
CEB402C213EDAD6100851D1B /* SKTemporaryData.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= SKTemporaryData.m; sourceTree = "<group>"; };
+ CEB4EC4E2D87409100CA01A1 /* SKNoteToolbarController.h */ = {isa
= PBXFileReference; lastKnownFileType = sourcecode.c.h; path =
SKNoteToolbarController.h; sourceTree = "<group>"; };
+ CEB4EC4F2D87409100CA01A1 /* SKNoteToolbarController.m */ = {isa
= PBXFileReference; lastKnownFileType = sourcecode.c.objc; path =
SKNoteToolbarController.m; sourceTree = "<group>"; };
CEB53FF20F261D1400723C1F /* zh_TW */ = {isa = PBXFileReference;
lastKnownFileType = text.rtf; name = zh_TW; path = zh_TW.lproj/Credits.rtf;
sourceTree = "<group>"; };
CEB53FF50F261D1400723C1F /* zh_TW */ = {isa = PBXFileReference;
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = zh_TW; path =
zh_TW.lproj/InfoPlist.strings; sourceTree = "<group>"; };
CEB53FF80F261D1500723C1F /* zh_TW */ = {isa = PBXFileReference;
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = zh_TW; path =
zh_TW.lproj/Localizable.strings; sourceTree = "<group>"; };
@@ -2265,6 +2268,8 @@
CEE54F6B0DA3FB060037169F /*
SKMainToolbarController.m */,
CE85D73D2280814B0022C560 /*
SKMainTouchBarController.h */,
CE85D73E2280814B0022C560 /*
SKMainTouchBarController.m */,
+ CEB4EC4E2D87409100CA01A1 /*
SKNoteToolbarController.h */,
+ CEB4EC4F2D87409100CA01A1 /*
SKNoteToolbarController.m */,
CE8BEFE1115F75590029020F /*
SKSideViewController.h */,
CE8BEFE2115F75590029020F /*
SKSideViewController.m */,
CE8BF025115F7C390029020F /*
SKLeftSideViewController.h */,
@@ -2899,6 +2904,7 @@
CE6DC7BB0D689138003A072F /*
PDFDocument_SKExtensions.m in Sources */,
CE2E9A592C14D2F300044B01 /*
SKSnapshotConfiguration.m in Sources */,
CEA8FCD60D89C34A00E8A6F4 /*
SKAnimatedBorderlessWindow.m in Sources */,
+ CEB4EC502D87409100CA01A1 /*
SKNoteToolbarController.m in Sources */,
CE199DFD0D957A16009B2055 /*
SKAnnotationTypeImageCell.m in Sources */,
CEE54D880DA2E37B0037169F /*
PDFAnnotation_SKExtensions.m in Sources */,
CEE54D930DA2E5E10037169F /*
PDFAnnotationCircle_SKExtensions.m in Sources */,
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