Moved code from setMenuView to calcSize

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16480 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
stoyan 2003-04-17 11:59:32 +00:00
parent 8b9c6304eb
commit 55463a8ab2

View file

@ -105,11 +105,6 @@ static NSImage *arrowImageH = nil;
{
/* The menu view is retaining us, we should not retain it. */
_menuView = menuView;
if ([[_menuView menu] _ownedByPopUp])
{
_mcell_belongs_to_popupbutton = YES;
[self setImagePosition: NSImageRight];
}
}
- (NSMenuView *) menuView
@ -122,6 +117,14 @@ static NSImage *arrowImageH = nil;
NSSize componentSize;
NSImage *anImage = nil;
float neededMenuItemHeight = 20;
// Check if _mcell_belongs_to_popupbutton = NO while cell owned by
// popup button. FIXME
if (!_mcell_belongs_to_popupbutton && [[_menuView menu] _ownedByPopUp])
{
_mcell_belongs_to_popupbutton = YES;
[self setImagePosition: NSImageRight];
}
// State Image
if ([_menuItem changesState])
@ -248,48 +251,48 @@ static NSImage *arrowImageH = nil;
//
- (NSRect) imageRectForBounds:(NSRect)cellFrame
{
if (_mcell_belongs_to_popupbutton && _cell.image_position)
{
/* Special case: draw image on the extreme right [FIXME check the distance]*/
cellFrame.origin.x += cellFrame.size.width - _imageWidth - 4;
cellFrame.size.width = _imageWidth;
return cellFrame;
}
if (_mcell_belongs_to_popupbutton && _cell.image_position)
{
// Special case: draw image on the extreme right
cellFrame.origin.x += cellFrame.size.width - _imageWidth - 4;
cellFrame.size.width = _imageWidth;
return cellFrame;
}
// Calculate the image part of cell frame from NSMenuView
cellFrame.origin.x += [_menuView imageAndTitleOffset];
cellFrame.size.width = [_menuView imageAndTitleWidth];
// Calculate the image part of cell frame from NSMenuView
cellFrame.origin.x += [_menuView imageAndTitleOffset];
cellFrame.size.width = [_menuView imageAndTitleWidth];
switch (_cell.image_position)
{
case NSNoImage:
cellFrame = NSZeroRect;
break;
switch (_cell.image_position)
{
case NSNoImage:
cellFrame = NSZeroRect;
break;
case NSImageOnly:
case NSImageOverlaps:
break;
case NSImageOnly:
case NSImageOverlaps:
break;
case NSImageLeft:
cellFrame.size.width = _imageWidth;
break;
case NSImageLeft:
cellFrame.size.width = _imageWidth;
break;
case NSImageRight:
cellFrame.origin.x += _titleWidth + xDist;
cellFrame.size.width = _imageWidth;
break;
case NSImageRight:
cellFrame.origin.x += _titleWidth + xDist;
cellFrame.size.width = _imageWidth;
break;
case NSImageBelow:
cellFrame.size.height /= 2;
break;
case NSImageBelow:
cellFrame.size.height /= 2;
break;
case NSImageAbove:
cellFrame.size.height /= 2;
cellFrame.origin.y += cellFrame.size.height;
break;
}
case NSImageAbove:
cellFrame.size.height /= 2;
cellFrame.origin.y += cellFrame.size.height;
break;
}
return cellFrame;
return cellFrame;
}
- (NSRect) keyEquivalentRectForBounds:(NSRect)cellFrame