2003-07-31 23:52:10 +00:00
|
|
|
/*
|
|
|
|
NSImageCell.h
|
|
|
|
|
|
|
|
The cell class for NSImage
|
|
|
|
|
|
|
|
Copyright (C) 1999 Free Software Foundation, Inc.
|
|
|
|
|
|
|
|
Author: Jonathan Gapen <jagapen@chem.wisc.edu>
|
|
|
|
Date: 1999
|
|
|
|
|
|
|
|
This file is part of the GNUstep GUI Library.
|
|
|
|
|
|
|
|
This library is free software; you can redistribute it and/or
|
2007-10-29 21:16:17 +00:00
|
|
|
modify it under the terms of the GNU Lesser General Public
|
2003-07-31 23:52:10 +00:00
|
|
|
License as published by the Free Software Foundation; either
|
2007-10-29 21:16:17 +00:00
|
|
|
version 3 of the License, or (at your option) any later version.
|
|
|
|
|
2003-07-31 23:52:10 +00:00
|
|
|
This library is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
2007-10-29 21:16:17 +00:00
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
Lesser General Public License for more details.
|
2003-07-31 23:52:10 +00:00
|
|
|
|
2007-10-29 21:16:17 +00:00
|
|
|
You should have received a copy of the GNU Lesser General Public
|
2003-07-31 23:52:10 +00:00
|
|
|
License along with this library; see the file COPYING.LIB.
|
2007-10-29 21:16:17 +00:00
|
|
|
If not, see <http://www.gnu.org/licenses/> or write to the
|
|
|
|
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
2006-11-06 13:58:37 +00:00
|
|
|
Boston, MA 02110-1301, USA.
|
2003-07-31 23:52:10 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _GNUstep_H_NSImageCell
|
|
|
|
#define _GNUstep_H_NSImageCell
|
2006-11-06 13:58:37 +00:00
|
|
|
#import <GNUstepBase/GSVersionMacros.h>
|
2003-07-31 23:52:10 +00:00
|
|
|
|
|
|
|
#include <AppKit/NSCell.h>
|
|
|
|
|
2008-03-01 12:34:32 +00:00
|
|
|
/**
|
|
|
|
* <p>Enumeration of the ways that you can display an image in an
|
|
|
|
* NSImageCell. The available ones are:</p>
|
|
|
|
* <p><code>NSScaleNone</code>: The image is always displayed with
|
|
|
|
* its natural size. If it's bigger than the cell size, it is
|
|
|
|
* cropped.</p>
|
|
|
|
* <p><code>NSScaleProportionally</code>: If the image is bigger
|
|
|
|
* than the cell size, it is displayed in its natural size. If it
|
|
|
|
* is smaller than the cell size, it is resized down proportionally
|
|
|
|
* to fit the cell size.</p>
|
|
|
|
* <p><code>NSScaleToFit</code>: The image is always resized (up
|
|
|
|
* or down) to fit exactly in the cell size.</p>
|
|
|
|
*/
|
2003-07-31 23:52:10 +00:00
|
|
|
typedef enum {
|
2008-03-01 12:34:32 +00:00
|
|
|
NSScaleProportionally = 0,
|
|
|
|
NSScaleToFit,
|
|
|
|
NSScaleNone
|
2003-07-31 23:52:10 +00:00
|
|
|
} NSImageScaling;
|
|
|
|
|
2008-03-01 12:34:32 +00:00
|
|
|
/**
|
|
|
|
* <p>Enumeration of the ways that you can align an image inside an
|
|
|
|
* NSImageCell when the image is not taking up all the space inside
|
|
|
|
* the cell (for example, because you are using NSScaleNone or
|
|
|
|
* NSScaleProportionally and the cell size is bigger than the natural
|
|
|
|
* image size). The available ones are: <code>NSImageAlignCenter,
|
|
|
|
* NSImageAlignTop, NSImageAlignTopLeft, NSImageAlignTopRight,
|
|
|
|
* NSImageAlignLeft, NSImageAlignBottom, NSImageAlignBottomLeft,
|
|
|
|
* NSImageAlignBottomRight, NSImageAlignRight</code>.</p>
|
|
|
|
*/
|
2003-07-31 23:52:10 +00:00
|
|
|
typedef enum {
|
|
|
|
NSImageAlignCenter = 0,
|
|
|
|
NSImageAlignTop,
|
|
|
|
NSImageAlignTopLeft,
|
|
|
|
NSImageAlignTopRight,
|
|
|
|
NSImageAlignLeft,
|
|
|
|
NSImageAlignBottom,
|
|
|
|
NSImageAlignBottomLeft,
|
|
|
|
NSImageAlignBottomRight,
|
|
|
|
NSImageAlignRight
|
|
|
|
} NSImageAlignment;
|
|
|
|
|
2008-03-01 12:34:32 +00:00
|
|
|
/**
|
|
|
|
* <p>Enumeration of the types of frame that can be used in an
|
|
|
|
* NSImageCell. The available ones are: <code>NSImageFrameNone,
|
|
|
|
* NSImageFramePhoto, NSImageFrameGrayBezel, NSImageFrameGroove,
|
|
|
|
* NSImageFrameButton</code>.</p>
|
|
|
|
*/
|
2003-07-31 23:52:10 +00:00
|
|
|
typedef enum {
|
|
|
|
NSImageFrameNone = 0,
|
|
|
|
NSImageFramePhoto,
|
|
|
|
NSImageFrameGrayBezel,
|
|
|
|
NSImageFrameGroove,
|
|
|
|
NSImageFrameButton
|
|
|
|
} NSImageFrameStyle;
|
|
|
|
|
2008-03-01 12:34:32 +00:00
|
|
|
/**
|
|
|
|
* <p>An NSImageCell is a cell that can display a single image. It
|
|
|
|
* is normally associated with an NSImageView control; but you can
|
|
|
|
* use it as a building block in your own controls.</p>
|
|
|
|
*
|
|
|
|
* <p>The image to display is set using the -setImage: method
|
|
|
|
* which is inherited from the superclass.</p>
|
|
|
|
*
|
|
|
|
* <p>The -setImageAlignment: and -setImageScaling: methods can be
|
|
|
|
* used to control how the image is drawn inside a rectangle which is
|
|
|
|
* larger or smaller than the image size; the image might need to be
|
|
|
|
* scaled, cropped or aligned.</p>
|
|
|
|
*
|
|
|
|
* <p>The -setImageFrameStyle: method can be used to control if the
|
|
|
|
* cell should display a frame border, and which one.</p>
|
|
|
|
*/
|
2003-07-31 23:52:10 +00:00
|
|
|
@interface NSImageCell : NSCell
|
|
|
|
{
|
|
|
|
NSImageAlignment _imageAlignment;
|
|
|
|
NSImageFrameStyle _frameStyle;
|
|
|
|
NSImageScaling _imageScaling;
|
|
|
|
NSSize _original_image_size;
|
|
|
|
}
|
|
|
|
|
2008-03-01 12:34:32 +00:00
|
|
|
/**
|
|
|
|
* Returns the alignment used when displaying the image inside
|
|
|
|
* a cell that is bigger than the image, and NSScaleToFit has
|
|
|
|
* not been selected.
|
|
|
|
*/
|
2003-07-31 23:52:10 +00:00
|
|
|
- (NSImageAlignment) imageAlignment;
|
2008-03-01 12:34:32 +00:00
|
|
|
/**
|
|
|
|
* Sets the alignment used when displaying the image inside a cell
|
|
|
|
* that is bigger than the image, and NSScaleToFit has not been
|
|
|
|
* selected.
|
|
|
|
*/
|
2003-07-31 23:52:10 +00:00
|
|
|
- (void) setImageAlignment: (NSImageAlignment)anAlignment;
|
2008-03-01 12:34:32 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the type of image scaling used on the image when the
|
|
|
|
* image natural size and the cell size are different.
|
|
|
|
*/
|
2003-07-31 23:52:10 +00:00
|
|
|
- (NSImageScaling) imageScaling;
|
2008-03-01 12:34:32 +00:00
|
|
|
/**
|
|
|
|
* Sets the type of image scaling used on the image when the image
|
|
|
|
* natural size and the cell size are different.
|
|
|
|
*/
|
2003-07-31 23:52:10 +00:00
|
|
|
- (void) setImageScaling: (NSImageScaling)scaling;
|
|
|
|
|
2008-03-01 12:34:32 +00:00
|
|
|
/**
|
|
|
|
* Returns the style used to draw the frame around the image.
|
|
|
|
*/
|
2003-07-31 23:52:10 +00:00
|
|
|
- (NSImageFrameStyle) imageFrameStyle;
|
2008-03-01 12:34:32 +00:00
|
|
|
/**
|
|
|
|
* Sets the style used to draw the frame around the image.
|
|
|
|
*/
|
2003-07-31 23:52:10 +00:00
|
|
|
- (void) setImageFrameStyle: (NSImageFrameStyle)aFrameStyle;
|
|
|
|
|
|
|
|
@end
|
|
|
|
|
|
|
|
#endif // _GNUstep_H_NSImageCell
|