Clear background when transparent flag is set

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/branches/gnustep_testplant_branch@35763 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Marcian Lytwyn 2012-10-29 20:33:47 +00:00
parent 1299ede1d7
commit 68f35290c3

View file

@ -455,7 +455,11 @@
NSColor *color; NSColor *color;
rect = NSIntersectionRect(_bounds, rect); rect = NSIntersectionRect(_bounds, rect);
if (_box_type == NSBoxCustom) if (_transparent)
{
color = [NSColor clearColor];
}
else if (_box_type == NSBoxCustom)
{ {
color = _fill_color; color = _fill_color;
} }
@ -463,6 +467,7 @@
{ {
color = [_window backgroundColor]; color = [_window backgroundColor];
} }
// Fill inside // Fill inside
[color set]; [color set];
NSRectFill(rect); NSRectFill(rect);
@ -471,8 +476,9 @@
switch (_border_type) switch (_border_type)
{ {
case NSNoBorder: case NSNoBorder:
break; break;
case NSLineBorder:
case NSLineBorder:
if (_box_type == NSBoxCustom) if (_box_type == NSBoxCustom)
{ {
[_border_color set]; [_border_color set];
@ -483,13 +489,15 @@
[[NSColor controlDarkShadowColor] set]; [[NSColor controlDarkShadowColor] set];
NSFrameRect(_border_rect); NSFrameRect(_border_rect);
} }
break; break;
case NSBezelBorder: case NSBezelBorder:
[[GSTheme theme] drawDarkBezel: _border_rect withClip: rect]; [[GSTheme theme] drawDarkBezel: _border_rect withClip: rect];
break; break;
case NSGrooveBorder:
[[GSTheme theme] drawGroove: _border_rect withClip: rect]; case NSGrooveBorder:
break; [[GSTheme theme] drawGroove: _border_rect withClip: rect];
break;
} }
// Draw title // Draw title
@ -622,9 +630,13 @@
[self setTitlePosition: titlePosition]; [self setTitlePosition: titlePosition];
} }
if ([aDecoder containsValueForKey: @"NSTransparent"]) if ([aDecoder containsValueForKey: @"NSTransparent"])
{ {
_transparent = [aDecoder decodeBoolForKey: @"NSTransparent"]; _transparent = [aDecoder decodeBoolForKey: @"NSTransparent"];
} }
if ([aDecoder containsValueForKey: @"NSFullyTransparent"])
{
_transparent = [aDecoder decodeBoolForKey: @"NSFullyTransparent"];
}
if ([aDecoder containsValueForKey: @"NSOffsets"]) if ([aDecoder containsValueForKey: @"NSOffsets"])
{ {
[self setContentViewMargins: [aDecoder decodeSizeForKey: @"NSOffsets"]]; [self setContentViewMargins: [aDecoder decodeSizeForKey: @"NSOffsets"]];