mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-30 22:20:37 +00:00
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:
parent
8b9c6304eb
commit
55463a8ab2
1 changed files with 42 additions and 39 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue