OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008, 2011 Apple Inc. All Rights Reserved. | 2 * Copyright (C) 2008, 2011 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 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 @implementation WebScrollbarPrefsObserver | 83 @implementation WebScrollbarPrefsObserver |
84 | 84 |
85 + (void)appearancePrefsChanged:(NSNotification*)unusedNotification | 85 + (void)appearancePrefsChanged:(NSNotification*)unusedNotification |
86 { | 86 { |
87 UNUSED_PARAM(unusedNotification); | 87 UNUSED_PARAM(unusedNotification); |
88 | 88 |
89 ScrollbarTheme* theme = ScrollbarTheme::theme(); | 89 ScrollbarTheme* theme = ScrollbarTheme::theme(); |
90 if (theme->isMockTheme()) | 90 if (theme->isMockTheme()) |
91 return; | 91 return; |
92 | 92 |
93 static_cast<ScrollbarThemeMacCommon*>(ScrollbarTheme::theme())->preferencesC
hanged(); | 93 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; |
94 if (scrollbarSet().isEmpty()) | 94 [defaults synchronize]; |
95 return; | 95 static_cast<ScrollbarThemeMacCommon*>(ScrollbarTheme::theme())->preferencesC
hanged( |
96 ScrollbarSet::iterator end = scrollbarSet().end(); | 96 [defaults floatForKey:@"NSScrollerButtonDelay"], [defaults floatForKey:@
"NSScrollerButtonPeriod"], |
97 for (ScrollbarSet::iterator it = scrollbarSet().begin(); it != end; ++it) { | 97 [defaults boolForKey:@"AppleScrollerPagingBehavior"], true); |
98 (*it)->styleChanged(); | |
99 (*it)->invalidate(); | |
100 } | |
101 } | 98 } |
102 | 99 |
103 + (void)behaviorPrefsChanged:(NSNotification*)unusedNotification | 100 + (void)behaviorPrefsChanged:(NSNotification*)unusedNotification |
104 { | 101 { |
105 UNUSED_PARAM(unusedNotification); | 102 UNUSED_PARAM(unusedNotification); |
106 | 103 |
107 ScrollbarTheme* theme = ScrollbarTheme::theme(); | 104 ScrollbarTheme* theme = ScrollbarTheme::theme(); |
108 if (theme->isMockTheme()) | 105 if (theme->isMockTheme()) |
109 return; | 106 return; |
110 | 107 |
111 static_cast<ScrollbarThemeMacCommon*>(ScrollbarTheme::theme())->preferencesC
hanged(); | 108 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; |
| 109 [defaults synchronize]; |
| 110 static_cast<ScrollbarThemeMacCommon*>(ScrollbarTheme::theme())->preferencesC
hanged( |
| 111 [defaults floatForKey:@"NSScrollerButtonDelay"], [defaults floatForKey:@
"NSScrollerButtonPeriod"], |
| 112 [defaults boolForKey:@"AppleScrollerPagingBehavior"], false); |
112 } | 113 } |
113 | 114 |
114 + (void)registerAsObserver | 115 + (void)registerAsObserver |
115 { | 116 { |
116 [[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@
selector(appearancePrefsChanged:) name:@"AppleAquaScrollBarVariantChanged" objec
t:nil suspensionBehavior:NSNotificationSuspensionBehaviorDeliverImmediately]; | 117 [[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@
selector(appearancePrefsChanged:) name:@"AppleAquaScrollBarVariantChanged" objec
t:nil suspensionBehavior:NSNotificationSuspensionBehaviorDeliverImmediately]; |
117 [[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@
selector(behaviorPrefsChanged:) name:@"AppleNoRedisplayAppearancePreferenceChang
ed" object:nil suspensionBehavior:NSNotificationSuspensionBehaviorCoalesce]; | 118 [[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@
selector(behaviorPrefsChanged:) name:@"AppleNoRedisplayAppearancePreferenceChang
ed" object:nil suspensionBehavior:NSNotificationSuspensionBehaviorCoalesce]; |
118 } | 119 } |
119 | 120 |
120 @end | 121 @end |
121 | 122 |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
333 tickmarkTrackRect.setWidth(tickmarkTrackRect.width() - 2); | 334 tickmarkTrackRect.setWidth(tickmarkTrackRect.width() - 2); |
334 paintGivenTickmarks(context, scrollbar, tickmarkTrackRect, tickmarks); | 335 paintGivenTickmarks(context, scrollbar, tickmarkTrackRect, tickmarks); |
335 } | 336 } |
336 | 337 |
337 ScrollbarThemeMacCommon::ScrollbarThemeMacCommon() | 338 ScrollbarThemeMacCommon::ScrollbarThemeMacCommon() |
338 { | 339 { |
339 static bool initialized; | 340 static bool initialized; |
340 if (!initialized) { | 341 if (!initialized) { |
341 initialized = true; | 342 initialized = true; |
342 [WebScrollbarPrefsObserver registerAsObserver]; | 343 [WebScrollbarPrefsObserver registerAsObserver]; |
343 preferencesChanged(); | 344 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; |
| 345 [defaults synchronize]; |
| 346 preferencesChanged( |
| 347 [defaults floatForKey:@"NSScrollerButtonDelay"], [defaults floatForK
ey:@"NSScrollerButtonPeriod"], |
| 348 [defaults boolForKey:@"AppleScrollerPagingBehavior"], false); |
344 } | 349 } |
345 } | 350 } |
346 | 351 |
347 ScrollbarThemeMacCommon::~ScrollbarThemeMacCommon() | 352 ScrollbarThemeMacCommon::~ScrollbarThemeMacCommon() |
348 { | 353 { |
349 } | 354 } |
350 | 355 |
351 void ScrollbarThemeMacCommon::preferencesChanged() | 356 void ScrollbarThemeMacCommon::preferencesChanged(float initialButtonDelay, float
autoscrollButtonDelay, bool jumpOnTrackClick, bool redraw) |
352 { | 357 { |
353 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; | |
354 [defaults synchronize]; | |
355 updateButtonPlacement(); | 358 updateButtonPlacement(); |
356 gInitialButtonDelay = [defaults floatForKey:@"NSScrollerButtonDelay"]; | 359 gInitialButtonDelay = initialButtonDelay; |
357 gAutoscrollButtonDelay = [defaults floatForKey:@"NSScrollerButtonPeriod"]; | 360 gAutoscrollButtonDelay = autoscrollButtonDelay; |
358 gJumpOnTrackClick = [defaults boolForKey:@"AppleScrollerPagingBehavior"]; | 361 gJumpOnTrackClick = jumpOnTrackClick; |
| 362 if (redraw && !scrollbarSet().isEmpty()) { |
| 363 ScrollbarSet::iterator end = scrollbarSet().end(); |
| 364 for (ScrollbarSet::iterator it = scrollbarSet().begin(); it != end; ++it
) { |
| 365 (*it)->styleChanged(); |
| 366 (*it)->invalidate(); |
| 367 } |
| 368 } |
359 } | 369 } |
360 | 370 |
361 double ScrollbarThemeMacCommon::initialAutoscrollTimerDelay() | 371 double ScrollbarThemeMacCommon::initialAutoscrollTimerDelay() |
362 { | 372 { |
363 return gInitialButtonDelay; | 373 return gInitialButtonDelay; |
364 } | 374 } |
365 | 375 |
366 double ScrollbarThemeMacCommon::autoscrollTimerDelay() | 376 double ScrollbarThemeMacCommon::autoscrollTimerDelay() |
367 { | 377 { |
368 return gAutoscrollButtonDelay; | 378 return gAutoscrollButtonDelay; |
(...skipping 25 matching lines...) Expand all Loading... |
394 case ForwardButtonEndPart: | 404 case ForwardButtonEndPart: |
395 return kThemeBottomOutsideArrowPressed; | 405 return kThemeBottomOutsideArrowPressed; |
396 case ThumbPart: | 406 case ThumbPart: |
397 return kThemeThumbPressed; | 407 return kThemeThumbPressed; |
398 default: | 408 default: |
399 return 0; | 409 return 0; |
400 } | 410 } |
401 } | 411 } |
402 | 412 |
403 } // namespace WebCore | 413 } // namespace WebCore |
OLD | NEW |