| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008, 2010, 2011, 2012 Apple Inc. All Rights Reserved. | 2 * Copyright (C) 2008, 2010, 2011, 2012 Apple Inc. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 // Set the control size based off the rectangle we're painting into. | 258 // Set the control size based off the rectangle we're painting into. |
| 259 setControlSize(checkboxCell, checkboxSizes(), zoomedRect.size(), zoomFactor)
; | 259 setControlSize(checkboxCell, checkboxSizes(), zoomedRect.size(), zoomFactor)
; |
| 260 | 260 |
| 261 // Update the various states we respond to. | 261 // Update the various states we respond to. |
| 262 updateStates(checkboxCell, states); | 262 updateStates(checkboxCell, states); |
| 263 | 263 |
| 264 return checkboxCell; | 264 return checkboxCell; |
| 265 } | 265 } |
| 266 | 266 |
| 267 // FIXME: Share more code with radio buttons. | 267 // FIXME: Share more code with radio buttons. |
| 268 static void paintCheckbox(ControlStates states, GraphicsContext* context, const
IntRect& zoomedRect, float zoomFactor, ScrollableArea* scrollableArea) | 268 static void paintCheckbox(ControlStates states, GraphicsContext& context, const
IntRect& zoomedRect, float zoomFactor, ScrollableArea* scrollableArea) |
| 269 { | 269 { |
| 270 BEGIN_BLOCK_OBJC_EXCEPTIONS | 270 BEGIN_BLOCK_OBJC_EXCEPTIONS |
| 271 | 271 |
| 272 // Determine the width and height needed for the control and prepare the cel
l for painting. | 272 // Determine the width and height needed for the control and prepare the cel
l for painting. |
| 273 NSButtonCell *checkboxCell = checkbox(states, zoomedRect, zoomFactor); | 273 NSButtonCell *checkboxCell = checkbox(states, zoomedRect, zoomFactor); |
| 274 GraphicsContextStateSaver stateSaver(*context); | 274 GraphicsContextStateSaver stateSaver(context); |
| 275 | 275 |
| 276 NSControlSize controlSize = [checkboxCell controlSize]; | 276 NSControlSize controlSize = [checkboxCell controlSize]; |
| 277 IntSize zoomedSize = checkboxSizes()[controlSize]; | 277 IntSize zoomedSize = checkboxSizes()[controlSize]; |
| 278 zoomedSize.setWidth(zoomedSize.width() * zoomFactor); | 278 zoomedSize.setWidth(zoomedSize.width() * zoomFactor); |
| 279 zoomedSize.setHeight(zoomedSize.height() * zoomFactor); | 279 zoomedSize.setHeight(zoomedSize.height() * zoomFactor); |
| 280 IntRect inflatedRect = ThemeMac::inflateRect(zoomedRect, zoomedSize, checkbo
xMargins(controlSize), zoomFactor); | 280 IntRect inflatedRect = ThemeMac::inflateRect(zoomedRect, zoomedSize, checkbo
xMargins(controlSize), zoomFactor); |
| 281 | 281 |
| 282 if (zoomFactor != 1.0f) { | 282 if (zoomFactor != 1.0f) { |
| 283 inflatedRect.setWidth(inflatedRect.width() / zoomFactor); | 283 inflatedRect.setWidth(inflatedRect.width() / zoomFactor); |
| 284 inflatedRect.setHeight(inflatedRect.height() / zoomFactor); | 284 inflatedRect.setHeight(inflatedRect.height() / zoomFactor); |
| 285 context->translate(inflatedRect.x(), inflatedRect.y()); | 285 context.translate(inflatedRect.x(), inflatedRect.y()); |
| 286 context->scale(zoomFactor, zoomFactor); | 286 context.scale(zoomFactor, zoomFactor); |
| 287 context->translate(-inflatedRect.x(), -inflatedRect.y()); | 287 context.translate(-inflatedRect.x(), -inflatedRect.y()); |
| 288 } | 288 } |
| 289 | 289 |
| 290 LocalCurrentGraphicsContext localContext(context, ThemeMac::inflateRectForFo
cusRing(inflatedRect)); | 290 LocalCurrentGraphicsContext localContext(context, ThemeMac::inflateRectForFo
cusRing(inflatedRect)); |
| 291 NSView* view = ensuredView(scrollableArea); | 291 NSView* view = ensuredView(scrollableArea); |
| 292 [checkboxCell drawWithFrame:NSRect(inflatedRect) inView:view]; | 292 [checkboxCell drawWithFrame:NSRect(inflatedRect) inView:view]; |
| 293 if (!ThemeMac::drawWithFrameDrawsFocusRing() && states & FocusControlState) | 293 if (!ThemeMac::drawWithFrameDrawsFocusRing() && states & FocusControlState) |
| 294 [checkboxCell cr_drawFocusRingWithFrame:NSRect(inflatedRect) inView:view
]; | 294 [checkboxCell cr_drawFocusRingWithFrame:NSRect(inflatedRect) inView:view
]; |
| 295 [checkboxCell setControlView:nil]; | 295 [checkboxCell setControlView:nil]; |
| 296 | 296 |
| 297 END_BLOCK_OBJC_EXCEPTIONS | 297 END_BLOCK_OBJC_EXCEPTIONS |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 340 setControlSize(radioCell, radioSizes(), zoomedRect.size(), zoomFactor); | 340 setControlSize(radioCell, radioSizes(), zoomedRect.size(), zoomFactor); |
| 341 | 341 |
| 342 // Update the various states we respond to. | 342 // Update the various states we respond to. |
| 343 // Cocoa draws NSMixedState NSRadioButton as NSOnState so we don't want that
. | 343 // Cocoa draws NSMixedState NSRadioButton as NSOnState so we don't want that
. |
| 344 states &= ~IndeterminateControlState; | 344 states &= ~IndeterminateControlState; |
| 345 updateStates(radioCell, states); | 345 updateStates(radioCell, states); |
| 346 | 346 |
| 347 return radioCell; | 347 return radioCell; |
| 348 } | 348 } |
| 349 | 349 |
| 350 static void paintRadio(ControlStates states, GraphicsContext* context, const Int
Rect& zoomedRect, float zoomFactor, ScrollableArea* scrollableArea) | 350 static void paintRadio(ControlStates states, GraphicsContext& context, const Int
Rect& zoomedRect, float zoomFactor, ScrollableArea* scrollableArea) |
| 351 { | 351 { |
| 352 // Determine the width and height needed for the control and prepare the cel
l for painting. | 352 // Determine the width and height needed for the control and prepare the cel
l for painting. |
| 353 NSButtonCell *radioCell = radio(states, zoomedRect, zoomFactor); | 353 NSButtonCell *radioCell = radio(states, zoomedRect, zoomFactor); |
| 354 GraphicsContextStateSaver stateSaver(*context); | 354 GraphicsContextStateSaver stateSaver(context); |
| 355 | 355 |
| 356 NSControlSize controlSize = [radioCell controlSize]; | 356 NSControlSize controlSize = [radioCell controlSize]; |
| 357 IntSize zoomedSize = radioSizes()[controlSize]; | 357 IntSize zoomedSize = radioSizes()[controlSize]; |
| 358 zoomedSize.setWidth(zoomedSize.width() * zoomFactor); | 358 zoomedSize.setWidth(zoomedSize.width() * zoomFactor); |
| 359 zoomedSize.setHeight(zoomedSize.height() * zoomFactor); | 359 zoomedSize.setHeight(zoomedSize.height() * zoomFactor); |
| 360 IntRect inflatedRect = ThemeMac::inflateRect(zoomedRect, zoomedSize, radioMa
rgins(controlSize), zoomFactor); | 360 IntRect inflatedRect = ThemeMac::inflateRect(zoomedRect, zoomedSize, radioMa
rgins(controlSize), zoomFactor); |
| 361 | 361 |
| 362 if (zoomFactor != 1.0f) { | 362 if (zoomFactor != 1.0f) { |
| 363 inflatedRect.setWidth(inflatedRect.width() / zoomFactor); | 363 inflatedRect.setWidth(inflatedRect.width() / zoomFactor); |
| 364 inflatedRect.setHeight(inflatedRect.height() / zoomFactor); | 364 inflatedRect.setHeight(inflatedRect.height() / zoomFactor); |
| 365 context->translate(inflatedRect.x(), inflatedRect.y()); | 365 context.translate(inflatedRect.x(), inflatedRect.y()); |
| 366 context->scale(zoomFactor, zoomFactor); | 366 context.scale(zoomFactor, zoomFactor); |
| 367 context->translate(-inflatedRect.x(), -inflatedRect.y()); | 367 context.translate(-inflatedRect.x(), -inflatedRect.y()); |
| 368 } | 368 } |
| 369 | 369 |
| 370 LocalCurrentGraphicsContext localContext(context, ThemeMac::inflateRectForFo
cusRing(inflatedRect)); | 370 LocalCurrentGraphicsContext localContext(context, ThemeMac::inflateRectForFo
cusRing(inflatedRect)); |
| 371 BEGIN_BLOCK_OBJC_EXCEPTIONS | 371 BEGIN_BLOCK_OBJC_EXCEPTIONS |
| 372 NSView* view = ensuredView(scrollableArea); | 372 NSView* view = ensuredView(scrollableArea); |
| 373 [radioCell drawWithFrame:NSRect(inflatedRect) inView:view]; | 373 [radioCell drawWithFrame:NSRect(inflatedRect) inView:view]; |
| 374 if (!ThemeMac::drawWithFrameDrawsFocusRing() && states & FocusControlState) | 374 if (!ThemeMac::drawWithFrameDrawsFocusRing() && states & FocusControlState) |
| 375 [radioCell cr_drawFocusRingWithFrame:NSRect(inflatedRect) inView:view]; | 375 [radioCell cr_drawFocusRingWithFrame:NSRect(inflatedRect) inView:view]; |
| 376 [radioCell setControlView:nil]; | 376 [radioCell setControlView:nil]; |
| 377 END_BLOCK_OBJC_EXCEPTIONS | 377 END_BLOCK_OBJC_EXCEPTIONS |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 419 static NSButtonCell *cell = nil; | 419 static NSButtonCell *cell = nil; |
| 420 if (!cell) { | 420 if (!cell) { |
| 421 cell = [[NSButtonCell alloc] init]; | 421 cell = [[NSButtonCell alloc] init]; |
| 422 [cell setTitle:nil]; | 422 [cell setTitle:nil]; |
| 423 [cell setButtonType:NSMomentaryPushInButton]; | 423 [cell setButtonType:NSMomentaryPushInButton]; |
| 424 } | 424 } |
| 425 setUpButtonCell(cell, part, states, zoomedRect, zoomFactor); | 425 setUpButtonCell(cell, part, states, zoomedRect, zoomFactor); |
| 426 return cell; | 426 return cell; |
| 427 } | 427 } |
| 428 | 428 |
| 429 static void paintButton(ControlPart part, ControlStates states, GraphicsContext*
context, const IntRect& zoomedRect, float zoomFactor, ScrollableArea* scrollabl
eArea) | 429 static void paintButton(ControlPart part, ControlStates states, GraphicsContext&
context, const IntRect& zoomedRect, float zoomFactor, ScrollableArea* scrollabl
eArea) |
| 430 { | 430 { |
| 431 BEGIN_BLOCK_OBJC_EXCEPTIONS | 431 BEGIN_BLOCK_OBJC_EXCEPTIONS |
| 432 | 432 |
| 433 // Determine the width and height needed for the control and prepare the cel
l for painting. | 433 // Determine the width and height needed for the control and prepare the cel
l for painting. |
| 434 NSButtonCell *buttonCell = button(part, states, zoomedRect, zoomFactor); | 434 NSButtonCell *buttonCell = button(part, states, zoomedRect, zoomFactor); |
| 435 GraphicsContextStateSaver stateSaver(*context); | 435 GraphicsContextStateSaver stateSaver(context); |
| 436 | 436 |
| 437 NSControlSize controlSize = [buttonCell controlSize]; | 437 NSControlSize controlSize = [buttonCell controlSize]; |
| 438 IntSize zoomedSize = buttonSizes()[controlSize]; | 438 IntSize zoomedSize = buttonSizes()[controlSize]; |
| 439 zoomedSize.setWidth(zoomedRect.width()); // Buttons don't ever constrain wid
th, so the zoomed width can just be honored. | 439 zoomedSize.setWidth(zoomedRect.width()); // Buttons don't ever constrain wid
th, so the zoomed width can just be honored. |
| 440 zoomedSize.setHeight(zoomedSize.height() * zoomFactor); | 440 zoomedSize.setHeight(zoomedSize.height() * zoomFactor); |
| 441 IntRect inflatedRect = zoomedRect; | 441 IntRect inflatedRect = zoomedRect; |
| 442 if ([buttonCell bezelStyle] == NSRoundedBezelStyle) { | 442 if ([buttonCell bezelStyle] == NSRoundedBezelStyle) { |
| 443 // Center the button within the available space. | 443 // Center the button within the available space. |
| 444 if (inflatedRect.height() > zoomedSize.height()) { | 444 if (inflatedRect.height() > zoomedSize.height()) { |
| 445 inflatedRect.setY(inflatedRect.y() + (inflatedRect.height() - zoomed
Size.height()) / 2); | 445 inflatedRect.setY(inflatedRect.y() + (inflatedRect.height() - zoomed
Size.height()) / 2); |
| 446 inflatedRect.setHeight(zoomedSize.height()); | 446 inflatedRect.setHeight(zoomedSize.height()); |
| 447 } | 447 } |
| 448 | 448 |
| 449 // Now inflate it to account for the shadow. | 449 // Now inflate it to account for the shadow. |
| 450 inflatedRect = ThemeMac::inflateRect(inflatedRect, zoomedSize, buttonMar
gins(controlSize), zoomFactor); | 450 inflatedRect = ThemeMac::inflateRect(inflatedRect, zoomedSize, buttonMar
gins(controlSize), zoomFactor); |
| 451 | 451 |
| 452 if (zoomFactor != 1.0f) { | 452 if (zoomFactor != 1.0f) { |
| 453 inflatedRect.setWidth(inflatedRect.width() / zoomFactor); | 453 inflatedRect.setWidth(inflatedRect.width() / zoomFactor); |
| 454 inflatedRect.setHeight(inflatedRect.height() / zoomFactor); | 454 inflatedRect.setHeight(inflatedRect.height() / zoomFactor); |
| 455 context->translate(inflatedRect.x(), inflatedRect.y()); | 455 context.translate(inflatedRect.x(), inflatedRect.y()); |
| 456 context->scale(zoomFactor, zoomFactor); | 456 context.scale(zoomFactor, zoomFactor); |
| 457 context->translate(-inflatedRect.x(), -inflatedRect.y()); | 457 context.translate(-inflatedRect.x(), -inflatedRect.y()); |
| 458 } | 458 } |
| 459 } | 459 } |
| 460 | 460 |
| 461 LocalCurrentGraphicsContext localContext(context, ThemeMac::inflateRectForFo
cusRing(inflatedRect)); | 461 LocalCurrentGraphicsContext localContext(context, ThemeMac::inflateRectForFo
cusRing(inflatedRect)); |
| 462 NSView* view = ensuredView(scrollableArea); | 462 NSView* view = ensuredView(scrollableArea); |
| 463 | 463 |
| 464 [buttonCell drawWithFrame:NSRect(inflatedRect) inView:view]; | 464 [buttonCell drawWithFrame:NSRect(inflatedRect) inView:view]; |
| 465 if (!ThemeMac::drawWithFrameDrawsFocusRing() && states & FocusControlState) | 465 if (!ThemeMac::drawWithFrameDrawsFocusRing() && states & FocusControlState) |
| 466 [buttonCell cr_drawFocusRingWithFrame:NSRect(inflatedRect) inView:view]; | 466 [buttonCell cr_drawFocusRingWithFrame:NSRect(inflatedRect) inView:view]; |
| 467 [buttonCell setControlView:nil]; | 467 [buttonCell setControlView:nil]; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 482 static NSControlSize stepperControlSizeForFont(const FontDescription& fontDescri
ption) | 482 static NSControlSize stepperControlSizeForFont(const FontDescription& fontDescri
ption) |
| 483 { | 483 { |
| 484 int fontSize = fontDescription.computedPixelSize(); | 484 int fontSize = fontDescription.computedPixelSize(); |
| 485 if (fontSize >= 27) | 485 if (fontSize >= 27) |
| 486 return NSRegularControlSize; | 486 return NSRegularControlSize; |
| 487 if (fontSize >= 22) | 487 if (fontSize >= 22) |
| 488 return NSSmallControlSize; | 488 return NSSmallControlSize; |
| 489 return NSMiniControlSize; | 489 return NSMiniControlSize; |
| 490 } | 490 } |
| 491 | 491 |
| 492 static void paintStepper(ControlStates states, GraphicsContext* context, const I
ntRect& zoomedRect, float zoomFactor, ScrollableArea*) | 492 static void paintStepper(ControlStates states, GraphicsContext& context, const I
ntRect& zoomedRect, float zoomFactor, ScrollableArea*) |
| 493 { | 493 { |
| 494 // We don't use NSStepperCell because there are no ways to draw an | 494 // We don't use NSStepperCell because there are no ways to draw an |
| 495 // NSStepperCell with the up button highlighted. | 495 // NSStepperCell with the up button highlighted. |
| 496 | 496 |
| 497 HIThemeButtonDrawInfo drawInfo; | 497 HIThemeButtonDrawInfo drawInfo; |
| 498 drawInfo.version = 0; | 498 drawInfo.version = 0; |
| 499 drawInfo.state = convertControlStatesToThemeDrawState(kThemeIncDecButton, st
ates); | 499 drawInfo.state = convertControlStatesToThemeDrawState(kThemeIncDecButton, st
ates); |
| 500 drawInfo.adornment = kThemeAdornmentDefault; | 500 drawInfo.adornment = kThemeAdornmentDefault; |
| 501 ControlSize controlSize = controlSizeFromPixelSize(stepperSizes(), zoomedRec
t.size(), zoomFactor); | 501 ControlSize controlSize = controlSizeFromPixelSize(stepperSizes(), zoomedRec
t.size(), zoomFactor); |
| 502 if (controlSize == NSSmallControlSize) | 502 if (controlSize == NSSmallControlSize) |
| 503 drawInfo.kind = kThemeIncDecButtonSmall; | 503 drawInfo.kind = kThemeIncDecButtonSmall; |
| 504 else if (controlSize == NSMiniControlSize) | 504 else if (controlSize == NSMiniControlSize) |
| 505 drawInfo.kind = kThemeIncDecButtonMini; | 505 drawInfo.kind = kThemeIncDecButtonMini; |
| 506 else | 506 else |
| 507 drawInfo.kind = kThemeIncDecButton; | 507 drawInfo.kind = kThemeIncDecButton; |
| 508 | 508 |
| 509 IntRect rect(zoomedRect); | 509 IntRect rect(zoomedRect); |
| 510 GraphicsContextStateSaver stateSaver(*context); | 510 GraphicsContextStateSaver stateSaver(context); |
| 511 if (zoomFactor != 1.0f) { | 511 if (zoomFactor != 1.0f) { |
| 512 rect.setWidth(rect.width() / zoomFactor); | 512 rect.setWidth(rect.width() / zoomFactor); |
| 513 rect.setHeight(rect.height() / zoomFactor); | 513 rect.setHeight(rect.height() / zoomFactor); |
| 514 context->translate(rect.x(), rect.y()); | 514 context.translate(rect.x(), rect.y()); |
| 515 context->scale(zoomFactor, zoomFactor); | 515 context.scale(zoomFactor, zoomFactor); |
| 516 context->translate(-rect.x(), -rect.y()); | 516 context.translate(-rect.x(), -rect.y()); |
| 517 } | 517 } |
| 518 CGRect bounds(rect); | 518 CGRect bounds(rect); |
| 519 CGRect backgroundBounds; | 519 CGRect backgroundBounds; |
| 520 HIThemeGetButtonBackgroundBounds(&bounds, &drawInfo, &backgroundBounds); | 520 HIThemeGetButtonBackgroundBounds(&bounds, &drawInfo, &backgroundBounds); |
| 521 // Center the stepper rectangle in the specified area. | 521 // Center the stepper rectangle in the specified area. |
| 522 backgroundBounds.origin.x = bounds.origin.x + (bounds.size.width - backgroun
dBounds.size.width) / 2; | 522 backgroundBounds.origin.x = bounds.origin.x + (bounds.size.width - backgroun
dBounds.size.width) / 2; |
| 523 if (backgroundBounds.size.height < bounds.size.height) { | 523 if (backgroundBounds.size.height < bounds.size.height) { |
| 524 int heightDiff = clampTo<int>(bounds.size.height - backgroundBounds.size
.height); | 524 int heightDiff = clampTo<int>(bounds.size.height - backgroundBounds.size
.height); |
| 525 backgroundBounds.origin.y = bounds.origin.y + (heightDiff / 2) + 1; | 525 backgroundBounds.origin.y = bounds.origin.y + (heightDiff / 2) + 1; |
| 526 } | 526 } |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 668 zoomedSize.setWidth(zoomedSize.width() * zoomFactor); | 668 zoomedSize.setWidth(zoomedSize.width() * zoomFactor); |
| 669 zoomedRect = inflateRect(zoomedRect, zoomedSize, stepperMargin, zoom
Factor); | 669 zoomedRect = inflateRect(zoomedRect, zoomedSize, stepperMargin, zoom
Factor); |
| 670 break; | 670 break; |
| 671 } | 671 } |
| 672 default: | 672 default: |
| 673 break; | 673 break; |
| 674 } | 674 } |
| 675 END_BLOCK_OBJC_EXCEPTIONS | 675 END_BLOCK_OBJC_EXCEPTIONS |
| 676 } | 676 } |
| 677 | 677 |
| 678 void ThemeMac::paint(ControlPart part, ControlStates states, GraphicsContext* co
ntext, const IntRect& zoomedRect, float zoomFactor, ScrollableArea* scrollableAr
ea) const | 678 void ThemeMac::paint(ControlPart part, ControlStates states, GraphicsContext& co
ntext, const IntRect& zoomedRect, float zoomFactor, ScrollableArea* scrollableAr
ea) const |
| 679 { | 679 { |
| 680 switch (part) { | 680 switch (part) { |
| 681 case CheckboxPart: | 681 case CheckboxPart: |
| 682 paintCheckbox(states, context, zoomedRect, zoomFactor, scrollableAre
a); | 682 paintCheckbox(states, context, zoomedRect, zoomFactor, scrollableAre
a); |
| 683 break; | 683 break; |
| 684 case RadioPart: | 684 case RadioPart: |
| 685 paintRadio(states, context, zoomedRect, zoomFactor, scrollableArea); | 685 paintRadio(states, context, zoomedRect, zoomFactor, scrollableArea); |
| 686 break; | 686 break; |
| 687 case PushButtonPart: | 687 case PushButtonPart: |
| 688 case ButtonPart: | 688 case ButtonPart: |
| (...skipping 15 matching lines...) Expand all Loading... |
| 704 // focus ring with the frame. | 704 // focus ring with the frame. |
| 705 return IsOSLionOrEarlier(); | 705 return IsOSLionOrEarlier(); |
| 706 #else | 706 #else |
| 707 // If compiling an OSX 10.7 or older SDK, OSes up through 10.9 will draw a focus | 707 // If compiling an OSX 10.7 or older SDK, OSes up through 10.9 will draw a focus |
| 708 // ring with the frame. | 708 // ring with the frame. |
| 709 return IsOSMavericksOrEarlier(); | 709 return IsOSMavericksOrEarlier(); |
| 710 #endif | 710 #endif |
| 711 } | 711 } |
| 712 | 712 |
| 713 } | 713 } |
| OLD | NEW |