mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-30 07:10:37 +00:00
Alot of patches applied from various contributors.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@4879 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
4403e77a00
commit
3512fef231
4 changed files with 97 additions and 19 deletions
|
@ -130,7 +130,7 @@
|
|||
// nada
|
||||
break;
|
||||
case NSImageFramePhoto:
|
||||
// what does this one look like?
|
||||
// what does this one look like? TODO (in sync with the rest of the code)
|
||||
break;
|
||||
case NSImageFrameGrayBezel:
|
||||
NSDrawGrayBezel(cellFrame, NSZeroRect);
|
||||
|
@ -209,7 +209,7 @@ static inline NSSize scaleProportionally(NSSize imageSize, NSRect canvasRect)
|
|||
return;
|
||||
|
||||
// leave room for the frame
|
||||
cellFrame = NSInsetRect(cellFrame, xDist, yDist);
|
||||
cellFrame = [self drawingRectForBounds: cellFrame];
|
||||
|
||||
switch( [self imageScaling] )
|
||||
{
|
||||
|
@ -289,6 +289,67 @@ static inline NSSize scaleProportionally(NSSize imageSize, NSRect canvasRect)
|
|||
[image compositeToPoint: position operation: NSCompositeCopy];
|
||||
}
|
||||
|
||||
- (NSSize) cellSize
|
||||
{
|
||||
NSSize borderSize, s;
|
||||
|
||||
// Get border size
|
||||
switch (_frameStyle)
|
||||
{
|
||||
case NSImageFrameNone:
|
||||
borderSize = [NSCell sizeForBorderType: NSNoBorder];
|
||||
break;
|
||||
case NSImageFramePhoto:
|
||||
// what does this one look like? TODO (in sync with the rest of the code)
|
||||
borderSize = [NSCell sizeForBorderType: NSNoBorder];
|
||||
break;
|
||||
case NSImageFrameGrayBezel:
|
||||
case NSImageFrameGroove:
|
||||
case NSImageFrameButton:
|
||||
borderSize = [NSCell sizeForBorderType: NSBezelBorder];
|
||||
break;
|
||||
}
|
||||
|
||||
// Get Content Size
|
||||
s = _original_image_size;
|
||||
|
||||
// Add in border size
|
||||
s.width += 2 * borderSize.width;
|
||||
s.height += 2 * borderSize.height;
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
- (NSSize) cellSizeForBounds: (NSRect)aRect
|
||||
{
|
||||
// TODO
|
||||
return NSZeroSize;
|
||||
}
|
||||
|
||||
- (NSRect) drawingRectForBounds: (NSRect)theRect
|
||||
{
|
||||
NSSize borderSize;
|
||||
|
||||
// Get border size
|
||||
switch (_frameStyle)
|
||||
{
|
||||
case NSImageFrameNone:
|
||||
borderSize = [NSCell sizeForBorderType: NSNoBorder];
|
||||
break;
|
||||
case NSImageFramePhoto:
|
||||
// what does this one look like? TODO (in sync with the rest of the code)
|
||||
borderSize = [NSCell sizeForBorderType: NSNoBorder];
|
||||
break;
|
||||
case NSImageFrameGrayBezel:
|
||||
case NSImageFrameGroove:
|
||||
case NSImageFrameButton:
|
||||
borderSize = [NSCell sizeForBorderType: NSBezelBorder];
|
||||
break;
|
||||
}
|
||||
|
||||
return NSInsetRect (theRect, borderSize.width, borderSize.height);
|
||||
}
|
||||
|
||||
- (id) copyWithZone: (NSZone *)zone
|
||||
{
|
||||
NSImageCell *c = [super copyWithZone: zone];
|
||||
|
|
|
@ -1041,7 +1041,7 @@ GSSetDragTypes(NSView* obj, NSArray *types)
|
|||
if (options >= 1)
|
||||
{
|
||||
change = superViewFrameSize.width - oldSize.width;
|
||||
changePerOption = floor(change/options);
|
||||
changePerOption = change/options;
|
||||
|
||||
if (autoresizingMask & NSViewWidthSizable)
|
||||
{
|
||||
|
@ -1049,10 +1049,7 @@ GSSetDragTypes(NSView* obj, NSArray *types)
|
|||
|
||||
frame.size.width += changePerOption;
|
||||
if (is_rotated_or_scaled_from_base)
|
||||
{
|
||||
bounds.size.width *= frame.size.width/oldFrameWidth;
|
||||
bounds.size.width = floor(bounds.size.width);
|
||||
}
|
||||
bounds.size.width *= frame.size.width/oldFrameWidth;
|
||||
else
|
||||
bounds.size.width += changePerOption;
|
||||
changedSize = YES;
|
||||
|
@ -1081,7 +1078,7 @@ GSSetDragTypes(NSView* obj, NSArray *types)
|
|||
if (options >= 1)
|
||||
{
|
||||
change = superViewFrameSize.height - oldSize.height;
|
||||
changePerOption = floor(change/options);
|
||||
changePerOption = change/options;
|
||||
|
||||
if (autoresizingMask & NSViewHeightSizable)
|
||||
{
|
||||
|
@ -1089,10 +1086,7 @@ GSSetDragTypes(NSView* obj, NSArray *types)
|
|||
|
||||
frame.size.height += changePerOption;
|
||||
if (is_rotated_or_scaled_from_base)
|
||||
{
|
||||
bounds.size.height *= frame.size.height/oldFrameHeight;
|
||||
bounds.size.height = floor(bounds.size.height);
|
||||
}
|
||||
bounds.size.height *= frame.size.height/oldFrameHeight;
|
||||
else
|
||||
bounds.size.height += changePerOption;
|
||||
changedSize = YES;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue