mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-31 08:41:03 +00:00
Added many missing features to NSGeometry
This commit is contained in:
parent
67a42b38ce
commit
19d6aefa47
4 changed files with 190 additions and 17 deletions
|
@ -97,13 +97,13 @@ typedef NSRect *NSRectArray;
|
|||
typedef NSRect *NSRectPointer;
|
||||
#endif
|
||||
|
||||
enum
|
||||
typedef enum
|
||||
{
|
||||
NSMinXEdge = 0,
|
||||
NSMinYEdge = 1,
|
||||
NSMaxXEdge = 2,
|
||||
NSMaxYEdge = 3
|
||||
};
|
||||
} NSRectEdge;
|
||||
/** Sides of a rectangle.
|
||||
<example>
|
||||
{
|
||||
|
@ -113,8 +113,72 @@ enum
|
|||
NSMaxYEdge
|
||||
}
|
||||
</example>
|
||||
*/
|
||||
typedef NSUInteger NSRectEdge;
|
||||
<p>NSRectEdge</p>*/
|
||||
// typedef NSUInteger NSRectEdge;
|
||||
/** A value representing the alignment process
|
||||
<example>
|
||||
{
|
||||
NSAlignMinXInward,
|
||||
NSAlignMinYInward,
|
||||
NSAlignMaxXInward,
|
||||
NSAlignMaxYInward,
|
||||
NSAlignWidthInward,
|
||||
NSAlignHeightInward,
|
||||
NSAlignMinXOutward,
|
||||
NSAlignMinYOutward,
|
||||
NSAlignMaxXOutward,
|
||||
NSAlignMaxYOutward,
|
||||
NSAlignWidthOutward,
|
||||
NSAlignHeightOutward,
|
||||
NSAlignMinXNearest,
|
||||
NSAlignMinYNearest,
|
||||
NSAlignMaxXNearest,
|
||||
NSAlignMaxYNearest,
|
||||
NSAlignWidthNearest,
|
||||
NSAlignHeightNearest,
|
||||
NSAlignRectFlipped,
|
||||
NSAlignAllEdgesInward,
|
||||
NSAlignAllEdgesOutward,
|
||||
NSAlignAllEdgesNearest
|
||||
}
|
||||
</example>
|
||||
<p>NSAlignmentOptions</p>*/
|
||||
#if OS_API_VERSION(MAC_OS_X_VERSION_10_7, GS_API_LATEST)
|
||||
typedef enum
|
||||
{
|
||||
NSAlignMinXInward = 1ULL << 0,
|
||||
NSAlignMinYInward = 1ULL << 1,
|
||||
NSAlignMaxXInward = 1ULL << 2,
|
||||
NSAlignMaxYInward = 1ULL << 3,
|
||||
NSAlignWidthInward = 1ULL << 4,
|
||||
NSAlignHeightInward = 1ULL << 5,
|
||||
NSAlignMinXOutward = 1ULL << 8,
|
||||
NSAlignMinYOutward = 1ULL << 9,
|
||||
NSAlignMaxXOutward = 1ULL << 10,
|
||||
NSAlignMaxYOutward = 1ULL << 11,
|
||||
NSAlignWidthOutward = 1ULL << 12,
|
||||
NSAlignHeightOutward = 1ULL << 13,
|
||||
NSAlignMinXNearest = 1ULL << 16,
|
||||
NSAlignMinYNearest = 1ULL << 17,
|
||||
NSAlignMaxXNearest = 1ULL << 18,
|
||||
NSAlignMaxYNearest = 1ULL << 19,
|
||||
NSAlignWidthNearest = 1ULL << 20,
|
||||
NSAlignHeightNearest = 1ULL << 21,
|
||||
NSAlignRectFlipped = 1ULL << 63,
|
||||
NSAlignAllEdgesInward = NSAlignMinXInward
|
||||
| NSAlignMaxXInward
|
||||
| NSAlignMinYInward
|
||||
| NSAlignMaxYInward,
|
||||
NSAlignAllEdgesOutward = NSAlignMinXOutward
|
||||
| NSAlignMaxXOutward
|
||||
| NSAlignMinYOutward
|
||||
| NSAlignMaxYOutward,
|
||||
NSAlignAllEdgesNearest = NSAlignMinXNearest
|
||||
| NSAlignMaxXNearest
|
||||
| NSAlignMinYNearest
|
||||
| NSAlignMaxYNearest
|
||||
} NSAlignmentOptions;
|
||||
#endif
|
||||
|
||||
/**
|
||||
<example>{
|
||||
|
@ -195,7 +259,7 @@ NSMakeSize(CGFloat w, CGFloat h)
|
|||
|
||||
GS_GEOM_SCOPE NSRect
|
||||
NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h) GS_GEOM_ATTR;
|
||||
|
||||
|
||||
/** Returns an NSRect having point of origin (x, y) and size {w, h}. */
|
||||
GS_GEOM_SCOPE NSRect
|
||||
NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h)
|
||||
|
@ -209,6 +273,68 @@ NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h)
|
|||
return rect;
|
||||
}
|
||||
|
||||
#if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
|
||||
GS_GEOM_SCOPE NSRect
|
||||
NSRectFromCGRect(CGRect rect) GS_GEOM_ATTR;
|
||||
|
||||
/** Return an NSRect from CGRect. **/
|
||||
GS_GEOM_SCOPE NSRect
|
||||
NSRectFromCGRect(CGRect rect)
|
||||
{
|
||||
return (NSRect)rect;
|
||||
}
|
||||
|
||||
GS_GEOM_SCOPE CGRect
|
||||
NSRectToCGRect(NSRect rect) GS_GEOM_ATTR;
|
||||
|
||||
/** Return an CGRect from NSRect. **/
|
||||
GS_GEOM_SCOPE CGRect
|
||||
NSRectToCGRect(NSRect rect)
|
||||
{
|
||||
return (CGRect)rect;
|
||||
}
|
||||
|
||||
GS_GEOM_SCOPE NSPoint
|
||||
NSPointFromCGPoint(CGPoint point) GS_GEOM_ATTR;
|
||||
|
||||
/** Return an NSPoint from CGPoint **/
|
||||
GS_GEOM_SCOPE NSPoint
|
||||
NSPointFromCGPoint(CGPoint point)
|
||||
{
|
||||
return (NSPoint)point;
|
||||
}
|
||||
|
||||
GS_GEOM_SCOPE CGPoint
|
||||
NSPointToCGPoint(NSPoint point) GS_GEOM_ATTR;
|
||||
|
||||
/** Return an CGPoint from NSPoint **/
|
||||
GS_GEOM_SCOPE CGPoint
|
||||
NSPointToCGPoint(NSPoint point)
|
||||
{
|
||||
return (CGPoint)point;
|
||||
}
|
||||
|
||||
GS_GEOM_SCOPE NSSize
|
||||
NSSizeFromCGSize(CGSize size) GS_GEOM_ATTR;
|
||||
|
||||
/** Return an NSSize from CGSize **/
|
||||
GS_GEOM_SCOPE NSSize
|
||||
NSSizeFromCGSize(CGSize size)
|
||||
{
|
||||
return (NSSize)size;
|
||||
}
|
||||
|
||||
GS_GEOM_SCOPE CGSize
|
||||
NSSizeToCGSize(NSSize size) GS_GEOM_ATTR;
|
||||
|
||||
/** Return an CGSize from NSSize **/
|
||||
GS_GEOM_SCOPE CGSize
|
||||
NSSizeToCGSize(NSSize size)
|
||||
{
|
||||
return (CGSize)size;
|
||||
}
|
||||
#endif
|
||||
|
||||
/** Constructs NSEdgeInsets. **/
|
||||
#if OS_API_VERSION(MAC_OS_X_VERSION_10_7, GS_API_LATEST)
|
||||
GS_GEOM_SCOPE NSEdgeInsets
|
||||
|
@ -382,6 +508,12 @@ NSDivideRect(NSRect aRect,
|
|||
GS_EXPORT NSRect
|
||||
NSIntegralRect(NSRect aRect);
|
||||
|
||||
/** Returns a rectangle obtained by expanding aRect minimally
|
||||
* so that all four of its defining components are integers,
|
||||
* using the specified alignment options to control rounding behavior. */
|
||||
GS_EXPORT NSRect
|
||||
NSIntegralRectWithOptions(NSRect aRect, NSAlignmentOptions options);
|
||||
|
||||
/** Compute a Third Rectangle from Two Rectangles... **/
|
||||
|
||||
GS_GEOM_SCOPE NSRect
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue