Further improvement of toolbar resizing and missing changelog entry.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30380 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
fredkiefer 2010-05-13 14:25:54 +00:00
parent e140af22af
commit d8a5434efb
2 changed files with 48 additions and 21 deletions

View file

@ -1,3 +1,9 @@
2010-05-13 Fred Kiefer <FredKiefer@gmx.de>
* Source/NSToolbarItem.m (-_isFlexibleSpace): Simplify this method.
* Source/GSToolbarView.m: Clean up toolbar item resizing, this now
allows for resizable item other than flexible space.
2010-05-13 Wolfgang Lux <wolfgang.lux@gmail.com> 2010-05-13 Wolfgang Lux <wolfgang.lux@gmail.com>
* Source/GSNibLoading.m (-nibInstantiateWithOwner:topLeveObjects:, * Source/GSNibLoading.m (-nibInstantiateWithOwner:topLeveObjects:,
@ -76,7 +82,6 @@
Fix bug where some objects from the nib file were not sent an Fix bug where some objects from the nib file were not sent an
-awakeFromNib message. -awakeFromNib message.
>>>>>>> .r30369
2010-05-11 Fred Kiefer <FredKiefer@gmx.de> 2010-05-11 Fred Kiefer <FredKiefer@gmx.de>
* Headers/Additions/GNUstepGUI/GSTheme.h: * Headers/Additions/GNUstepGUI/GSTheme.h:

View file

@ -655,7 +655,6 @@ static void initSystemExtensionsColors(void)
NSArray *items = [_toolbar items]; NSArray *items = [_toolbar items];
NSEnumerator *e = [items objectEnumerator]; NSEnumerator *e = [items objectEnumerator];
NSToolbarItem *item; NSToolbarItem *item;
NSView *backView;
NSRect lastBackViewFrame; NSRect lastBackViewFrame;
float lengthAvailable; float lengthAvailable;
unsigned int flexibleSpaceItemsNumber = 0; unsigned int flexibleSpaceItemsNumber = 0;
@ -678,8 +677,17 @@ static void initSystemExtensionsColors(void)
{ {
flexibleSpaceItemsNumber++; flexibleSpaceItemsNumber++;
} }
// Currently only item with a view are resizable
if ([item view] != nil)
{
maxX += [item maxSize].width; maxX += [item maxSize].width;
} }
else
{
maxX += NSWidth([[item _backView] frame]);
}
}
if (flexibleSpaceItemsNumber > 0) if (flexibleSpaceItemsNumber > 0)
{ {
@ -689,7 +697,7 @@ static void initSystemExtensionsColors(void)
e = [items objectEnumerator]; e = [items objectEnumerator];
while ((item = [e nextObject]) != nil) while ((item = [e nextObject]) != nil)
{ {
backView = [item _backView]; NSView *backView = [item _backView];
if ([item _isFlexibleSpace]) if ([item _isFlexibleSpace])
{ {
NSRect backViewFrame = [backView frame]; NSRect backViewFrame = [backView frame];
@ -716,19 +724,32 @@ static void initSystemExtensionsColors(void)
if (maxX >= NSMaxX(lastBackViewFrame)) if (maxX >= NSMaxX(lastBackViewFrame))
{ {
CGFloat rel = lengthAvailable / (maxX - NSMaxX(lastBackViewFrame)); CGFloat rel = lengthAvailable / (maxX - NSMaxX(lastBackViewFrame));
if (rel > 1.0)
rel = 1.0;
e = [items objectEnumerator]; e = [items objectEnumerator];
while ((item = [e nextObject]) != nil) while ((item = [e nextObject]) != nil)
{
NSView *view = [item view];
NSView *backView = [item _backView];
if (view != nil)
{ {
CGFloat diff = [item maxSize].width - [item minSize].width; CGFloat diff = [item maxSize].width - [item minSize].width;
backView = [item _backView];
if (diff > 0) if (diff > 0)
{ {
NSRect backViewFrame = [backView frame]; NSRect backViewFrame = [backView frame];
NSRect viewFrame = [view frame];
[backView setFrame: NSMakeRect(x, backViewFrame.origin.y, [backView setFrame: NSMakeRect(x, backViewFrame.origin.y,
(rel * diff) + [item minSize].width, (rel * diff) + [item minSize].width,
backViewFrame.size.height)]; backViewFrame.size.height)];
// Subtract InsetItemViewX
viewFrame.size.width = (rel * diff) + [item minSize].width
- 2 * 10;
[view setFrame: viewFrame];
mustAdjustNext = YES; mustAdjustNext = YES;
} }
else if (mustAdjustNext) else if (mustAdjustNext)
@ -738,7 +759,8 @@ static void initSystemExtensionsColors(void)
[backView setFrame: NSMakeRect(x, backViewFrame.origin.y, [backView setFrame: NSMakeRect(x, backViewFrame.origin.y,
backViewFrame.size.width, backViewFrame.size.height)]; backViewFrame.size.width, backViewFrame.size.height)];
} }
x += [backView frame].size.width; }
x += NSWidth([backView frame]);
} }
} }
} }