Skip to content

Commit

Permalink
Improve code. Fix issue when resizing fast horizontally
Browse files Browse the repository at this point in the history
  • Loading branch information
defagos committed Nov 22, 2012
1 parent 3075f40 commit 7ea535f
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 56 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ - (void)viewDidLoad

self.foldersCursor.dataSource = self;
self.foldersCursor.delegate = self;
self.foldersCursor.pointerViewTopLeftOffset = CGSizeMake(-10.f, -10.f);
self.foldersCursor.pointerViewBottomRightOffset = CGSizeMake(10.f, 10.f);

self.mixedFoldersCursor.dataSource = self;
self.mixedFoldersCursor.delegate = self;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@
<string key="NSFrame">{{661, 305}, {87, 21}}</string>
<reference key="NSSuperview" ref="463507662"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="369226136"/>
<reference key="NSNextKeyView" ref="459088062"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<int key="IBUIContentMode">7</int>
Expand All @@ -182,13 +182,13 @@
<reference key="IBUIFontDescription" ref="141902341"/>
<reference key="IBUIFont" ref="233401515"/>
</object>
<object class="IBUILabel" id="369226136">
<object class="IBUILabel" id="459088062">
<reference key="NSNextResponder" ref="463507662"/>
<int key="NSvFlags">319</int>
<string key="NSFrame">{{20, 328}, {195, 21}}</string>
<string key="NSFrame">{{20, 346}, {195, 30}}</string>
<reference key="NSSuperview" ref="463507662"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="119450491"/>
<reference key="NSNextKeyView" ref="743312166"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
Expand All @@ -199,24 +199,24 @@
<reference key="IBUITextColor" ref="251398656"/>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">0</int>
<object class="IBUIFontDescription" key="IBUIFontDescription" id="210483434">
<object class="IBUIFontDescription" key="IBUIFontDescription" id="1043843797">
<int key="type">1</int>
<double key="pointSize">15</double>
</object>
<object class="NSFont" key="IBUIFont" id="200262099">
<object class="NSFont" key="IBUIFont" id="9378528">
<string key="NSName">Helvetica</string>
<double key="NSSize">15</double>
<int key="NSfFlags">16</int>
</object>
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
</object>
<object class="IBUISlider" id="119450491">
<object class="IBUISlider" id="743312166">
<reference key="NSNextResponder" ref="463507662"/>
<int key="NSvFlags">303</int>
<string key="NSFrame">{{221, 328}, {429, 23}}</string>
<string key="NSFrame">{{221, 350}, {429, 23}}</string>
<reference key="NSSuperview" ref="463507662"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="84648757"/>
<reference key="NSNextKeyView" ref="749460027"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
Expand All @@ -225,13 +225,13 @@
<float key="IBUIValue">1</float>
<float key="IBUIMinValue">0.10000000149011612</float>
</object>
<object class="IBUILabel" id="84648757">
<object class="IBUILabel" id="749460027">
<reference key="NSNextResponder" ref="463507662"/>
<int key="NSvFlags">319</int>
<string key="NSFrame">{{20, 360}, {195, 21}}</string>
<string key="NSFrame">{{20, 384}, {195, 30}}</string>
<reference key="NSSuperview" ref="463507662"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="717420235"/>
<reference key="NSNextKeyView" ref="43440644"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
Expand All @@ -242,14 +242,14 @@
<reference key="IBUITextColor" ref="251398656"/>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">0</int>
<reference key="IBUIFontDescription" ref="210483434"/>
<reference key="IBUIFont" ref="200262099"/>
<reference key="IBUIFontDescription" ref="1043843797"/>
<reference key="IBUIFont" ref="9378528"/>
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
</object>
<object class="IBUISlider" id="717420235">
<object class="IBUISlider" id="43440644">
<reference key="NSNextResponder" ref="463507662"/>
<int key="NSvFlags">301</int>
<string key="NSFrame">{{221, 360}, {429, 23}}</string>
<int key="NSvFlags">303</int>
<string key="NSFrame">{{221, 388}, {429, 23}}</string>
<reference key="NSSuperview" ref="463507662"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1047325668"/>
Expand All @@ -264,7 +264,7 @@
<object class="IBUIView" id="1047325668">
<reference key="NSNextResponder" ref="463507662"/>
<int key="NSvFlags">303</int>
<string key="NSFrame">{{232, 418}, {305, 60}}</string>
<string key="NSFrame">{{232, 468}, {305, 60}}</string>
<reference key="NSSuperview" ref="463507662"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="367974868"/>
Expand All @@ -277,7 +277,7 @@
<object class="IBUIView" id="367974868">
<reference key="NSNextResponder" ref="463507662"/>
<int key="NSvFlags">303</int>
<string key="NSFrame">{{20, 563}, {728, 140}}</string>
<string key="NSFrame">{{20, 582}, {728, 140}}</string>
<reference key="NSSuperview" ref="463507662"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="186346864"/>
Expand Down Expand Up @@ -420,15 +420,15 @@
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">widthFactorSlider</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="119450491"/>
<reference key="destination" ref="743312166"/>
</object>
<int key="connectionID">65</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">heightFactorSlider</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="717420235"/>
<reference key="destination" ref="43440644"/>
</object>
<int key="connectionID">66</int>
</object>
Expand Down Expand Up @@ -462,7 +462,7 @@
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">changeSize:</string>
<reference key="source" ref="119450491"/>
<reference key="source" ref="743312166"/>
<reference key="destination" ref="841351856"/>
<int key="IBEventType">13</int>
</object>
Expand All @@ -471,7 +471,7 @@
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">changeSize:</string>
<reference key="source" ref="717420235"/>
<reference key="source" ref="43440644"/>
<reference key="destination" ref="841351856"/>
<int key="IBEventType">13</int>
</object>
Expand Down Expand Up @@ -516,10 +516,10 @@
<reference ref="219684721"/>
<reference ref="163979004"/>
<reference ref="899278541"/>
<reference ref="369226136"/>
<reference ref="119450491"/>
<reference ref="717420235"/>
<reference ref="84648757"/>
<reference ref="459088062"/>
<reference ref="743312166"/>
<reference ref="43440644"/>
<reference ref="749460027"/>
</object>
<reference key="parent" ref="0"/>
</object>
Expand Down Expand Up @@ -583,22 +583,22 @@
</object>
<object class="IBObjectRecord">
<int key="objectID">61</int>
<reference key="object" ref="119450491"/>
<reference key="object" ref="743312166"/>
<reference key="parent" ref="463507662"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">62</int>
<reference key="object" ref="717420235"/>
<reference key="object" ref="43440644"/>
<reference key="parent" ref="463507662"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">63</int>
<reference key="object" ref="369226136"/>
<reference key="object" ref="459088062"/>
<reference key="parent" ref="463507662"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">64</int>
<reference key="object" ref="84648757"/>
<reference key="object" ref="749460027"/>
<reference key="parent" ref="463507662"/>
</object>
</object>
Expand Down
37 changes: 12 additions & 25 deletions CoconutKit/Sources/View/HLSCursor.m
Original file line number Diff line number Diff line change
Expand Up @@ -164,49 +164,36 @@ - (void)layoutSubviews
requiredHeight += floatmax(-self.pointerViewTopLeftOffset.height, 0.f) + floatmax(self.pointerViewBottomRightOffset.height, 0.f);

// Cursor large enough so that everything fits in: Add space between elements
CGFloat widthScaleFactor = 1.f;
if (floatle(requiredWidth, CGRectGetWidth(self.frame))) {
m_spacing = (CGRectGetWidth(self.frame) - requiredWidth) / ([self.elementWrapperViews count] - 1);
}
// Not large enough: Scale all views so that they can fit with no space in between
else {
NSUInteger i = 0;
CGFloat factor = CGRectGetWidth(self.frame) / requiredWidth;
for (UIView *elementWrapperView in self.elementWrapperViews) {
CGSize elementWrapperViewSize = [[self.elementWrapperViewSizeValues objectAtIndex:i] CGSizeValue];

elementWrapperView.bounds = CGRectMake(0.f,
0.f,
factor * elementWrapperViewSize.width,
elementWrapperViewSize.height);
++i;
}

widthScaleFactor = CGRectGetWidth(self.frame) / requiredWidth;
m_spacing = 0.f;
}

// Cursor not tall enough: Scale all views so that they can fit vertically
NSUInteger i = 0;
CGFloat heightScaleFactor = 1.f;
if (floatgt(requiredHeight, CGRectGetHeight(self.frame))) {
CGFloat factor = CGRectGetHeight(self.frame) / requiredHeight;
for (UIView *elementWrapperView in self.elementWrapperViews) {
CGSize elementWrapperViewSize = [[self.elementWrapperViewSizeValues objectAtIndex:i] CGSizeValue];

elementWrapperView.bounds = CGRectMake(0.f,
0.f,
elementWrapperViewSize.width,
factor * elementWrapperViewSize.height);
}
heightScaleFactor = CGRectGetHeight(self.frame) / requiredHeight;
}

// Adjust individual frames so that the element views are centered within the available frame
CGFloat xPos = floatmax(-self.pointerViewTopLeftOffset.width, 0.f);
NSUInteger i = 0;
for (UIView *elementWrapperView in self.elementWrapperViews) {
CGSize elementWrapperViewSize = [[self.elementWrapperViewSizeValues objectAtIndex:i] CGSizeValue];

// Centered in main frame
elementWrapperView.frame = CGRectMake(floorf(xPos),
floorf((CGRectGetHeight(self.frame) - CGRectGetHeight(elementWrapperView.frame)) / 2.f),
CGRectGetWidth(elementWrapperView.frame),
CGRectGetHeight(elementWrapperView.frame));
widthScaleFactor * elementWrapperViewSize.width,
heightScaleFactor * elementWrapperViewSize.height);
xPos += CGRectGetWidth(elementWrapperView.frame) + m_spacing;

++i;
}

if (! m_viewsCreated) {
Expand Down Expand Up @@ -340,7 +327,7 @@ - (UIView *)elementWrapperViewForIndex:(NSUInteger)index
0.f,
floatmax(CGRectGetWidth(elementView.frame), CGRectGetWidth(selectedElementView.frame) + 10.f),
floatmax(CGRectGetHeight(elementView.frame), CGRectGetHeight(selectedElementView.frame) + 10.f))] autorelease];
wrapperView.backgroundColor = [UIColor redColor];
wrapperView.backgroundColor = [UIColor clearColor];

[wrapperView addSubview:elementView];
elementView.center = wrapperView.center;
Expand Down

0 comments on commit 7ea535f

Please sign in to comment.