| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "views/controls/button/custom_button.h" | 5 #include "views/controls/button/custom_button.h" |
| 6 | 6 |
| 7 #include "app/throb_animation.h" | 7 #include "app/throb_animation.h" |
| 8 #include "base/keyboard_codes.h" | 8 #include "base/keyboard_codes.h" |
| 9 | 9 |
| 10 namespace views { | 10 namespace views { |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 return (state_ != BS_DISABLED) && View::IsFocusable(); | 67 return (state_ != BS_DISABLED) && View::IsFocusable(); |
| 68 } | 68 } |
| 69 | 69 |
| 70 //////////////////////////////////////////////////////////////////////////////// | 70 //////////////////////////////////////////////////////////////////////////////// |
| 71 // CustomButton, protected: | 71 // CustomButton, protected: |
| 72 | 72 |
| 73 CustomButton::CustomButton(ButtonListener* listener) | 73 CustomButton::CustomButton(ButtonListener* listener) |
| 74 : Button(listener), | 74 : Button(listener), |
| 75 state_(BS_NORMAL), | 75 state_(BS_NORMAL), |
| 76 animate_on_state_change_(true), | 76 animate_on_state_change_(true), |
| 77 triggerable_event_flags_(MouseEvent::EF_LEFT_BUTTON_DOWN) { | 77 triggerable_event_flags_(MouseEvent::EF_LEFT_BUTTON_DOWN), |
| 78 request_focus_on_press_(true) { |
| 78 hover_animation_.reset(new ThrobAnimation(this)); | 79 hover_animation_.reset(new ThrobAnimation(this)); |
| 79 hover_animation_->SetSlideDuration(kHoverFadeDurationMs); | 80 hover_animation_->SetSlideDuration(kHoverFadeDurationMs); |
| 80 } | 81 } |
| 81 | 82 |
| 82 bool CustomButton::IsTriggerableEvent(const MouseEvent& e) { | 83 bool CustomButton::IsTriggerableEvent(const MouseEvent& e) { |
| 83 return (triggerable_event_flags_ & e.GetFlags()) != 0; | 84 return (triggerable_event_flags_ & e.GetFlags()) != 0; |
| 84 } | 85 } |
| 85 | 86 |
| 86 //////////////////////////////////////////////////////////////////////////////// | 87 //////////////////////////////////////////////////////////////////////////////// |
| 87 // CustomButton, View overrides (protected): | 88 // CustomButton, View overrides (protected): |
| 88 | 89 |
| 89 bool CustomButton::AcceleratorPressed(const Accelerator& accelerator) { | 90 bool CustomButton::AcceleratorPressed(const Accelerator& accelerator) { |
| 90 if (enabled_) { | 91 if (enabled_) { |
| 91 SetState(BS_NORMAL); | 92 SetState(BS_NORMAL); |
| 92 KeyEvent key_event(Event::ET_KEY_RELEASED, accelerator.GetKeyCode(), | 93 KeyEvent key_event(Event::ET_KEY_RELEASED, accelerator.GetKeyCode(), |
| 93 accelerator.modifiers(), 0, 0); | 94 accelerator.modifiers(), 0, 0); |
| 94 NotifyClick(key_event); | 95 NotifyClick(key_event); |
| 95 return true; | 96 return true; |
| 96 } | 97 } |
| 97 return false; | 98 return false; |
| 98 } | 99 } |
| 99 | 100 |
| 100 bool CustomButton::OnMousePressed(const MouseEvent& e) { | 101 bool CustomButton::OnMousePressed(const MouseEvent& e) { |
| 101 if (state_ != BS_DISABLED) { | 102 if (state_ != BS_DISABLED) { |
| 102 if (ShouldEnterPushedState(e) && HitTest(e.location())) | 103 if (ShouldEnterPushedState(e) && HitTest(e.location())) |
| 103 SetState(BS_PUSHED); | 104 SetState(BS_PUSHED); |
| 104 RequestFocus(); | 105 if (request_focus_on_press_) |
| 106 RequestFocus(); |
| 105 } | 107 } |
| 106 return true; | 108 return true; |
| 107 } | 109 } |
| 108 | 110 |
| 109 bool CustomButton::OnMouseDragged(const MouseEvent& e) { | 111 bool CustomButton::OnMouseDragged(const MouseEvent& e) { |
| 110 if (state_ != BS_DISABLED) { | 112 if (state_ != BS_DISABLED) { |
| 111 if (!HitTest(e.location())) | 113 if (!HitTest(e.location())) |
| 112 SetState(BS_NORMAL); | 114 SetState(BS_NORMAL); |
| 113 else if (ShouldEnterPushedState(e)) | 115 else if (ShouldEnterPushedState(e)) |
| 114 SetState(BS_PUSHED); | 116 SetState(BS_PUSHED); |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 | 249 |
| 248 bool CustomButton::IsHighlighted() const { | 250 bool CustomButton::IsHighlighted() const { |
| 249 return state_ == BS_HOT; | 251 return state_ == BS_HOT; |
| 250 } | 252 } |
| 251 | 253 |
| 252 bool CustomButton::IsPushed() const { | 254 bool CustomButton::IsPushed() const { |
| 253 return state_ == BS_PUSHED; | 255 return state_ == BS_PUSHED; |
| 254 } | 256 } |
| 255 | 257 |
| 256 } // namespace views | 258 } // namespace views |
| OLD | NEW |