Author: mlytwyn
Date: Mon Aug 17 19:05:56 2015
New Revision: 38901
URL: http://svn.gna.org/viewcvs/gnustep?rev=38901&view=rev
Log:
Fix general button margins for linux
Modified:
libs/gui/branches/gnustep_testplant_branch/Source/GSThemeDrawing.m
Modified: libs/gui/branches/gnustep_testplant_branch/Source/GSThemeDrawing.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/gui/branches/gnustep_testplant_branch/Source/GSThemeDrawing.m?rev=38901&r1=38900&r2=38901&view=diff
==============================================================================
--- libs/gui/branches/gnustep_testplant_branch/Source/GSThemeDrawing.m
(original)
+++ libs/gui/branches/gnustep_testplant_branch/Source/GSThemeDrawing.m Mon Aug
17 19:05:56 2015
@@ -122,6 +122,16 @@
}
}
+- (NSRect)insetFrame:(NSRect)frame withMargins:(GSThemeMargins)margins
+{
+ NSRect result = frame;
+ result.origin.x += margins.left;
+ result.origin.y += margins.top;
+ result.size.width -= (margins.left + margins.right);
+ result.size.height -= (margins.top + margins.bottom);
+ return(result);
+}
+
- (void) drawButton: (NSRect)frame
in: (NSCell*)cell
view: (NSView*)view
@@ -166,6 +176,9 @@
tiles = [self tilesNamed: @"NSButton" state: state];
}
+ GSThemeMargins margins = [self buttonMarginsForCell: cell style: style
state: state];
+ NSRect drawFrame = [self insetFrame:frame withMargins:margins];
+
if (tiles == nil)
{
switch (style)
@@ -173,36 +186,36 @@
case NSRoundRectBezelStyle:
case NSTexturedRoundedBezelStyle:
case NSRoundedBezelStyle:
- [self drawRoundBezel: frame withColor: color];
+ [self drawRoundBezel: drawFrame withColor: color];
break;
case NSTexturedSquareBezelStyle:
- frame = NSInsetRect(frame, 0, 1);
+ frame = NSInsetRect(drawFrame, 0, 1);
case NSSmallSquareBezelStyle:
case NSRegularSquareBezelStyle:
case NSShadowlessSquareBezelStyle:
[color set];
- NSRectFill(frame);
+ NSRectFill(drawFrame);
[[NSColor controlShadowColor] set];
- NSFrameRectWithWidth(frame, 1);
+ NSFrameRectWithWidth(drawFrame, 1);
break;
case NSThickSquareBezelStyle:
[color set];
- NSRectFill(frame);
+ NSRectFill(drawFrame);
[[NSColor controlShadowColor] set];
- NSFrameRectWithWidth(frame, 1.5);
+ NSFrameRectWithWidth(drawFrame, 1.5);
break;
case NSThickerSquareBezelStyle:
[color set];
- NSRectFill(frame);
+ NSRectFill(drawFrame);
[[NSColor controlShadowColor] set];
- NSFrameRectWithWidth(frame, 2);
+ NSFrameRectWithWidth(drawFrame, 2);
break;
case NSCircularBezelStyle:
- frame = NSInsetRect(frame, 3, 3);
- [self drawCircularBezel: frame withColor: color];
+ frame = NSInsetRect(drawFrame, 3, 3);
+ [self drawCircularBezel: drawFrame withColor: color];
break;
case NSHelpButtonBezelStyle:
- [self drawCircularBezel: frame withColor: color];
+ [self drawCircularBezel: drawFrame withColor: color];
{
NSDictionary *attributes = [NSDictionary dictionaryWithObject:
[NSFont controlContentFontOfSize: 0]
forKey:
NSFontAttributeName];
@@ -212,8 +225,8 @@
NSRect textRect;
textRect.size = [questionMark size];
- textRect.origin.x = NSMidX(frame) - (textRect.size.width / 2);
- textRect.origin.y = NSMidY(frame) - (textRect.size.height / 2);
+ textRect.origin.x = NSMidX(drawFrame) - (textRect.size.width / 2);
+ textRect.origin.y = NSMidY(drawFrame) - (textRect.size.height /
2);
[questionMark drawInRect: textRect];
}
@@ -225,19 +238,19 @@
break;
default:
[color set];
- NSRectFill(frame);
+ NSRectFill(drawFrame);
if (state == GSThemeNormalState || state == GSThemeHighlightedState)
{
- [self drawButton: frame withClip: NSZeroRect];
+ [self drawButton: drawFrame withClip: NSZeroRect];
}
else if (state == GSThemeSelectedState || state ==
GSThemeSelectedFirstResponderState)
{
- [self drawGrayBezel: frame withClip: NSZeroRect];
+ [self drawGrayBezel: drawFrame withClip: NSZeroRect];
}
else
{
- [self drawButton: frame withClip: NSZeroRect];
+ [self drawButton: drawFrame withClip: NSZeroRect];
}
}
}
@@ -245,7 +258,7 @@
{
/* Use tiles to draw button border with central part filled with color
*/
- [self fillRect: frame
+ [self fillRect: drawFrame
withTiles: tiles
background: color];
}
@@ -257,7 +270,7 @@
{
GSDrawTiles *tiles = nil;
NSString *name = [self nameForElement: cell];
- GSThemeMargins margins;
+ GSThemeMargins margins = { 0 };
if (name == nil)
{
@@ -274,47 +287,92 @@
{
switch (style)
{
- case NSRoundRectBezelStyle:
- case NSTexturedRoundedBezelStyle:
- case NSRoundedBezelStyle:
- margins.left = 5; margins.top = 5; margins.right = 5;
margins.bottom = 5;
- return margins;
- case NSTexturedSquareBezelStyle:
- margins.left = 3; margins.top = 3; margins.right = 3;
margins.bottom = 3;
- return margins;
- case NSSmallSquareBezelStyle:
- case NSRegularSquareBezelStyle:
- case NSShadowlessSquareBezelStyle:
- margins.left = 2; margins.top = 2; margins.right = 2;
margins.bottom = 2;
- return margins;
- case NSThickSquareBezelStyle:
- margins.left = 3; margins.top = 3; margins.right = 3;
margins.bottom = 3;
- return margins;
- case NSThickerSquareBezelStyle:
- margins.left = 4; margins.top = 4; margins.right = 4;
margins.bottom = 4;
- return margins;
- case NSCircularBezelStyle:
- margins.left = 5; margins.top = 5; margins.right = 5;
margins.bottom = 5;
- return margins;
- case NSHelpButtonBezelStyle:
- margins.left = 2; margins.top = 2; margins.right = 2;
margins.bottom = 2;
- return margins;
- case NSDisclosureBezelStyle:
- case NSRoundedDisclosureBezelStyle:
- case NSRecessedBezelStyle:
- // FIXME
- margins.left = 0; margins.top = 0; margins.right = 0;
margins.bottom = 0;
- return margins;
- default:
- margins.left = 2; margins.top = 2; margins.right = 3;
margins.bottom = 3;
- return margins;
- }
+ case NSRoundRectBezelStyle:
+ break;
+
+ case NSTexturedRoundedBezelStyle:
+ {
+ if ([cell controlSize] == NSRegularControlSize)
+ {
+ margins.left = 1; margins.top = 1; margins.right = 1;
margins.bottom = 1;
+ }
+ else if ([cell controlSize] == NSSmallControlSize)
+ {
+ margins.left = 1; margins.top = 1; margins.right = 1;
margins.bottom = 1;
+ }
+ }
+ break;
+
+ case NSRoundedBezelStyle:
+ {
+ if ([cell controlSize] == NSRegularControlSize)
+ {
+ margins.left = 6; margins.top = 4; margins.right = 6;
margins.bottom = 4;
+ }
+ else if ([cell controlSize] == NSSmallControlSize)
+ {
+ margins.left = 4; margins.top = 3; margins.right = 4;
margins.bottom = 3;
+ }
+ }
+ break;
+
+ case NSTexturedSquareBezelStyle:
+ margins.left = 3; margins.top = 1; margins.right = 3;
margins.bottom = 1;
+ break;
+
+ case NSRegularSquareBezelStyle:
+ margins.left = 2; margins.top = 2; margins.right = 2;
margins.bottom = 2;
+ break;
+
+ case NSShadowlessSquareBezelStyle:
+ break;
+
+ case NSThickSquareBezelStyle:
+ margins.left = 3; margins.top = 3; margins.right = 3;
margins.bottom = 3;
+ break;
+
+ case NSThickerSquareBezelStyle:
+ margins.left = 4; margins.top = 4; margins.right = 4;
margins.bottom = 4;
+ break;
+
+ case NSCircularBezelStyle:
+ {
+ if ([cell controlSize] == NSRegularControlSize)
+ {
+ margins.left = 10; margins.top = 9; margins.right = 10;
margins.bottom = 9;
+ }
+ else if ([cell controlSize] == NSSmallControlSize)
+ {
+ margins.left = 8; margins.top = 7; margins.right = 8;
margins.bottom = 7;
+ }
+ else if ([cell controlSize] == NSMiniControlSize)
+ {
+ margins.left = 7; margins.top = 6; margins.right = 7;
margins.bottom = 6;
+ }
+ }
+ break;
+
+ case NSHelpButtonBezelStyle:
+ margins.left = 2; margins.top = 3; margins.right = 2;
margins.bottom = 3;
+ break;
+
+ case NSDisclosureBezelStyle:
+ case NSRoundedDisclosureBezelStyle:
+ case NSRecessedBezelStyle:
+ // FIXME
+ margins.left = 3; margins.top = 3; margins.right = 3;
margins.bottom = 3;
+ break;
+
+ default:
+ margins.left = 3; margins.top = 3; margins.right = 3;
margins.bottom = 3;
+ break;
+ }
}
else
{
margins = [tiles themeMargins];
- return margins;
- }
+ }
+ return margins;
}
- (void) drawFocusFrame: (NSRect) frame view: (NSView*) view
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs