Hi Folks,

I've run into a case where an image I am creating does not scale with its 
parent window.  Some background - I am trying to create and application to 
process data stored within a file - much like any image data with a header.  
However, I am not opening anything with a standard image format.

I have a selector panel than selected the kind of data I am reading, and lets 
me select the file.  Based on the header information in that file, I create a 
window, view, image, image representation with the appropriate parameters, and 
I can already create the window and draw the contents of my file to it.  It 
does this initial drawing properly.

The problem is, when I grab the edge of the window to resize it, the image 
that's drawn to it does not reisze with the parent window.  It maintains its 
original size, and stays centered in the window view.

My initialization code for the GUI elements of that window is below.  Is there 
a flag I am missing somewhere in this, or do I need to handle view and image 
resize updates in another routine ?

Thanks all.

vinai

----------------------------------------------------------------------
    NSRect tempRect = NSMakeRect (90.0, 90.0, [self imageSize].width,
                                              [self imageSize].height);

    if (destImageRep == nil)
    {
        #ifdef DEBUG
            GeneralMessage ("getting image representation");
        #endif

        destImageRep = [[[NSBitmapImageRep alloc]
                        initWithBitmapDataPlanes:(unsigned char **) 
onScreenDataPointer
                                      pixelsWide:[self imageWidth]
                                      pixelsHigh:[self imageHeight]
                                   bitsPerSample:(8 * sizeof (DisplayDataType))
                                 samplesPerPixel:1
                                        hasAlpha:NO
                                        isPlanar:NO
                                  colorSpaceName:NSCalibratedWhiteColorSpace
                                     bytesPerRow:([self imageWidth] *
                                                  sizeof (DisplayDataType))
                                    bitsPerPixel:(8 * sizeof (DisplayDataType))]
                        autorelease];
    }

    myView = [[NSImageView alloc] initWithFrame: tempRect];

    [myView setAutoresizesSubviews: YES];

    [myView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];

    myImage = [[[NSImage alloc] initWithSize:[myView bounds].size] autorelease];

    [myImage setScalesWhenResized: YES];

    [myImage setSize: [myView bounds].size];

    [myImage addRepresentation: destImageRep];

    [myView setImage: myImage];

    /* Create a window */
    if ( myWindow == nil ) /* if not already created */
    {
        #ifdef DEBUG
            GeneralMessage ("Creating window ...");
        #endif

        myWindow  = [[NSWindow alloc]
                     initWithContentRect:tempRect
                               styleMask:NSClosableWindowMask |
                                         NSTitledWindowMask |
                                         NSMiniaturizableWindowMask |
                                         NSResizableWindowMask |
                                         NSTexturedBackgroundWindowMask
                                 backing:NSBackingStoreBuffered
                                   defer:false];
    }

    [myWindow setContentAspectRatio:   [self imageSize]];
    [myWindow setContentMinSize:       [self imageSize]];
    [myWindow setContentView:           myView];
    [myWindow setContentSize:          [self imageSize]];

    [myWindow makeKeyAndOrderFront: nil];



      
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to