mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-23 02:10:48 +00:00
More keyed decoding. Button cell now doesn't fill interior.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@18564 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
75dc38c6aa
commit
32e72be592
7 changed files with 193 additions and 67 deletions
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,16 @@
|
|||
2004-02-08 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Headers/Additions/GNUstepGUI/GSDrawFunctions.h: Add two more methods.
|
||||
* Source/GSDrawFunctions.m: Evaluate colour names only ones per
|
||||
method. Corrected count in drawFramePhoto: and drawButton:. Added
|
||||
drawGrayBezel: and drawWhiteBezel:.
|
||||
* Source/NSButtonCell.m: (-drawWithFrame:inView:) use
|
||||
GSDrawFunctions to draw border.
|
||||
* Source/NSTabView.m
|
||||
* Source/NSTabViewItem.m
|
||||
* Source/NSBundleAdditions.m (NSNibConnector)
|
||||
Added keyed decoding.
|
||||
|
||||
2004-02-08 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Source/Function.m
|
||||
|
|
|
@ -36,6 +36,8 @@
|
|||
+ (void) drawButton: (NSRect)border : (NSRect)clip;
|
||||
+ (void) drawDarkBezel: (NSRect)border : (NSRect)clip;
|
||||
+ (void) drawLightBezel: (NSRect) border : (NSRect)clip;
|
||||
+ (void) drawGrayBezel: (NSRect)border : (NSRect)clip;
|
||||
+ (void) drawWhiteBezel: (NSRect) border : (NSRect)clip;
|
||||
+ (void) drawGroove: (NSRect)border : (NSRect)clip;
|
||||
+ (void) drawFramePhoto: (NSRect)border : (NSRect)clip;
|
||||
|
||||
|
|
|
@ -57,21 +57,22 @@
|
|||
NSMinXEdge, NSMaxYEdge,
|
||||
NSMaxXEdge, NSMinYEdge};
|
||||
NSRectEdge dn_sides[] = {NSMaxXEdge, NSMaxYEdge,
|
||||
NSMinXEdge, NSMinYEdge,
|
||||
NSMaxXEdge, NSMaxYEdge};
|
||||
NSColor *colors[] = {[NSColor controlDarkShadowColor],
|
||||
[NSColor controlDarkShadowColor],
|
||||
[NSColor controlLightHighlightColor],
|
||||
[NSColor controlLightHighlightColor],
|
||||
[NSColor controlShadowColor],
|
||||
[NSColor controlShadowColor]};
|
||||
NSMinXEdge, NSMinYEdge,
|
||||
NSMaxXEdge, NSMaxYEdge};
|
||||
// These names are role names not the actual colours
|
||||
NSColor *black = [NSColor controlDarkShadowColor];
|
||||
NSColor *dark = [NSColor controlShadowColor];
|
||||
NSColor *white = [NSColor controlLightHighlightColor];
|
||||
NSColor *colors[] = {black, black, white, white,
|
||||
dark, dark};
|
||||
|
||||
if ([[NSView focusView] isFlipped] == YES)
|
||||
{
|
||||
NSDrawColorTiledRects(border, clip, dn_sides, colors, 8);
|
||||
NSDrawColorTiledRects(border, clip, dn_sides, colors, 6);
|
||||
}
|
||||
else
|
||||
{
|
||||
NSDrawColorTiledRects(border, clip, up_sides, colors, 8);
|
||||
NSDrawColorTiledRects(border, clip, up_sides, colors, 6);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -82,20 +83,19 @@
|
|||
NSMinXEdge, NSMaxYEdge, NSMaxXEdge, NSMinYEdge};
|
||||
NSRectEdge dn_sides[] = {NSMaxXEdge, NSMaxYEdge, NSMinXEdge, NSMinYEdge,
|
||||
NSMinXEdge, NSMinYEdge, NSMaxXEdge, NSMaxYEdge};
|
||||
NSColor *colors[] = {[NSColor controlLightHighlightColor],
|
||||
[NSColor controlLightHighlightColor],
|
||||
[NSColor controlShadowColor],
|
||||
[NSColor controlShadowColor],
|
||||
[NSColor controlDarkShadowColor],
|
||||
[NSColor controlDarkShadowColor],
|
||||
[NSColor controlColor],
|
||||
[NSColor controlColor]};
|
||||
// These names are role names not the actual colours
|
||||
NSColor *black = [NSColor controlDarkShadowColor];
|
||||
NSColor *dark = [NSColor controlShadowColor];
|
||||
NSColor *light = [NSColor controlColor];
|
||||
NSColor *white = [NSColor controlLightHighlightColor];
|
||||
NSColor *colors[] = {white, white, dark, dark,
|
||||
black, black, light, light};
|
||||
|
||||
if ([[NSView focusView] isFlipped] == YES)
|
||||
{
|
||||
NSDrawColorTiledRects(border, clip, dn_sides, colors, 8);
|
||||
|
||||
[[NSColor controlShadowColor] set];
|
||||
[dark set];
|
||||
PSrectfill(NSMinX(border) + 1., NSMinY(border) - 2., 1., 1.);
|
||||
PSrectfill(NSMaxX(border) - 2., NSMaxY(border) + 1., 1., 1.);
|
||||
}
|
||||
|
@ -103,7 +103,7 @@
|
|||
{
|
||||
NSDrawColorTiledRects(border, clip, up_sides, colors, 8);
|
||||
|
||||
[[NSColor controlShadowColor] set];
|
||||
[dark set];
|
||||
PSrectfill(NSMinX(border) + 1., NSMinY(border) + 1., 1., 1.);
|
||||
PSrectfill(NSMaxX(border) - 2., NSMaxY(border) - 2., 1., 1.);
|
||||
}
|
||||
|
@ -116,14 +116,12 @@
|
|||
NSMaxXEdge, NSMinYEdge, NSMinXEdge, NSMaxYEdge};
|
||||
NSRectEdge dn_sides[] = {NSMaxXEdge, NSMaxYEdge, NSMinXEdge, NSMinYEdge,
|
||||
NSMaxXEdge, NSMaxYEdge, NSMinXEdge, NSMinYEdge};
|
||||
NSColor *colors[] = {[NSColor controlLightHighlightColor],
|
||||
[NSColor controlLightHighlightColor],
|
||||
[NSColor controlShadowColor],
|
||||
[NSColor controlShadowColor],
|
||||
[NSColor controlColor],
|
||||
[NSColor controlColor],
|
||||
[NSColor controlShadowColor],
|
||||
[NSColor controlShadowColor]};
|
||||
// These names are role names not the actual colours
|
||||
NSColor *dark = [NSColor controlShadowColor];
|
||||
NSColor *light = [NSColor controlColor];
|
||||
NSColor *white = [NSColor controlLightHighlightColor];
|
||||
NSColor *colors[] = {white, white, dark, dark,
|
||||
light, light, dark, dark};
|
||||
|
||||
if ([[NSView focusView] isFlipped] == YES)
|
||||
{
|
||||
|
@ -135,6 +133,61 @@
|
|||
}
|
||||
}
|
||||
|
||||
/** Draw a white bezel border */
|
||||
+ (void) drawWhiteBezel: (NSRect) border : (NSRect)clip
|
||||
{
|
||||
NSRectEdge up_sides[] = {NSMaxYEdge, NSMaxXEdge, NSMinYEdge, NSMinXEdge,
|
||||
NSMaxYEdge, NSMaxXEdge, NSMinYEdge, NSMinXEdge};
|
||||
NSRectEdge dn_sides[] = {NSMinYEdge, NSMaxXEdge, NSMaxYEdge, NSMinXEdge,
|
||||
NSMinYEdge, NSMaxXEdge, NSMaxYEdge, NSMinXEdge};
|
||||
// These names are role names not the actual colours
|
||||
NSColor *dark = [NSColor controlShadowColor];
|
||||
NSColor *light = [NSColor controlColor];
|
||||
NSColor *white = [NSColor controlLightHighlightColor];
|
||||
NSColor *colors[] = {dark, white, white, dark,
|
||||
dark, light, light, dark};
|
||||
|
||||
if ([[NSView focusView] isFlipped] == YES)
|
||||
{
|
||||
NSDrawColorTiledRects(border, clip, dn_sides, colors, 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
NSDrawColorTiledRects(border, clip, up_sides, colors, 8);
|
||||
}
|
||||
}
|
||||
|
||||
/** Draw a grey bezel border */
|
||||
+ (void) drawGrayBezel: (NSRect) border : (NSRect)clip
|
||||
{
|
||||
NSRectEdge up_sides[] = {NSMaxXEdge, NSMinYEdge, NSMinXEdge, NSMaxYEdge,
|
||||
NSMaxXEdge, NSMinYEdge, NSMinXEdge, NSMaxYEdge};
|
||||
NSRectEdge dn_sides[] = {NSMaxXEdge, NSMaxYEdge, NSMinXEdge, NSMinYEdge,
|
||||
NSMaxXEdge, NSMaxYEdge, NSMinXEdge, NSMinYEdge};
|
||||
// These names are role names not the actual colours
|
||||
NSColor *black = [NSColor controlDarkShadowColor];
|
||||
NSColor *dark = [NSColor controlShadowColor];
|
||||
NSColor *light = [NSColor controlColor];
|
||||
NSColor *white = [NSColor controlLightHighlightColor];
|
||||
NSColor *colors[] = {white, white, dark, dark,
|
||||
light, light, black, black};
|
||||
|
||||
if ([[NSView focusView] isFlipped] == YES)
|
||||
{
|
||||
NSDrawColorTiledRects(border, clip, dn_sides, colors, 8);
|
||||
[dark set];
|
||||
PSrectfill(NSMinX(border) + 1., NSMaxY(border) - 2., 1., 1.);
|
||||
PSrectfill(NSMaxX(border) - 2., NSMinY(border) + 1., 1., 1.);
|
||||
}
|
||||
else
|
||||
{
|
||||
NSDrawColorTiledRects(border, clip, up_sides, colors, 8);
|
||||
[dark set];
|
||||
PSrectfill(NSMinX(border) + 1., NSMinY(border) + 1., 1., 1.);
|
||||
PSrectfill(NSMaxX(border) - 2., NSMaxY(border) - 2., 1., 1.);
|
||||
}
|
||||
}
|
||||
|
||||
/** Draw a groove border */
|
||||
+ (void) drawGroove: (NSRect)border : (NSRect)clip
|
||||
{
|
||||
|
@ -143,14 +196,11 @@
|
|||
NSMaxYEdge, NSMaxXEdge, NSMinYEdge, NSMinXEdge};
|
||||
NSRectEdge dn_sides[] = {NSMinYEdge, NSMaxXEdge, NSMaxYEdge, NSMinXEdge,
|
||||
NSMinYEdge, NSMaxXEdge, NSMaxYEdge, NSMinXEdge};
|
||||
NSColor *colors[] = {[NSColor controlShadowColor],
|
||||
[NSColor controlLightHighlightColor],
|
||||
[NSColor controlLightHighlightColor],
|
||||
[NSColor controlShadowColor],
|
||||
[NSColor controlLightHighlightColor],
|
||||
[NSColor controlShadowColor],
|
||||
[NSColor controlShadowColor],
|
||||
[NSColor controlLightHighlightColor]};
|
||||
// These names are role names not the actual colours
|
||||
NSColor *dark = [NSColor controlShadowColor];
|
||||
NSColor *white = [NSColor controlLightHighlightColor];
|
||||
NSColor *colors[] = {dark, white, white, dark,
|
||||
white, dark, dark, white};
|
||||
|
||||
if ([[NSView focusView] isFlipped] == YES)
|
||||
{
|
||||
|
@ -171,20 +221,19 @@
|
|||
NSRectEdge dn_sides[] = {NSMaxXEdge, NSMaxYEdge,
|
||||
NSMinXEdge, NSMinYEdge,
|
||||
NSMaxXEdge, NSMaxYEdge};
|
||||
NSColor *colors[] = {[NSColor controlShadowColor],
|
||||
[NSColor controlShadowColor],
|
||||
[NSColor controlShadowColor],
|
||||
[NSColor controlShadowColor],
|
||||
[NSColor controlDarkShadowColor],
|
||||
[NSColor controlDarkShadowColor]};
|
||||
// These names are role names not the actual colours
|
||||
NSColor *black = [NSColor controlDarkShadowColor];
|
||||
NSColor *dark = [NSColor controlShadowColor];
|
||||
NSColor *colors[] = {dark, dark, dark, dark,
|
||||
black,black};
|
||||
|
||||
if ([[NSView focusView] isFlipped] == YES)
|
||||
{
|
||||
NSDrawColorTiledRects(border, clip, dn_sides, colors, 8);
|
||||
NSDrawColorTiledRects(border, clip, dn_sides, colors, 6);
|
||||
}
|
||||
else
|
||||
{
|
||||
NSDrawColorTiledRects(border, clip, up_sides, colors, 8);
|
||||
NSDrawColorTiledRects(border, clip, up_sides, colors, 6);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -78,11 +78,20 @@
|
|||
{
|
||||
}
|
||||
|
||||
- (id) initWithCoder: (NSCoder*)aCoder
|
||||
- (id) initWithCoder: (NSCoder*)aDecoder
|
||||
{
|
||||
[aCoder decodeValueOfObjCType: @encode(id) at: &_src];
|
||||
[aCoder decodeValueOfObjCType: @encode(id) at: &_dst];
|
||||
[aCoder decodeValueOfObjCType: @encode(id) at: &_tag];
|
||||
if ([aDecoder allowsKeyedCoding])
|
||||
{
|
||||
ASSIGN(_src, [aDecoder decodeObjectForKey: @"NSSource"]);
|
||||
ASSIGN(_dst, [aDecoder decodeObjectForKey: @"NSDestination"]);
|
||||
ASSIGN(_tag, [aDecoder decodeObjectForKey: @"NSLabel"]);
|
||||
}
|
||||
else
|
||||
{
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_src];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_dst];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_tag];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
#include "AppKit/NSImage.h"
|
||||
#include "AppKit/NSSound.h"
|
||||
#include "AppKit/NSWindow.h"
|
||||
#include "GNUstepGUI/GSDrawFunctions.h"
|
||||
|
||||
@implementation NSButtonCell
|
||||
|
||||
|
@ -619,11 +620,11 @@
|
|||
// FIXME Should check the bezel and gradient style
|
||||
if (_cell.is_highlighted && (_highlightsByMask & NSPushInCellMask))
|
||||
{
|
||||
NSDrawGrayBezel(cellFrame, NSZeroRect);
|
||||
[GSDrawFunctions drawGrayBezel: cellFrame : NSZeroRect];
|
||||
}
|
||||
else
|
||||
{
|
||||
NSDrawButton(cellFrame, NSZeroRect);
|
||||
[GSDrawFunctions drawButton: cellFrame : NSZeroRect];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -728,17 +728,56 @@
|
|||
|
||||
- (id) initWithCoder: (NSCoder*)aDecoder
|
||||
{
|
||||
[super initWithCoder: aDecoder];
|
||||
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_items];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_font];
|
||||
[aDecoder decodeValueOfObjCType: @encode(NSTabViewType) at: &_type];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_draws_background];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_truncated_label];
|
||||
_delegate = [aDecoder decodeObject];
|
||||
[aDecoder decodeValueOfObjCType: "i" at: &_selected_item];
|
||||
_selected = [_items objectAtIndex: _selected_item];
|
||||
self = [super initWithCoder: aDecoder];
|
||||
|
||||
if ([aDecoder allowsKeyedCoding])
|
||||
{
|
||||
if ([aDecoder containsValueForKey: @"NSAllowTruncatedLabels"])
|
||||
{
|
||||
[self setAllowsTruncatedLabels: [aDecoder decodeBoolForKey:
|
||||
@"NSAllowTruncatedLabels"]];
|
||||
}
|
||||
if ([aDecoder containsValueForKey: @"NSDrawsBackground"])
|
||||
{
|
||||
[self setDrawsBackground: [aDecoder decodeBoolForKey:
|
||||
@"NSDrawsBackground"]];
|
||||
}
|
||||
if ([aDecoder containsValueForKey: @"NSFont"])
|
||||
{
|
||||
[self setFont: [aDecoder decodeObjectForKey: @"NSFont"]];
|
||||
}
|
||||
if ([aDecoder containsValueForKey: @"NSTabViewItems"])
|
||||
{
|
||||
NSArray *items = [aDecoder decodeObjectForKey: @"NSTabViewItems"];
|
||||
NSEnumerator *enumerator = [items objectEnumerator];
|
||||
NSTabViewItem *item;
|
||||
|
||||
while ((item = [enumerator nextObject]) != nil)
|
||||
{
|
||||
[self addTabViewItem: item];
|
||||
}
|
||||
}
|
||||
if ([aDecoder containsValueForKey: @"NSSelectedTabViewItem"])
|
||||
{
|
||||
[self selectTabViewItem: [aDecoder decodeObjectForKey:
|
||||
@"NSSelectedTabViewItem"]];
|
||||
}
|
||||
if ([aDecoder containsValueForKey: @"NSTvFlags"])
|
||||
{
|
||||
//int flags = [aDecoder decodeObjectForKey: @"NSTvFlags"]];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_items];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_font];
|
||||
[aDecoder decodeValueOfObjCType: @encode(NSTabViewType) at: &_type];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_draws_background];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_truncated_label];
|
||||
_delegate = [aDecoder decodeObject];
|
||||
[aDecoder decodeValueOfObjCType: "i" at: &_selected_item];
|
||||
_selected = [_items objectAtIndex: _selected_item];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
@end
|
||||
|
|
|
@ -220,13 +220,26 @@
|
|||
|
||||
- (id) initWithCoder: (NSCoder*)aDecoder
|
||||
{
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_ident];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_label];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_view];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_color];
|
||||
[aDecoder decodeValueOfObjCType: @encode(NSTabState) at:&_state];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_first_responder];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_tabview];
|
||||
if ([aDecoder allowsKeyedCoding])
|
||||
{
|
||||
id identifier = [aDecoder decodeObjectForKey: @"NSIdentifier"];
|
||||
|
||||
self = [self initWithIdentifier: identifier];
|
||||
[self setLabel: [aDecoder decodeObjectForKey: @"NSLabel"]];
|
||||
[self setView: [aDecoder decodeObjectForKey: @"NSView"]];
|
||||
[self setColor: [aDecoder decodeObjectForKey: @"NSColor"]];
|
||||
[self _setTabView: [aDecoder decodeObjectForKey: @"NSTabView"]];
|
||||
}
|
||||
else
|
||||
{
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_ident];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_label];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_view];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_color];
|
||||
[aDecoder decodeValueOfObjCType: @encode(NSTabState) at:&_state];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_first_responder];
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_tabview];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue