Revision: 12357 http://sourceforge.net/p/skim-app/code/12357 Author: hofman Date: 2021-06-22 15:52:58 +0000 (Tue, 22 Jun 2021) Log Message: ----------- Segmented controls for bookmarks window toolbar items
Modified Paths: -------------- trunk/Base.lproj/BookmarksWindow.xib trunk/NSImage_SKExtensions.h trunk/NSImage_SKExtensions.m trunk/SKBookmarkController.h trunk/SKBookmarkController.m Modified: trunk/Base.lproj/BookmarksWindow.xib =================================================================== --- trunk/Base.lproj/BookmarksWindow.xib 2021-06-21 14:40:32 UTC (rev 12356) +++ trunk/Base.lproj/BookmarksWindow.xib 2021-06-22 15:52:58 UTC (rev 12357) @@ -9,7 +9,10 @@ <objects> <customObject id="-2" userLabel="File's Owner" customClass="SKBookmarkController"> <connections> + <outlet property="deleteSegmentedControl" destination="Jci-BQ-dkU" id="NwN-Ss-P8y"/> + <outlet property="folderSegmentedControl" destination="eLW-Pf-nGk" id="nGT-PP-XJl"/> <outlet property="outlineView" destination="57" id="83"/> + <outlet property="separatorSegmentedControl" destination="qu6-XS-cXD" id="n8W-2o-EbY"/> <outlet property="statusBar" destination="37" id="55"/> <outlet property="window" destination="5" id="19"/> </connections> @@ -61,11 +64,11 @@ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="qju-xo-PnX"> - <rect key="frame" x="1" y="-1" width="14" height="20"/> + <rect key="frame" x="1" y="2" width="14" height="14"/> <constraints> <constraint firstAttribute="width" secondItem="qju-xo-PnX" secondAttribute="height" multiplier="1:1" id="qe2-MI-HiG"/> </constraints> - <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSActionTemplate" id="km8-3h-7Py"/> + <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="km8-3h-7Py"/> <connections> <binding destination="m5H-UD-Vea" name="value" keyPath="objectValue.icon" id="H0a-9o-r69"/> </connections> @@ -261,9 +264,50 @@ <outlet property="delegate" destination="-2" id="109"/> </connections> </menu> + <segmentedControl verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="eLW-Pf-nGk"> + <rect key="frame" x="0.0" y="0.0" width="33" height="23"/> + <segmentedCell key="cell" borderStyle="border" alignment="left" style="texturedSquare" trackingMode="momentary" id="Ui3-Ac-WIW"> + <font key="font" metaFont="system"/> + <segments> + <segment image="ToolbarNewFolder" imageScaling="proportionallyUpOrDown" width="27"/> + </segments> + </segmentedCell> + <connections> + <action selector="insertBookmarkFolder:" target="-2" id="NuN-WV-2Ee"/> + </connections> + <point key="canvasLocation" x="-183" y="124"/> + </segmentedControl> + <segmentedControl verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="qu6-XS-cXD"> + <rect key="frame" x="0.0" y="0.0" width="33" height="23"/> + <segmentedCell key="cell" borderStyle="border" alignment="left" style="texturedSquare" trackingMode="momentary" id="8pJ-sk-9Dc"> + <font key="font" metaFont="system"/> + <segments> + <segment image="ToolbarNewSeparator" imageScaling="proportionallyUpOrDown" width="27"/> + </segments> + </segmentedCell> + <connections> + <action selector="insertBookmarkSeparator:" target="-2" id="13V-ey-mDP"/> + </connections> + <point key="canvasLocation" x="-182" y="200"/> + </segmentedControl> + <segmentedControl verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Jci-BQ-dkU"> + <rect key="frame" x="0.0" y="0.0" width="33" height="23"/> + <segmentedCell key="cell" borderStyle="border" alignment="left" style="texturedSquare" trackingMode="selectOne" id="01q-cu-5Rf"> + <font key="font" metaFont="system"/> + <segments> + <segment image="ToolbarDelete" imageScaling="proportionallyUpOrDown" width="27"/> + </segments> + </segmentedCell> + <connections> + <action selector="deleteBookmark:" target="-2" id="i2e-Uc-wSW"/> + </connections> + <point key="canvasLocation" x="-183" y="285"/> + </segmentedControl> </objects> <resources> - <image name="NSActionTemplate" width="15" height="15"/> <image name="SKSeparator" width="128" height="128"/> + <image name="ToolbarDelete" width="128" height="128"/> + <image name="ToolbarNewFolder" width="128" height="128"/> + <image name="ToolbarNewSeparator" width="128" height="128"/> </resources> </document> Modified: trunk/NSImage_SKExtensions.h =================================================================== --- trunk/NSImage_SKExtensions.h 2021-06-21 14:40:32 UTC (rev 12356) +++ trunk/NSImage_SKExtensions.h 2021-06-22 15:52:58 UTC (rev 12357) @@ -164,8 +164,9 @@ extern NSString *SKImageNameNotesPreferences; extern NSString *SKImageNameSyncPreferences; -extern NSString *SKImageNameNewFolder; -extern NSString *SKImageNameNewSeparator; +extern NSString *SKImageNameToolbarNewFolder; +extern NSString *SKImageNameToolbarNewSeparator; +extern NSString *SKImageNameToolbarDelete; extern NSString *SKImageNameOutlineViewAdorn; extern NSString *SKImageNameThumbnailViewAdorn; Modified: trunk/NSImage_SKExtensions.m =================================================================== --- trunk/NSImage_SKExtensions.m 2021-06-21 14:40:32 UTC (rev 12356) +++ trunk/NSImage_SKExtensions.m 2021-06-22 15:52:58 UTC (rev 12357) @@ -168,8 +168,9 @@ NSString *SKImageNameNotesPreferences = @"NotesPreferences"; NSString *SKImageNameSyncPreferences = @"SyncPreferences"; -NSString *SKImageNameNewFolder = @"NewFolder"; -NSString *SKImageNameNewSeparator = @"NewSeparator"; +NSString *SKImageNameToolbarNewFolder = @"ToolbarNewFolder"; +NSString *SKImageNameToolbarNewSeparator = @"ToolbarNewSeparator"; +NSString *SKImageNameToolbarDelete = @"ToolbarDelete"; NSString *SKImageNameOutlineViewAdorn = @"OutlineViewAdorn"; NSString *SKImageNameThumbnailViewAdorn = @"ThumbnailViewAdorn"; @@ -928,6 +929,68 @@ [path fill]; ); + MAKE_IMAGE(SKImageNameToolbarNewFolder, YES, 19.0, 17.0, + NSBezierPath *path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(10.5, 12.0)]; + [path appendBezierPathWithArcFromPoint:NSMakePoint(6.8, 12.0) toPoint:NSMakePoint(5.7, 13.1) radius:1.2]; + [path appendBezierPathWithArcFromPoint:NSMakePoint(5.7, 13.1) toPoint:NSMakePoint(2.0, 13.1) radius:1.2]; + [path appendBezierPathWithArcFromPoint:NSMakePoint(2.0, 13.1) toPoint:NSMakePoint(2.0, 11) radius:1.2]; + [path appendBezierPathWithArcFromPoint:NSMakePoint(2.0, 2.5) toPoint:NSMakePoint(15.3, 2.5) radius:1.2]; + [path appendBezierPathWithArcFromPoint:NSMakePoint(15.4, 2.5) toPoint:NSMakePoint(15.4, 12.0) radius:1.2]; + [path lineToPoint:NSMakePoint(15.4, 7.0)]; + [path stroke]; + path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(2.0, 9.6)]; + [path lineToPoint:NSMakePoint(13.5, 9.6)]; + [path stroke]; + path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(15.25, 15.5)]; + [path lineToPoint:NSMakePoint(15.25, 8.0)]; + [path moveToPoint:NSMakePoint(11.5, 11.75)]; + [path lineToPoint:NSMakePoint(19.0, 11.75)]; + [path setLineWidth:1.5]; + [path stroke]; + ); + + MAKE_IMAGE(SKImageNameToolbarNewSeparator, YES, 19.0, 17.0, + NSBezierPath *path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(1.0, 6.5)]; + [path lineToPoint:NSMakePoint(18.0, 6.5)]; + [path setLineWidth:2.0]; + [path stroke]; + path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(15.25, 15.5)]; + [path lineToPoint:NSMakePoint(15.25, 8.0)]; + [path moveToPoint:NSMakePoint(11.5, 11.75)]; + [path lineToPoint:NSMakePoint(19.0, 11.75)]; + [path setLineWidth:1.5]; + [path stroke]; + ); + + MAKE_IMAGE(SKImageNameToolbarDelete, YES, 15.0, 17.0, + NSBezierPath *path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(2.75, 12.25)]; + [path appendBezierPathWithArcFromPoint:NSMakePoint(3.25, 1.5) toPoint:NSMakePoint(11.0, 1.5) radius:1.5]; + [path appendBezierPathWithArcFromPoint:NSMakePoint(11.0, 1.5) toPoint:NSMakePoint(11.5, 12.25) radius:1.5]; + [path lineToPoint:NSMakePoint(11.5, 12.25)]; + [path moveToPoint:NSMakePoint(1.0, 12.25)]; + [path lineToPoint:NSMakePoint(13.25, 12.25)]; + [path moveToPoint:NSMakePoint(9.5, 12.25)]; + [path appendBezierPathWithArcFromPoint:NSMakePoint(9.5, 14.75) toPoint:NSMakePoint(4.75, 14.75) radius:1.0]; + [path appendBezierPathWithArcFromPoint:NSMakePoint(4.75, 14.75) toPoint:NSMakePoint(5.0, 12.0) radius:1]; + [path lineToPoint:NSMakePoint(5.0, 12.0)]; + [path stroke]; + path = [NSBezierPath bezierPath]; + [path moveToPoint:NSMakePoint(7.125, 3.0)]; + [path lineToPoint:NSMakePoint(7.125, 10.5)]; + [path moveToPoint:NSMakePoint(5.25, 3.0)]; + [path lineToPoint:NSMakePoint(5.0, 10.5)]; + [path moveToPoint:NSMakePoint(9.0, 3.0)]; + [path lineToPoint:NSMakePoint(9.25, 10.5)]; + [path setLineWidth:0.8]; + [path stroke]; + ); + #define MAKE_BADGED_IMAGES(name) \ MAKE_IMAGE(SKImageNameToolbarAdd ## name ## Note, YES, 27.0, 19.0, \ translate(3.0, 0.0); \ @@ -1238,37 +1301,6 @@ [refreshImage drawInRect:NSMakeRect(11.0, 10.0, 10.0, 12.0) fromRect:NSZeroRect operation:NSCompositeDestinationAtop fraction:1.0]; [genericDocImage drawInRect:NSMakeRect(0.0, 0.0, 32.0, 32.0) fromRect:NSZeroRect operation:NSCompositeDestinationOver fraction:1.0]; ); - - MAKE_IMAGE(SKImageNameNewFolder, NO, 32.0, 32.0, - [[[NSWorkspace sharedWorkspace] iconForFileType:NSFileTypeForHFSTypeCode(kGenericFolderIcon)] drawInRect:NSMakeRect(0.0, 0.0, 32.0, 32.0) fromRect:NSZeroRect operation:NSCompositeCopy fraction:1.0]; - drawAddBadgeAtPoint(NSMakePoint(18.0, 18.0)); - ); - - MAKE_IMAGE(SKImageNameNewSeparator, NO, 32.0, 32.0, - NSGradient *gradient = [[[NSGradient alloc] initWithStartingColor:[NSColor colorWithGenericGamma22White:0.65 alpha:1.0] endingColor:[NSColor colorWithGenericGamma22White:0.85 alpha:1.0]] autorelease]; - NSBezierPath *path; - [NSGraphicsContext saveGraphicsState]; - [NSShadow setShadowWithWhite:0.0 alpha:0.5 blurRadius:2.0 yOffset:-1.0]; - [[NSColor colorWithGenericGamma22White:0.4 alpha:1.0] setFill]; - [NSBezierPath fillRect:NSMakeRect(2.0, 14.0, 28.0, 4.0)]; - [NSGraphicsContext restoreGraphicsState]; - [[NSColor colorWithGenericGamma22White:0.5 alpha:1.0] setFill]; - [NSBezierPath fillRect:NSMakeRect(3.0, 15.0, 26.0, 3.0)]; - [gradient drawInRect:NSMakeRect(3.0, 15.0, 26.0, 2.0) angle:90.0]; - path = [NSBezierPath bezierPath]; - [path moveToPoint:NSMakePoint(3.0, 15.0)]; - [path lineToPoint:NSMakePoint(3.0, 17.0)]; - [path lineToPoint:NSMakePoint(5.0, 17.0)]; - [path closePath]; - [gradient drawInBezierPath:path angle:0.0]; - path = [NSBezierPath bezierPath]; - [path moveToPoint:NSMakePoint(29.0, 15.0)]; - [path lineToPoint:NSMakePoint(29.0, 17.0)]; - [path lineToPoint:NSMakePoint(27.0, 17.0)]; - [path closePath]; - [gradient drawInBezierPath:path angle:180.0]; - drawAddBadgeAtPoint(NSMakePoint(18.0, 14.0)); - ); } + (void)makeNoteImages { Modified: trunk/SKBookmarkController.h =================================================================== --- trunk/SKBookmarkController.h 2021-06-21 14:40:32 UTC (rev 12356) +++ trunk/SKBookmarkController.h 2021-06-22 15:52:58 UTC (rev 12357) @@ -46,6 +46,9 @@ @interface SKBookmarkController : NSWindowController <NSWindowDelegate, NSToolbarDelegate, NSMenuDelegate, SKOutlineViewDelegate, NSOutlineViewDataSource, QLPreviewPanelDataSource, QLPreviewPanelDelegate, NSTouchBarDelegate> { SKOutlineView *outlineView; SKStatusBar *statusBar; + NSSegmentedControl *folderSegmentedControl; + NSSegmentedControl *separatorSegmentedControl; + NSSegmentedControl *deleteSegmentedControl; NSButton *newFolderButton; NSButton *newSeparatorButton; NSButton *deleteButton; @@ -63,6 +66,9 @@ @property (nonatomic, retain) IBOutlet SKOutlineView *outlineView; @property (nonatomic, retain) IBOutlet SKStatusBar *statusBar; +@property (nonatomic, retain) IBOutlet NSSegmentedControl *folderSegmentedControl; +@property (nonatomic, retain) IBOutlet NSSegmentedControl *separatorSegmentedControl; +@property (nonatomic, retain) IBOutlet NSSegmentedControl *deleteSegmentedControl; @property (nonatomic, readonly) SKBookmark *bookmarkRoot; @property (nonatomic, readonly) SKBookmark *previousSession; Modified: trunk/SKBookmarkController.m =================================================================== --- trunk/SKBookmarkController.m 2021-06-21 14:40:32 UTC (rev 12356) +++ trunk/SKBookmarkController.m 2021-06-22 15:52:58 UTC (rev 12357) @@ -109,7 +109,7 @@ @implementation SKBookmarkController -@synthesize outlineView, statusBar, bookmarkRoot, previousSession, undoManager; +@synthesize outlineView, statusBar, folderSegmentedControl, separatorSegmentedControl, deleteSegmentedControl, bookmarkRoot, previousSession, undoManager; static SKBookmarkController *sharedBookmarkController = nil; @@ -189,6 +189,12 @@ SKDESTROY(toolbarItems); SKDESTROY(outlineView); SKDESTROY(statusBar); + SKDESTROY(newFolderButton); + SKDESTROY(newSeparatorButton); + SKDESTROY(deleteButton); + SKDESTROY(folderSegmentedControl); + SKDESTROY(separatorSegmentedControl); + SKDESTROY(deleteSegmentedControl); SKDESTROY(bookmarksCache); [super dealloc]; } @@ -1108,9 +1114,7 @@ item = [[SKToolbarItem alloc] initWithItemIdentifier:SKBookmarksNewFolderToolbarItemIdentifier]; [item setLabels:NSLocalizedString(@"New Folder", @"Toolbar item label")]; [item setToolTip:NSLocalizedString(@"Add a New Folder", @"Tool tip message")]; - [item setImage:[NSImage imageNamed:SKImageNameNewFolder]]; - [item setTarget:self]; - [item setAction:@selector(insertBookmarkFolder:)]; + [item setViewWithSizes:folderSegmentedControl]; [dict setObject:item forKey:SKBookmarksNewFolderToolbarItemIdentifier]; [item release]; @@ -1117,9 +1121,8 @@ item = [[SKToolbarItem alloc] initWithItemIdentifier:SKBookmarksNewSeparatorToolbarItemIdentifier]; [item setLabels:NSLocalizedString(@"New Separator", @"Toolbar item label")]; [item setToolTip:NSLocalizedString(@"Add a New Separator", @"Tool tip message")]; - [item setImage:[NSImage imageNamed:SKImageNameNewSeparator]]; - [item setTarget:self]; - [item setAction:@selector(insertBookmarkSeparator:)]; + [item setImage:[NSImage imageNamed:SKImageNameToolbarNewSeparator]]; + [item setViewWithSizes:separatorSegmentedControl]; [dict setObject:item forKey:SKBookmarksNewSeparatorToolbarItemIdentifier]; [item release]; @@ -1126,9 +1129,8 @@ item = [[SKToolbarItem alloc] initWithItemIdentifier:SKBookmarksDeleteToolbarItemIdentifier]; [item setLabels:NSLocalizedString(@"Delete", @"Toolbar item label")]; [item setToolTip:NSLocalizedString(@"Delete Selected Items", @"Tool tip message")]; - [item setImage:[[NSWorkspace sharedWorkspace] iconForFileType:NSFileTypeForHFSTypeCode(kToolbarDeleteIcon)]]; - [item setTarget:self]; - [item setAction:@selector(deleteBookmark:)]; + [item setImage:[NSImage imageNamed:SKImageNameToolbarDelete]]; + [item setViewWithSizes:deleteSegmentedControl]; [dict setObject:item forKey:SKBookmarksDeleteToolbarItemIdentifier]; [item release]; 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