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

Reply via email to