| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this |
| 2 // source code is governed by a BSD-style license that can be found in the | 2 // source code is governed by a BSD-style license that can be found in the |
| 3 // LICENSE file. | 3 // LICENSE file. |
| 4 | 4 |
| 5 #include "views/controls/button/native_button_win.h" | 5 #include "views/controls/button/native_button_win.h" |
| 6 | 6 |
| 7 #include <commctrl.h> | 7 #include <commctrl.h> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "views/controls/button/checkbox.h" | 10 #include "views/controls/button/checkbox.h" |
| 11 #include "views/controls/button/native_button.h" | 11 #include "views/controls/button/native_button.h" |
| 12 #include "views/controls/button/radio_button.h" | 12 #include "views/controls/button/radio_button.h" |
| 13 #include "views/widget/widget.h" | 13 #include "views/widget/widget.h" |
| 14 | 14 |
| 15 namespace views { | 15 namespace views { |
| 16 | 16 |
| 17 //////////////////////////////////////////////////////////////////////////////// | 17 //////////////////////////////////////////////////////////////////////////////// |
| 18 // NativeButtonWin, public: | 18 // NativeButtonWin, public: |
| 19 | 19 |
| 20 NativeButtonWin::NativeButtonWin(NativeButton* native_button) | 20 NativeButtonWin::NativeButtonWin(NativeButton* native_button) |
| 21 : NativeControlWin(), | 21 : NativeControlWin(), |
| 22 native_button_(native_button) { | 22 native_button_(native_button) { |
| 23 // Associates the actual HWND with the native_button so the native_button is | 23 // Associates the actual HWND with the native_button so the native_button is |
| 24 // the one considered as having the focus (not the wrapper) when the HWND is | 24 // the one considered as having the focus (not the wrapper) when the HWND is |
| 25 // focused directly (with a click for example). | 25 // focused directly (with a click for example). |
| 26 SetAssociatedFocusView(native_button); | 26 set_focus_view(native_button); |
| 27 } | 27 } |
| 28 | 28 |
| 29 NativeButtonWin::~NativeButtonWin() { | 29 NativeButtonWin::~NativeButtonWin() { |
| 30 } | 30 } |
| 31 | 31 |
| 32 //////////////////////////////////////////////////////////////////////////////// | 32 //////////////////////////////////////////////////////////////////////////////// |
| 33 // NativeButtonWin, NativeButtonWrapper implementation: | 33 // NativeButtonWin, NativeButtonWrapper implementation: |
| 34 | 34 |
| 35 void NativeButtonWin::UpdateLabel() { | 35 void NativeButtonWin::UpdateLabel() { |
| 36 SetWindowText(GetHWND(), native_button_->label().c_str()); | 36 SetWindowText(native_view(), native_button_->label().c_str()); |
| 37 } | 37 } |
| 38 | 38 |
| 39 void NativeButtonWin::UpdateFont() { | 39 void NativeButtonWin::UpdateFont() { |
| 40 SendMessage(GetHWND(), WM_SETFONT, | 40 SendMessage(native_view(), WM_SETFONT, |
| 41 reinterpret_cast<WPARAM>(native_button_->font().hfont()), | 41 reinterpret_cast<WPARAM>(native_button_->font().hfont()), |
| 42 FALSE); | 42 FALSE); |
| 43 } | 43 } |
| 44 | 44 |
| 45 void NativeButtonWin::UpdateEnabled() { | 45 void NativeButtonWin::UpdateEnabled() { |
| 46 SetEnabled(native_button_->IsEnabled()); | 46 SetEnabled(native_button_->IsEnabled()); |
| 47 } | 47 } |
| 48 | 48 |
| 49 void NativeButtonWin::UpdateDefault() { | 49 void NativeButtonWin::UpdateDefault() { |
| 50 if (!IsCheckbox()) { | 50 if (!IsCheckbox()) { |
| 51 SendMessage(GetHWND(), BM_SETSTYLE, | 51 SendMessage(native_view(), BM_SETSTYLE, |
| 52 native_button_->is_default() ? BS_DEFPUSHBUTTON : BS_PUSHBUTTON, | 52 native_button_->is_default() ? BS_DEFPUSHBUTTON : BS_PUSHBUTTON, |
| 53 true); | 53 true); |
| 54 } | 54 } |
| 55 } | 55 } |
| 56 | 56 |
| 57 View* NativeButtonWin::GetView() { | 57 View* NativeButtonWin::GetView() { |
| 58 return this; | 58 return this; |
| 59 } | 59 } |
| 60 | 60 |
| 61 void NativeButtonWin::SetFocus() { | 61 void NativeButtonWin::SetFocus() { |
| 62 // Focus the associated HWND. | 62 // Focus the associated HWND. |
| 63 Focus(); | 63 Focus(); |
| 64 } | 64 } |
| 65 | 65 |
| 66 //////////////////////////////////////////////////////////////////////////////// | 66 //////////////////////////////////////////////////////////////////////////////// |
| 67 // NativeButtonWin, View overrides: | 67 // NativeButtonWin, View overrides: |
| 68 | 68 |
| 69 gfx::Size NativeButtonWin::GetPreferredSize() { | 69 gfx::Size NativeButtonWin::GetPreferredSize() { |
| 70 SIZE sz = {0}; | 70 SIZE sz = {0}; |
| 71 SendMessage(GetHWND(), BCM_GETIDEALSIZE, 0, reinterpret_cast<LPARAM>(&sz)); | 71 SendMessage(native_view(), BCM_GETIDEALSIZE, 0, reinterpret_cast<LPARAM>(&sz))
; |
| 72 | 72 |
| 73 return gfx::Size(sz.cx, sz.cy); | 73 return gfx::Size(sz.cx, sz.cy); |
| 74 } | 74 } |
| 75 | 75 |
| 76 //////////////////////////////////////////////////////////////////////////////// | 76 //////////////////////////////////////////////////////////////////////////////// |
| 77 // NativeButtonWin, NativeControlWin overrides: | 77 // NativeButtonWin, NativeControlWin overrides: |
| 78 | 78 |
| 79 bool NativeButtonWin::ProcessMessage(UINT message, WPARAM w_param, | 79 bool NativeButtonWin::ProcessMessage(UINT message, WPARAM w_param, |
| 80 LPARAM l_param, LRESULT* result) { | 80 LPARAM l_param, LRESULT* result) { |
| 81 if (message == WM_COMMAND && HIWORD(w_param) == BN_CLICKED) { | 81 if (message == WM_COMMAND && HIWORD(w_param) == BN_CLICKED) { |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 // NativeCheckboxWin, View overrides: | 135 // NativeCheckboxWin, View overrides: |
| 136 | 136 |
| 137 gfx::Size NativeCheckboxWin::GetPreferredSize() { | 137 gfx::Size NativeCheckboxWin::GetPreferredSize() { |
| 138 return gfx::Size(kCheckboxSize, kCheckboxSize); | 138 return gfx::Size(kCheckboxSize, kCheckboxSize); |
| 139 } | 139 } |
| 140 | 140 |
| 141 //////////////////////////////////////////////////////////////////////////////// | 141 //////////////////////////////////////////////////////////////////////////////// |
| 142 // NativeCheckboxWin, NativeButtonWrapper implementation: | 142 // NativeCheckboxWin, NativeButtonWrapper implementation: |
| 143 | 143 |
| 144 void NativeCheckboxWin::UpdateChecked() { | 144 void NativeCheckboxWin::UpdateChecked() { |
| 145 SendMessage(GetHWND(), BM_SETCHECK, | 145 SendMessage(native_view(), BM_SETCHECK, |
| 146 checkbox_->checked() ? BST_CHECKED : BST_UNCHECKED, 0); | 146 checkbox_->checked() ? BST_CHECKED : BST_UNCHECKED, 0); |
| 147 } | 147 } |
| 148 | 148 |
| 149 void NativeCheckboxWin::SetPushed(bool pushed) { | 149 void NativeCheckboxWin::SetPushed(bool pushed) { |
| 150 SendMessage(GetHWND(), BM_SETSTATE, pushed, 0); | 150 SendMessage(native_view(), BM_SETSTATE, pushed, 0); |
| 151 } | 151 } |
| 152 | 152 |
| 153 bool NativeCheckboxWin::OnKeyDown(int vkey) { | 153 bool NativeCheckboxWin::OnKeyDown(int vkey) { |
| 154 // Override the NativeButtonWin behavior which triggers the button on enter | 154 // Override the NativeButtonWin behavior which triggers the button on enter |
| 155 // key presses when focused. | 155 // key presses when focused. |
| 156 return false; | 156 return false; |
| 157 } | 157 } |
| 158 | 158 |
| 159 //////////////////////////////////////////////////////////////////////////////// | 159 //////////////////////////////////////////////////////////////////////////////// |
| 160 // NativeCheckboxWin, NativeButtonWin overrides: | 160 // NativeCheckboxWin, NativeButtonWin overrides: |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 227 return new NativeCheckboxWin(checkbox); | 227 return new NativeCheckboxWin(checkbox); |
| 228 } | 228 } |
| 229 | 229 |
| 230 // static | 230 // static |
| 231 NativeButtonWrapper* NativeButtonWrapper::CreateRadioButtonWrapper( | 231 NativeButtonWrapper* NativeButtonWrapper::CreateRadioButtonWrapper( |
| 232 RadioButton* radio_button) { | 232 RadioButton* radio_button) { |
| 233 return new NativeRadioButtonWin(radio_button); | 233 return new NativeRadioButtonWin(radio_button); |
| 234 } | 234 } |
| 235 | 235 |
| 236 } // namespace views | 236 } // namespace views |
| OLD | NEW |