/[gnustep]/gnustep/core/gui/Source/NSImageCell.m
ViewVC logotype

Diff of /gnustep/core/gui/Source/NSImageCell.m

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.21 by FredKiefer, Wed Feb 11 00:01:20 2004 UTC revision 1.22 by alexm, Sun Jan 23 23:45:20 2005 UTC
# Line 226  scaleProportionally(NSSize imageSize, NS Line 226  scaleProportionally(NSSize imageSize, NS
226        case NSScaleProportionally:        case NSScaleProportionally:
227          {          {
228            NSDebugLLog(@"NSImageCell", @"NSScaleProportionally");            NSDebugLLog(@"NSImageCell", @"NSScaleProportionally");
229            [_cell_image setScalesWhenResized:YES];            imageSize = scaleProportionally ([_cell_image size], cellFrame);
           [_cell_image setSize: scaleProportionally (_original_image_size,  
                                                      cellFrame)];  
230            break;            break;
231          }          }
232        case NSScaleToFit:        case NSScaleToFit:
233          {          {
234            NSDebugLLog(@"NSImageCell", @"NSScaleToFit");            NSDebugLLog(@"NSImageCell", @"NSScaleToFit");
235            [_cell_image setScalesWhenResized:YES];            imageSize = cellFrame.size;
           [_cell_image setSize: cellFrame.size];  
236            break;            break;
237          }          }
238          default:
239        case NSScaleNone:        case NSScaleNone:
240          {          {
241            NSDebugLLog(@"NSImageCell", @"NSScaleNone");            NSDebugLLog(@"NSImageCell", @"NSScaleNone");
242            [_cell_image setScalesWhenResized:NO];            imageSize = [_cell_image size];
           // don't let the image size overrun the space available  
           if (_original_image_size.width > cellFrame.size.width  
             || _original_image_size.height > cellFrame.size.height)  
             [_cell_image setSize: cellFrame.size];  
           else  
             [_cell_image setSize: _original_image_size];  
243            break;            break;
244          }          }
245      }      }
246    
   imageSize = [_cell_image size];  
   
247    switch (_imageAlignment)    switch (_imageAlignment)
248      {      {
249          default:
250        case NSImageAlignLeft:        case NSImageAlignLeft:
251          position.x = xLeftInRect(imageSize, cellFrame);          position.x = xLeftInRect(imageSize, cellFrame);
252          position.y = yCenterInRect(imageSize, cellFrame, is_flipped);          position.y = yCenterInRect(imageSize, cellFrame, is_flipped);
# Line 299  scaleProportionally(NSSize imageSize, NS Line 290  scaleProportionally(NSSize imageSize, NS
290      position.y += imageSize.height;      position.y += imageSize.height;
291    
292    // draw!    // draw!
293    [_cell_image compositeToPoint: position operation: NSCompositeSourceOver];    /* TODO: Clean this up when bug #11712 is fixed.  */
294      if (NSEqualSizes(imageSize, [_cell_image size]))
295        [_cell_image compositeToPoint: position operation: NSCompositeSourceOver];
296      else
297        {
298          BOOL wasScalable = [_cell_image scalesWhenResized];
299          [_cell_image setScalesWhenResized: YES];
300          [_cell_image drawRepresentation:
301              [_cell_image bestRepresentationForDevice: nil]
302            inRect:
303              NSMakeRect(position.x, position.y, imageSize.width,
304                         imageSize.height)];
305          [_cell_image setScalesWhenResized: wasScalable];
306        }
307    
308    if (_cell.shows_first_responder)    if (_cell.shows_first_responder)
309      NSDottedFrameRect(cellFrame);      NSDottedFrameRect(cellFrame);

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26