mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-31 03:00:47 +00:00
NSBrowser header themeing
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30189 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
5767b71934
commit
dcebe1ef37
5 changed files with 73 additions and 3 deletions
|
@ -78,6 +78,9 @@ NSString *GSScrollerVerticalSlot = @"GSScrollerVerticalSlot";
|
|||
NSString *GSTableHeader = @"GSTableHeader";
|
||||
NSString *GSTableCorner = @"GSTableCorner";
|
||||
|
||||
// Browser part names
|
||||
NSString *GSBrowserHeader = @"GSBrowserHeader";
|
||||
|
||||
// Menu part names
|
||||
NSString *GSMenuHorizontalBackground = @"GSMenuHorizontalBackground";
|
||||
NSString *GSMenuVerticalBackground = @"GSMenuVerticalBackground";
|
||||
|
|
|
@ -1435,4 +1435,43 @@ static NSDictionary *titleTextAttributes[3] = {nil, nil, nil};
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
- (void) drawBrowserHeaderCell: (NSCell*)cell
|
||||
withFrame: (NSRect)rect
|
||||
inView: (NSView*)view;
|
||||
{
|
||||
GSDrawTiles *tiles;
|
||||
tiles = [self tilesNamed: GSBrowserHeader state: GSThemeNormalState];
|
||||
if (tiles == nil)
|
||||
{
|
||||
[self drawGrayBezel: rect withClip: NSZeroRect];
|
||||
[cell _drawBackgroundWithFrame: rect inView: view];
|
||||
}
|
||||
else
|
||||
{
|
||||
[self fillRect: rect
|
||||
withTiles: tiles
|
||||
background: [NSColor clearColor]];
|
||||
}
|
||||
}
|
||||
|
||||
- (NSRect) browserHeaderDrawingRectForCell: (NSCell*)cell
|
||||
withFrame: (NSRect)rect
|
||||
{
|
||||
GSDrawTiles *tiles;
|
||||
tiles = [self tilesNamed: GSBrowserHeader state: GSThemeNormalState];
|
||||
if (tiles == nil)
|
||||
{
|
||||
return NSInsetRect(rect, 2, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
// FIXME: We assume the button's top and right padding are the same as
|
||||
// its bottom and left.
|
||||
return NSInsetRect(rect,
|
||||
tiles->contentRect.origin.x,
|
||||
tiles->contentRect.origin.y);
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -206,14 +206,21 @@ static NSTextFieldCell *titleCell;
|
|||
- (NSRect) drawingRectForBounds: (NSRect)theRect
|
||||
{
|
||||
// This adjustment must match the drawn border
|
||||
return NSInsetRect(theRect, 2, 2);
|
||||
return [[GSTheme theme] browserHeaderDrawingRectForCell: self
|
||||
withFrame: theRect];
|
||||
}
|
||||
|
||||
- (void) _drawBorderAndBackgroundWithFrame: (NSRect)cellFrame
|
||||
inView: (NSView*)controlView
|
||||
{
|
||||
[[GSTheme theme] drawGrayBezel: cellFrame withClip: NSZeroRect];
|
||||
[self _drawBackgroundWithFrame: cellFrame inView: controlView];
|
||||
[[GSTheme theme] drawBrowserHeaderCell: self
|
||||
withFrame: cellFrame
|
||||
inView: controlView];
|
||||
}
|
||||
|
||||
- (BOOL) isOpaque
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue