From 5254ce0fe452f2c4c82b36d32310f5e78619e1be Mon Sep 17 00:00:00 2001 From: michael starke Date: Tue, 13 Aug 2013 02:52:16 +0200 Subject: [PATCH] Extendend color test Some experiments on the segmented toolbar button Updated keepasskit submodule --- KeePassKit | 2 +- MacPass/MPContextToolbarButton.h | 1 - MacPass/MPContextToolbarButton.m | 32 ++++++++++++++++++++------------ MacPassTests/KPKTestHexColor.m | 26 +++++++++++++++++--------- 4 files changed, 38 insertions(+), 23 deletions(-) diff --git a/KeePassKit b/KeePassKit index 802eac28..8894b319 160000 --- a/KeePassKit +++ b/KeePassKit @@ -1 +1 @@ -Subproject commit 802eac2871be8d7ba1ddd62447d3f227da4ad3a3 +Subproject commit 8894b319ad5548f81b0c6c13fd2e2490ecc6e26c diff --git a/MacPass/MPContextToolbarButton.h b/MacPass/MPContextToolbarButton.h index b7aea3de..413239ec 100644 --- a/MacPass/MPContextToolbarButton.h +++ b/MacPass/MPContextToolbarButton.h @@ -11,5 +11,4 @@ @interface MPContextToolbarButton : NSSegmentedControl - (void)setImage:(NSImage *)image; - @end diff --git a/MacPass/MPContextToolbarButton.m b/MacPass/MPContextToolbarButton.m index b2bf828a..566126d6 100644 --- a/MacPass/MPContextToolbarButton.m +++ b/MacPass/MPContextToolbarButton.m @@ -14,19 +14,11 @@ self = [super initWithFrame:frame]; if (self) { [self setFocusRingType:NSFocusRingTypeNone]; - [self setSegmentCount:1]; + [self setSegmentCount:2]; [[self cell] setTrackingMode:NSSegmentSwitchTrackingMomentary]; [self setSegmentStyle:NSSegmentStyleTexturedSquare]; - -// NSMutableData *data = [[NSMutableData alloc] init]; -// NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; -// [[self cell] encodeWithCoder:archiver]; -// [archiver finishEncoding]; -// -// NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; -// HNHContextButtonSegmentedCell *cell = [[HNHContextButtonSegmentedCell alloc] initWithCoder:unarchiver]; -// [unarchiver finishDecoding]; -// [self setCell:cell]; + [[self cell] setWidth:32 forSegment:0]; + [[self cell] setWidth:20 forSegment:1]; } return self; } @@ -41,7 +33,7 @@ } - (void)setSegmentCount:(NSInteger)count { - if(count == 1) { + if(count == 2) { [super setSegmentCount:count]; } } @@ -50,4 +42,20 @@ [self setImage:image forSegment:0]; } +- (SEL)action { + NSLog(@"actionSegment:%ld", [[self cell] selectedSegment]); + if([self selectedSegment] == 1) { + return @selector(showContextMenu:); + } + return [super action]; +} + +- (id)target { + NSLog(@"targetSegment:%ld", [[self cell] selectedSegment]); + if([self selectedSegment] == 1) { + return self; + } + return [super target]; +} + @end diff --git a/MacPassTests/KPKTestHexColor.m b/MacPassTests/KPKTestHexColor.m index 607d6c0c..09884773 100644 --- a/MacPassTests/KPKTestHexColor.m +++ b/MacPassTests/KPKTestHexColor.m @@ -13,25 +13,25 @@ @implementation KPKTestHexColor - (void)testHexToColor { - NSString *redHex = @"00ff0000"; - NSString *blueHex = @"000000ff"; - NSString *greeHex = @"0000ff00"; + NSString *redHex = @"FF000000"; + NSString *greeHex = @"00FF0000"; + NSString *blueHex = @"0000FF00"; NSColor *red = [NSColor colorWithHexString:redHex]; - NSColor *blue = [NSColor colorWithHexString:blueHex]; NSColor *green = [NSColor colorWithHexString:greeHex]; + NSColor *blue = [NSColor colorWithHexString:blueHex]; STAssertEquals([red redComponent], 1.0, @"Red color should have 100% red"); STAssertEquals([red blueComponent], 0.0, @"Red color should have 0% blue"); STAssertEquals([red greenComponent], 0.0, @"Red color should have 0% green"); - STAssertEquals([blue redComponent], 0.0, @"Blue color should have 0% red"); - STAssertEquals([blue blueComponent], 1.0, @"Blue color should have 100% blue"); - STAssertEquals([blue greenComponent], 0.0, @"Blue color should have 0% green"); - STAssertEquals([green redComponent], 0.0, @"Green color should have 0% red"); - STAssertEquals([green blueComponent], 0.0, @"Green color should have 0% blue"); STAssertEquals([green greenComponent], 1.0, @"Green color should have 100% green"); + STAssertEquals([green blueComponent], 0.0, @"Green color should have 0% blue"); + + STAssertEquals([blue redComponent], 0.0, @"Blue color should have 0% red"); + STAssertEquals([blue greenComponent], 0.0, @"Blue color should have 0% green"); + STAssertEquals([blue blueComponent], 1.0, @"Blue color should have 100% blue"); } - (void)testColorRefReading { @@ -43,4 +43,12 @@ STAssertEquals([color blueComponent], 0.0, @"Blue 100%"); } +- (void)testColorRefWriting { + uint32_t colorBytes = 0x000000FF; + NSData *colorData = [NSData dataWithBytesNoCopy:&colorBytes length:4 freeWhenDone:NO]; + NSColor *color = [NSColor colorWithData:colorData]; + NSData *newData = [color colorData]; + STAssertEqualObjects(colorData, newData, @"Convertion should result in same data"); +} + @end