From b723a86e10b5fb2d50303e4c0bd36b57169afa0e Mon Sep 17 00:00:00 2001 From: dsward2 Date: Tue, 12 May 2020 00:31:58 -0500 Subject: [PATCH] This commit fixes some bugs in StyleAttributesEditor and AnimationPathsPopoverViewController. The README.md file is updated for release 1.1.7. --- LICENSE | 2 +- .../project.pbxproj | 6 + .../AnimationPathsPopoverViewController.m | 10 +- ...PathElementShapeAnimationEditor-Info.plist | 2 +- .../StyleAttributeEditor.h | 2 + .../StyleAttributeEditor.m | 295 +++++++++++++++++- README.html | 14 +- README.md | 14 +- macSVG/MacSVG-Info.plist | 4 +- macSVG/en.lproj/Credits.rtf | 12 +- 10 files changed, 323 insertions(+), 38 deletions(-) diff --git a/LICENSE b/LICENSE index 5a7185f..f463d03 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ macSVG 1.1 -Copyright ©2011-2019 ArkPhone LLC +Copyright ©2011-2020 ArkPhone LLC Designed in Arkansas, USA. diff --git a/MacSVG Plugin Projects/macSVG Plugins/PathElementShapeAnimationEditor/PathElementShapeAnimationEditor.xcodeproj/project.pbxproj b/MacSVG Plugin Projects/macSVG Plugins/PathElementShapeAnimationEditor/PathElementShapeAnimationEditor.xcodeproj/project.pbxproj index 9e2c62c..10d6595 100644 --- a/MacSVG Plugin Projects/macSVG Plugins/PathElementShapeAnimationEditor/PathElementShapeAnimationEditor.xcodeproj/project.pbxproj +++ b/MacSVG Plugin Projects/macSVG Plugins/PathElementShapeAnimationEditor/PathElementShapeAnimationEditor.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 0E3F0F491E446023001FDDD7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0EEE3AEB17BC03740040846F /* Cocoa.framework */; }; + 0EC200A4246A65E3003E6E1E /* PathSegment.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EC200A3246A65E3003E6E1E /* PathSegment.m */; }; 0EEE3AF617BC03740040846F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0EEE3AF417BC03740040846F /* InfoPlist.strings */; }; 0EEE3AFF17BC041A0040846F /* PathElementShapeAnimationEditor.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EEE3AFE17BC041A0040846F /* PathElementShapeAnimationEditor.m */; }; 0EEE3B0817BC34F20040846F /* PathElementShapeAnimationEditor.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0EEE3B0017BC04840040846F /* PathElementShapeAnimationEditor.xib */; }; @@ -18,6 +19,8 @@ /* Begin PBXFileReference section */ 0E43C7082331F07000F55196 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PathElementShapeAnimationEditor.xib; sourceTree = ""; }; + 0EC200A2246A65E3003E6E1E /* PathSegment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PathSegment.h; path = "../../../../macSVG/SVGDocument Classes/PathSegment.h"; sourceTree = ""; }; + 0EC200A3246A65E3003E6E1E /* PathSegment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PathSegment.m; path = "../../../../macSVG/SVGDocument Classes/PathSegment.m"; sourceTree = ""; }; 0ECCB00F1DB4AA86001A6085 /* macSVGPluginConfig.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = macSVGPluginConfig.xcconfig; path = "../../../macSVGPlugin Framework/macSVGPluginConfig.xcconfig"; sourceTree = ""; }; 0EEE3AE817BC03740040846F /* PathElementShapeAnimationEditor.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PathElementShapeAnimationEditor.plugin; sourceTree = BUILT_PRODUCTS_DIR; }; 0EEE3AEB17BC03740040846F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; @@ -81,6 +84,8 @@ 0EEE3B0A17BD46BB0040846F /* AnimatePopoverViewController.m */, 0EEE3B0C17BD46DE0040846F /* AnimationPathsPopoverViewController.h */, 0EEE3B0D17BD46DE0040846F /* AnimationPathsPopoverViewController.m */, + 0EC200A2246A65E3003E6E1E /* PathSegment.h */, + 0EC200A3246A65E3003E6E1E /* PathSegment.m */, 0EEE3AF217BC03740040846F /* Supporting Files */, ); path = PathElementShapeAnimationEditor; @@ -168,6 +173,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 0EC200A4246A65E3003E6E1E /* PathSegment.m in Sources */, 0EEE3AFF17BC041A0040846F /* PathElementShapeAnimationEditor.m in Sources */, 0EEE3B0B17BD46BB0040846F /* AnimatePopoverViewController.m in Sources */, 0EEE3B0E17BD46DE0040846F /* AnimationPathsPopoverViewController.m in Sources */, diff --git a/MacSVG Plugin Projects/macSVG Plugins/PathElementShapeAnimationEditor/PathElementShapeAnimationEditor/AnimationPathsPopoverViewController.m b/MacSVG Plugin Projects/macSVG Plugins/PathElementShapeAnimationEditor/PathElementShapeAnimationEditor/AnimationPathsPopoverViewController.m index bb8ec5d..cb57de2 100644 --- a/MacSVG Plugin Projects/macSVG Plugins/PathElementShapeAnimationEditor/PathElementShapeAnimationEditor/AnimationPathsPopoverViewController.m +++ b/MacSVG Plugin Projects/macSVG Plugins/PathElementShapeAnimationEditor/PathElementShapeAnimationEditor/AnimationPathsPopoverViewController.m @@ -9,6 +9,7 @@ #import "AnimationPathsPopoverViewController.h" #import "PathElementShapeAnimationEditor.h" #import "MacSVGPlugin/MacSVGPluginCallbacks.h" +#import "PathSegment.h" @interface AnimationPathsPopoverViewController () @@ -879,13 +880,10 @@ - (BOOL)pathArray:(NSArray *)pathArray1 matchesPathArray:(NSArray *)pathArray2 { for (NSInteger i = 0; i < pathArray1Count; i++) { - NSDictionary * pathArray1Dictionary = pathArray1[i]; - NSDictionary * pathArray2Dictionary = pathArray2[i]; + PathSegment * pathSegment1 = pathArray1[i]; + PathSegment * pathSegment2 = pathArray2[i]; - NSString * path1Command = pathArray1Dictionary[@"command"]; - NSString * path2Command = pathArray2Dictionary[@"command"]; - - if ([path1Command isEqualToString:path2Command] == NO) + if (pathSegment1.pathCommand != pathSegment2.pathCommand) { result = NO; break; diff --git a/MacSVG Plugin Projects/macSVG Plugins/PathElementShapeAnimationEditor/PathElementShapeAnimationEditor/PathElementShapeAnimationEditor-Info.plist b/MacSVG Plugin Projects/macSVG Plugins/PathElementShapeAnimationEditor/PathElementShapeAnimationEditor/PathElementShapeAnimationEditor-Info.plist index 1a6543b..714eb6f 100644 --- a/MacSVG Plugin Projects/macSVG Plugins/PathElementShapeAnimationEditor/PathElementShapeAnimationEditor/PathElementShapeAnimationEditor-Info.plist +++ b/MacSVG Plugin Projects/macSVG Plugins/PathElementShapeAnimationEditor/PathElementShapeAnimationEditor/PathElementShapeAnimationEditor-Info.plist @@ -25,6 +25,6 @@ NSHumanReadableCopyright Copyright © 2013 ArkPhone LLC. All rights reserved. NSPrincipalClass - + PathElementShapeAnimationEditor diff --git a/MacSVG Plugin Projects/macSVG Plugins/StyleAttributeEditor/StyleAttributeEditor/StyleAttributeEditor.h b/MacSVG Plugin Projects/macSVG Plugins/StyleAttributeEditor/StyleAttributeEditor/StyleAttributeEditor.h index 3acf67a..80615af 100644 --- a/MacSVG Plugin Projects/macSVG Plugins/StyleAttributeEditor/StyleAttributeEditor/StyleAttributeEditor.h +++ b/MacSVG Plugin Projects/macSVG Plugins/StyleAttributeEditor/StyleAttributeEditor/StyleAttributeEditor.h @@ -23,6 +23,8 @@ @property (strong) NSArray * styleNamesComboArray; @property (strong) NSArray * styleValuesComboArray; +@property (strong) NSMutableArray * webColorsArray; + - (IBAction)cancelButtonAction:(id)sender; - (IBAction)applyChangesButtonAction:(id)sender; diff --git a/MacSVG Plugin Projects/macSVG Plugins/StyleAttributeEditor/StyleAttributeEditor/StyleAttributeEditor.m b/MacSVG Plugin Projects/macSVG Plugins/StyleAttributeEditor/StyleAttributeEditor/StyleAttributeEditor.m index bda35a6..dd302f3 100644 --- a/MacSVG Plugin Projects/macSVG Plugins/StyleAttributeEditor/StyleAttributeEditor/StyleAttributeEditor.m +++ b/MacSVG Plugin Projects/macSVG Plugins/StyleAttributeEditor/StyleAttributeEditor/StyleAttributeEditor.m @@ -64,6 +64,9 @@ - (instancetype)init self.styleNamesComboArray = propertiesAllKeysArray; self.styleValuesComboArray = [NSArray array]; + + self.webColorsArray = [NSMutableArray array]; + [self buildWebColorsArray]; } return self; @@ -294,6 +297,12 @@ - (IBAction)itemTextFieldUpdated:(id)sender NSArray * propertyValuesArray = [propertyDictionary objectForKey:@"values"]; + NSString * propertyNameString = propertyNameComboBox.stringValue; + if ([self isColorPropertyName:propertyNameString] == YES) + { + propertyValuesArray = self.webColorsArray; + } + self.styleValuesComboArray = propertyValuesArray; } else if (sender == propertyValueComboBox) @@ -343,6 +352,86 @@ - (void)controlTextDidEndEditing:(NSNotification *)aNotification { id sender = aNotification.object; + if (sender == propertyNameComboBox) + { + NSInteger rowIndex = [stylePropertiesTableView selectedRow]; + if (rowIndex >= 0) + { + NSString * propertyString = propertyNameComboBox.stringValue; + NSMutableDictionary * aStylePropertyDictionary = (self.stylePropertiesArray)[rowIndex]; + [aStylePropertyDictionary setObject:propertyString forKey:@"property"]; + + [stylePropertiesTableView reloadData]; + + NSIndexSet * indexSet = [NSIndexSet indexSetWithIndex:rowIndex]; + [stylePropertiesTableView selectRowIndexes:indexSet byExtendingSelection:NO]; + } + } + else if (sender == propertyValueComboBox) + { + NSInteger rowIndex = [stylePropertiesTableView selectedRow]; + if (rowIndex >= 0) + { + NSString * valueString = propertyValueComboBox.stringValue; + NSMutableDictionary * aStylePropertyDictionary = (self.stylePropertiesArray)[rowIndex]; + [aStylePropertyDictionary setObject:valueString forKey:@"value"]; + + [stylePropertiesTableView reloadData]; + + NSIndexSet * indexSet = [NSIndexSet indexSetWithIndex:rowIndex]; + [stylePropertiesTableView selectRowIndexes:indexSet byExtendingSelection:NO]; + } + } + else + { + if ([sender isKindOfClass:[NSTextField class]] == YES) + { + NSTextField * aTextField = sender; + + NSView * parentView = aTextField.superview; + + if ([parentView isKindOfClass:[NSTableCellView class]] == YES) + { + NSTableCellView * aTableCellView = (NSTableCellView *)parentView; + + NSInteger columnIndex = [stylePropertiesTableView columnForView:aTableCellView]; + + if (columnIndex >= 0) + { + NSArray * tableColumnsArray = [stylePropertiesTableView tableColumns]; + NSTableColumn * aTableColumn = [tableColumnsArray objectAtIndex:columnIndex]; + NSString * tableColumnIdentifier = aTableColumn.identifier; + + NSInteger rowIndex = [stylePropertiesTableView rowForView:aTableCellView]; + + if (rowIndex >= 0) + { + if ([tableColumnIdentifier isEqualToString:@"property"]) + { + NSMutableDictionary * aStylePropertyDictionary = (self.stylePropertiesArray)[rowIndex]; + + NSString * propertyString = aTextField.stringValue; + + [aStylePropertyDictionary setObject:propertyString forKey:@"property"]; + + propertyNameComboBox.stringValue = propertyString; + } + else if ([tableColumnIdentifier isEqualToString:@"value"]) + { + NSMutableDictionary * aStylePropertyDictionary = (self.stylePropertiesArray)[rowIndex]; + + NSString * valueString = aTextField.stringValue; + + [aStylePropertyDictionary setObject:valueString forKey:@"value"]; + + propertyValueComboBox.stringValue = valueString; + } + } + } + } + } + } + [self itemTextFieldUpdated:sender]; } @@ -461,10 +550,6 @@ - (NSDragOperation)tableView:(NSTableView*)tableView } - - - - //================================================================================== // tableView:viewForTableColumn:row: //================================================================================== @@ -560,6 +645,11 @@ - (void)refreshSelectedRow NSArray * propertyValuesArray = [propertyDictionary objectForKey:@"values"]; + if ([self isColorPropertyName:propertyNameString] == YES) + { + propertyValuesArray = self.webColorsArray; + } + self.styleValuesComboArray = propertyValuesArray; } else @@ -569,6 +659,34 @@ - (void)refreshSelectedRow } } +//================================================================================== +// isColorPropertyName: +//================================================================================== + +- (BOOL)isColorPropertyName:(NSString *)propertyName +{ + BOOL result = NO; + + if ([propertyName isEqualToString:@"stroke"] == YES) + { + result = YES; + } + else if ([propertyName isEqualToString:@"fill"] == YES) + { + result = YES; + } + else if ([propertyName isEqualToString:@"color"] == YES) + { + result = YES; + } + else if ([propertyName hasSuffix:@"-color"] == YES) + { + result = YES; + } + + return result; +} + #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" @@ -786,6 +904,175 @@ - (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)inde return result; } +//================================================================================== +// addWebColorName:hex:rgb: +//================================================================================== + +- (void)addWebColorName:(NSString *)colorName hex:(NSString *)hex rgb:(NSString *)rgb +{ + //NSDictionary * colorDictionary = @{@"name": colorName, @"hex": hex, @"rgb": rgb}; + //[self.webColorsArray addObject:colorDictionary]; + + [self.webColorsArray addObject:colorName]; +} + +//================================================================================== +// buildWebColorsArray +//================================================================================== + +- (void)buildWebColorsArray +{ + self.webColorsArray = [[NSMutableArray alloc] init]; + + [self addWebColorName:@"inherited" hex:@"#ffffff" rgb:@"255,255,255"]; + [self addWebColorName:@"aliceblue" hex:@"#f0f8ff" rgb:@"240,248,255"]; + [self addWebColorName:@"antiquewhite" hex:@"#faebd7" rgb:@"250,235,215"]; + [self addWebColorName:@"aqua" hex:@"#00ffff" rgb:@"0,255,255"]; + [self addWebColorName:@"aquamarine" hex:@"#7fffd4" rgb:@"127,255,212"]; + [self addWebColorName:@"azure" hex:@"#f0ffff" rgb:@"240,255,255"]; + [self addWebColorName:@"beige" hex:@"#f5f5dc" rgb:@"245,245,220"]; + [self addWebColorName:@"bisque" hex:@"#ffe4c4" rgb:@"255,228,196"]; + [self addWebColorName:@"black" hex:@"#000000" rgb:@"0,0,0"]; + [self addWebColorName:@"blanchedalmond" hex:@"#ffebcd" rgb:@"255,235,205"]; + [self addWebColorName:@"blue" hex:@"#0000ff" rgb:@"0,0,255"]; + [self addWebColorName:@"blueviolet" hex:@"#8a2be2" rgb:@"138,43,226"]; + [self addWebColorName:@"brown" hex:@"#a52a2a" rgb:@"165,42,42"]; + [self addWebColorName:@"burlywood" hex:@"#deb887" rgb:@"222,184,135"]; + [self addWebColorName:@"cadetblue" hex:@"#5f9ea0" rgb:@"95,158,160"]; + [self addWebColorName:@"chartreuse" hex:@"#7fff00" rgb:@"127,255,0"]; + [self addWebColorName:@"chocolate" hex:@"#d2691e" rgb:@"210,105,30"]; + [self addWebColorName:@"coral" hex:@"#ff7f50" rgb:@"255,127,80"]; + [self addWebColorName:@"cornflowerblue" hex:@"#6495ed" rgb:@"100,149,237"]; + [self addWebColorName:@"cornsilk" hex:@"#fff8dc" rgb:@"255,248,220"]; + [self addWebColorName:@"crimson" hex:@"#dc143c" rgb:@"220,20,60"]; + [self addWebColorName:@"cyan" hex:@"#00ffff" rgb:@"0,255,255"]; + [self addWebColorName:@"darkblue" hex:@"#00008b" rgb:@"0,0,139"]; + [self addWebColorName:@"darkcyan" hex:@"#008b8b" rgb:@"0,139,139"]; + [self addWebColorName:@"darkgoldenrod" hex:@"#b8860b" rgb:@"184,134,11"]; + [self addWebColorName:@"darkgray" hex:@"#a9a9a9" rgb:@"169,169,169"]; + [self addWebColorName:@"darkgreen" hex:@"#006400" rgb:@"0,100,0"]; + [self addWebColorName:@"darkgrey" hex:@"#a9a9a9" rgb:@"169,169,169"]; + [self addWebColorName:@"darkkhaki" hex:@"#bdb76b" rgb:@"189,183,107"]; + [self addWebColorName:@"darkmagenta" hex:@"#8b008b" rgb:@"139,0,139"]; + [self addWebColorName:@"darkolivegreen" hex:@"#556b2f" rgb:@"85,107,47"]; + [self addWebColorName:@"darkorange" hex:@"#ff8c00" rgb:@"255,140,0"]; + [self addWebColorName:@"darkorchid" hex:@"#9932cc" rgb:@"153,50,204"]; + [self addWebColorName:@"darkred" hex:@"#8b0000" rgb:@"139,0,0"]; + [self addWebColorName:@"darksalmon" hex:@"#e9967a" rgb:@"233,150,122"]; + [self addWebColorName:@"darkseagreen" hex:@"#8fbc8f" rgb:@"143,188,143"]; + [self addWebColorName:@"darkslateblue" hex:@"#483d8b" rgb:@"72,61,139"]; + [self addWebColorName:@"darkslategray" hex:@"#2f4f4f" rgb:@"47,79,79"]; + [self addWebColorName:@"darkslategrey" hex:@"#2f4f4f" rgb:@"47,79,79"]; + [self addWebColorName:@"darkturquoise" hex:@"#00ced1" rgb:@"0,206,209"]; + [self addWebColorName:@"darkviolet" hex:@"#9400d3" rgb:@"148,0,211"]; + [self addWebColorName:@"deeppink" hex:@"#ff1493" rgb:@"255,20,147"]; + [self addWebColorName:@"deepskyblue" hex:@"#00bfff" rgb:@"0,191,255"]; + [self addWebColorName:@"dimgray" hex:@"#696969" rgb:@"105,105,105"]; + [self addWebColorName:@"dimgrey" hex:@"#696969" rgb:@"105,105,105"]; + [self addWebColorName:@"dodgerblue" hex:@"#1e90ff" rgb:@"30,144,255"]; + [self addWebColorName:@"firebrick" hex:@"#b22222" rgb:@"178,34,34"]; + [self addWebColorName:@"floralwhite" hex:@"#fffaf0" rgb:@"255,250,240"]; + [self addWebColorName:@"forestgreen" hex:@"#228b22" rgb:@"34,139,34"]; + [self addWebColorName:@"fuchsia" hex:@"#ff00ff" rgb:@"255,0,255"]; + [self addWebColorName:@"gainsboro" hex:@"#dcdcdc" rgb:@"220,220,220"]; + [self addWebColorName:@"ghostwhite" hex:@"#f8f8ff" rgb:@"248,248,255"]; + [self addWebColorName:@"gold" hex:@"#ffd700" rgb:@"255,215,0"]; + [self addWebColorName:@"goldenrod" hex:@"#daa520" rgb:@"218,165,32"]; + [self addWebColorName:@"gray" hex:@"#808080" rgb:@"128,128,128"]; + [self addWebColorName:@"green" hex:@"#008000" rgb:@"0,128,0"]; + [self addWebColorName:@"greenyellow" hex:@"#adff2f" rgb:@"173,255,47"]; + [self addWebColorName:@"grey" hex:@"#808080" rgb:@"128,128,128"]; + [self addWebColorName:@"honeydew" hex:@"#f0fff0" rgb:@"240,255,240"]; + [self addWebColorName:@"hotpink" hex:@"#ff69b4" rgb:@"255,105,180"]; + [self addWebColorName:@"indianred" hex:@"#cd5c5c" rgb:@"205,92,92"]; + [self addWebColorName:@"indigo" hex:@"#4b0082" rgb:@"75,0,130"]; + [self addWebColorName:@"ivory" hex:@"#fffff0" rgb:@"255,255,240"]; + [self addWebColorName:@"khaki" hex:@"#f0e68c" rgb:@"240,230,140"]; + [self addWebColorName:@"lavender" hex:@"#e6e6fa" rgb:@"230,230,250"]; + [self addWebColorName:@"lavenderblush" hex:@"#fff0f5" rgb:@"255,240,245"]; + [self addWebColorName:@"lawngreen" hex:@"#7cfc00" rgb:@"124,252,0"]; + [self addWebColorName:@"lemonchiffon" hex:@"#fffacd" rgb:@"255,250,205"]; + [self addWebColorName:@"lightblue" hex:@"#add8e6" rgb:@"173,216,230"]; + [self addWebColorName:@"lightcoral" hex:@"#f08080" rgb:@"240,128,128"]; + [self addWebColorName:@"lightcyan" hex:@"#e0ffff" rgb:@"224,255,255"]; + [self addWebColorName:@"lightgoldenrodyellow" hex:@"#fafad2" rgb:@"250,250,210"]; + [self addWebColorName:@"lightgray" hex:@"#d3d3d3" rgb:@"211,211,211"]; + [self addWebColorName:@"lightgreen" hex:@"#90ee90" rgb:@"144,238,144"]; + [self addWebColorName:@"lightgrey" hex:@"#d3d3d3" rgb:@"211,211,211"]; + [self addWebColorName:@"lightpink" hex:@"#ffb6c1" rgb:@"255,182,193"]; + [self addWebColorName:@"lightsalmon" hex:@"#ffa07a" rgb:@"255,160,122"]; + [self addWebColorName:@"lightseagreen" hex:@"#20b2aa" rgb:@"32,178,170"]; + [self addWebColorName:@"lightskyblue" hex:@"#87cefa" rgb:@"135,206,250"]; + [self addWebColorName:@"lightslategray" hex:@"#778899" rgb:@"119,136,153"]; + [self addWebColorName:@"lightslategrey" hex:@"#778899" rgb:@"119,136,153"]; + [self addWebColorName:@"lightsteelblue" hex:@"#b0c4de" rgb:@"176,196,222"]; + [self addWebColorName:@"lightyellow" hex:@"#ffffe0" rgb:@"255,255,224"]; + [self addWebColorName:@"lime" hex:@"#00ff00" rgb:@"0,255,0"]; + [self addWebColorName:@"limegreen" hex:@"#32cd32" rgb:@"50,205,50"]; + [self addWebColorName:@"linen" hex:@"#faf0e6" rgb:@"250,240,230"]; + [self addWebColorName:@"magenta" hex:@"#ff00ff" rgb:@"255,0,255"]; + [self addWebColorName:@"maroon" hex:@"#800000" rgb:@"128,0,0"]; + [self addWebColorName:@"mediumaquamarine" hex:@"#66cdaa" rgb:@"102,205,170"]; + [self addWebColorName:@"mediumblue" hex:@"#0000cd" rgb:@"0,0,205"]; + [self addWebColorName:@"mediumorchid" hex:@"#ba55d3" rgb:@"186,85,211"]; + [self addWebColorName:@"mediumpurple" hex:@"#9370db" rgb:@"147,112,219"]; + [self addWebColorName:@"mediumseagreen" hex:@"#3cb371" rgb:@"60,179,113"]; + [self addWebColorName:@"mediumslateblue" hex:@"#7b68ee" rgb:@"123,104,238"]; + [self addWebColorName:@"mediumspringgreen" hex:@"#00fa9a" rgb:@"0,250,154"]; + [self addWebColorName:@"mediumturquoise" hex:@"#48d1cc" rgb:@"72,209,204"]; + [self addWebColorName:@"mediumvioletred" hex:@"#c71585" rgb:@"199,21,133"]; + [self addWebColorName:@"midnightblue" hex:@"#191970" rgb:@"25,25,112"]; + [self addWebColorName:@"mintcream" hex:@"#f5fffa" rgb:@"245,255,250"]; + [self addWebColorName:@"mistyrose" hex:@"#ffe4e1" rgb:@"255,228,225"]; + [self addWebColorName:@"moccasin" hex:@"#ffe4b5" rgb:@"255,228,181"]; + [self addWebColorName:@"navajowhite" hex:@"#ffdead" rgb:@"255,222,173"]; + [self addWebColorName:@"navy" hex:@"#000080" rgb:@"0,0,128"]; + [self addWebColorName:@"oldlace" hex:@"#fdf5e6" rgb:@"253,245,230"]; + [self addWebColorName:@"olive" hex:@"#808000" rgb:@"128,128,0"]; + [self addWebColorName:@"olivedrab" hex:@"#6b8e23" rgb:@"107,142,35"]; + [self addWebColorName:@"orange" hex:@"#ffa500" rgb:@"255,165,0"]; + [self addWebColorName:@"orangered" hex:@"#ff4500" rgb:@"255,69,0"]; + [self addWebColorName:@"orchid" hex:@"#da70d6" rgb:@"218,112,214"]; + [self addWebColorName:@"palegoldenrod" hex:@"#eee8aa" rgb:@"238,232,170"]; + [self addWebColorName:@"palegreen" hex:@"#98fb98" rgb:@"152,251,152"]; + [self addWebColorName:@"paleturquoise" hex:@"#afeeee" rgb:@"175,238,238"]; + [self addWebColorName:@"palevioletred" hex:@"#db7093" rgb:@"219,112,147"]; + [self addWebColorName:@"papayawhip" hex:@"#ffefd5" rgb:@"255,239,213"]; + [self addWebColorName:@"peachpuff" hex:@"#ffdab9" rgb:@"255,218,185"]; + [self addWebColorName:@"peru" hex:@"#cd853f" rgb:@"205,133,63"]; + [self addWebColorName:@"pink" hex:@"#ffc0cb" rgb:@"255,192,203"]; + [self addWebColorName:@"plum" hex:@"#dda0dd" rgb:@"221,160,221"]; + [self addWebColorName:@"powderblue" hex:@"#b0e0e6" rgb:@"176,224,230"]; + [self addWebColorName:@"purple" hex:@"#800080" rgb:@"128,0,128"]; + [self addWebColorName:@"red" hex:@"#ff0000" rgb:@"255,0,0"]; + [self addWebColorName:@"rosybrown" hex:@"#bc8f8f" rgb:@"188,143,143"]; + [self addWebColorName:@"royalblue" hex:@"#4169e1" rgb:@"65,105,225"]; + [self addWebColorName:@"saddlebrown" hex:@"#8b4513" rgb:@"139,69,19"]; + [self addWebColorName:@"salmon" hex:@"#fa8072" rgb:@"250,128,114"]; + [self addWebColorName:@"sandybrown" hex:@"#f4a460" rgb:@"244,164,96"]; + [self addWebColorName:@"seagreen" hex:@"#2e8b57" rgb:@"46,139,87"]; + [self addWebColorName:@"seashell" hex:@"#fff5ee" rgb:@"255,245,238"]; + [self addWebColorName:@"sienna" hex:@"#a0522d" rgb:@"160,82,45"]; + [self addWebColorName:@"silver" hex:@"#c0c0c0" rgb:@"192,192,192"]; + [self addWebColorName:@"skyblue" hex:@"#87ceeb" rgb:@"135,206,235"]; + [self addWebColorName:@"slateblue" hex:@"#6a5acd" rgb:@"106,90,205"]; + [self addWebColorName:@"slategray" hex:@"#708090" rgb:@"112,128,144"]; + [self addWebColorName:@"slategrey" hex:@"#708090" rgb:@"112,128,144"]; + [self addWebColorName:@"snow" hex:@"#fffafa" rgb:@"255,250,250"]; + [self addWebColorName:@"springgreen" hex:@"#00ff7f" rgb:@"0,255,127"]; + [self addWebColorName:@"steelblue" hex:@"#4682b4" rgb:@"70,130,180"]; + [self addWebColorName:@"tan" hex:@"#d2b48c" rgb:@"210,180,140"]; + [self addWebColorName:@"teal" hex:@"#008080" rgb:@"0,128,128"]; + [self addWebColorName:@"thistle" hex:@"#d8bfd8" rgb:@"216,191,216"]; + [self addWebColorName:@"tomato" hex:@"#ff6347" rgb:@"255,99,71"]; + [self addWebColorName:@"turquoise" hex:@"#40e0d0" rgb:@"64,224,208"]; + [self addWebColorName:@"violet" hex:@"#ee82ee" rgb:@"238,130,238"]; + [self addWebColorName:@"wheat" hex:@"#f5deb3" rgb:@"245,222,179"]; + [self addWebColorName:@"white" hex:@"#ffffff" rgb:@"255,255,255"]; + [self addWebColorName:@"whitesmoke" hex:@"#f5f5f5" rgb:@"245,245,245"]; + [self addWebColorName:@"yellow" hex:@"#ffff00" rgb:@"255,255,0"]; + [self addWebColorName:@"yellowgreen" hex:@"#9acd32" rgb:@"154,205,50"]; +} diff --git a/README.html b/README.html index df6b11e..406fe67 100644 --- a/README.html +++ b/README.html @@ -328,17 +328,11 @@ -

macSVG

+

macSVG 1.1.7

-

December 9, 2019 – This release of macSVG contains several bug fixes and a couple of new features.

- -

The tool panel now contains a Share button. It can be used with AirDrop to quickly open the current SVG document on an iPhone, iPad or another Mac.

- -

The user interface for managing animation elements has been improved for setting the keyTimes, keySplines and keyPoints attributes. This change makes it easier to set linear/ease-in/ease-out animation timings.

- -

The OpenClipArt.org website under the Help menu is currently offline. Hopefully it will return soon.

+

May 12, 2020 – This release of macSVG 1.1.7 contains several bug fixes, notably with copy, paste and drag commands - and improves editing for SVG paths with relative coordinates. Some improvements were made for editing animation with keyTimes/keySplines/keyPoints animate, animateMotion and animateTransform elements. The built-in HTTP server was migrated to use GCDWebServer.


@@ -372,7 +366,9 @@

Future project goals:

Migration to Swift language, and Swift Package Manager for importing third-party code.

-

Copyright (c) 2016-2019 by ArkPhone, LLC.

+

We are monitoring the WebKit project concerning their plans to remove the Legacy WebView framework, which is used extensively in macSVG.

+ +

Copyright (c) 2016-2020 by ArkPhone, LLC.

All trademarks are the property of their respective holders.

diff --git a/README.md b/README.md index 32dcfec..cef3ef2 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,8 @@ -# macSVG +# macSVG 1.1.7 -**December 9, 2019 – This release of macSVG contains several bug fixes and a couple of new features.** - -**The tool panel now contains a Share button. It can be used with AirDrop to quickly open the current SVG document on an iPhone, iPad or another Mac.** - -**The user interface for managing animation elements has been improved for setting the keyTimes, keySplines and keyPoints attributes. This change makes it easier to set linear/ease-in/ease-out animation timings.** - -The OpenClipArt.org website under the Help menu is currently offline. Hopefully it will return soon. +**May 12, 2020 – This release of macSVG 1.1.7 contains several bug fixes, notably with copy, paste and drag commands - and improves editing for SVG paths with relative coordinates. Some improvements were made for editing animation with keyTimes/keySplines/keyPoints animate, animateMotion and animateTransform elements. The built-in HTTP server was migrated to use GCDWebServer.**
@@ -48,8 +42,10 @@ Apple’s free Xcode system is required to build the macOS application from the Migration to Swift language, and Swift Package Manager for importing third-party code. +We are monitoring the WebKit project concerning their plans to remove the Legacy WebView framework, which is used extensively in macSVG. + # -Copyright (c) 2016-2019 by ArkPhone, LLC. +Copyright (c) 2016-2020 by ArkPhone, LLC. All trademarks are the property of their respective holders. diff --git a/macSVG/MacSVG-Info.plist b/macSVG/MacSVG-Info.plist index 1d4d00c..ddfa249 100644 --- a/macSVG/MacSVG-Info.plist +++ b/macSVG/MacSVG-Info.plist @@ -105,7 +105,7 @@ CFBundleSignature ???? CFBundleVersion - 3346 + 3365 LSApplicationCategoryType public.app-category.graphics-design LSMinimumSystemVersion @@ -116,7 +116,7 @@ NSHumanReadableCopyright - Copyright © 2019 ArkPhone, LLC + Copyright © 2020 ArkPhone, LLC NSMainNibFile MainMenu NSPrincipalClass diff --git a/macSVG/en.lproj/Credits.rtf b/macSVG/en.lproj/Credits.rtf index cebf7dd..1b919ec 100644 --- a/macSVG/en.lproj/Credits.rtf +++ b/macSVG/en.lproj/Credits.rtf @@ -1,5 +1,5 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf600 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset0 Menlo-Regular;\f2\fswiss\fcharset0 Helvetica-Bold; +{\rtf1\ansi\ansicpg1252\cocoartf2512 +\cocoascreenfonts1\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset0 Menlo-Regular;\f2\fswiss\fcharset0 Helvetica-Bold; } {\colortbl;\red255\green255\blue255;\red74\green70\blue67;\red38\green38\blue38;\red249\green249\blue249; } @@ -9,16 +9,16 @@ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 \f0\fs24 \cf0 \ -macSVG 1.1\ +macSVG 1.1.7\ \ -Copyright \'a92011-2019 ArkPhone LLC\ +Copyright \'a92011-2020 ArkPhone LLC\ \ Designed in Arkansas, USA.\ \ Support: {\field{\*\fldinst{HYPERLINK "http://macsvg.org"}}{\fldrslt https://macsvg.org}}\ \ \pard\tx543\pardeftab543\pardirnatural\partightenfactor0 -\cf0 \CocoaLigature0 GitHub Project: {\field{\*\fldinst{HYPERLINK "https://github.com/dsward2/macSVG"}}{\fldrslt https://github.com/dsward2/macSVG}} +\cf0 \CocoaLigature0 GitHub Open Source Project: {\field{\*\fldinst{HYPERLINK "https://github.com/dsward2/macSVG"}}{\fldrslt https://github.com/dsward2/macSVG}} \f1\fs22 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 @@ -38,7 +38,7 @@ macSVG is distributed under the MIT License:\ \f2\b \cf2 \expnd0\expndtw0\kerning0 MIT License\ \ -Copyright (c) 2011-2019 ArkPhone, LLC\ +Copyright (c) 2011-2020 ArkPhone, LLC\ \ Permission is hereby granted, free of charge, to any person obtaining a copy\ of this software and associated documentation files (the "Software"), to deal\