1// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "ui/views/controls/button/button.h" 6 7#include "base/strings/utf_string_conversions.h" 8#include "ui/base/accessibility/accessible_view_state.h" 9 10namespace views { 11 12//////////////////////////////////////////////////////////////////////////////// 13// Button, public: 14 15Button::~Button() { 16} 17 18void Button::SetTooltipText(const string16& tooltip_text) { 19 tooltip_text_ = tooltip_text; 20 if (accessible_name_.empty()) 21 accessible_name_ = tooltip_text_; 22 TooltipTextChanged(); 23} 24 25void Button::SetAccessibleName(const string16& name) { 26 accessible_name_ = name; 27} 28 29//////////////////////////////////////////////////////////////////////////////// 30// Button, View overrides: 31 32bool Button::GetTooltipText(const gfx::Point& p, string16* tooltip) const { 33 if (tooltip_text_.empty()) 34 return false; 35 36 *tooltip = tooltip_text_; 37 return true; 38} 39 40void Button::GetAccessibleState(ui::AccessibleViewState* state) { 41 state->role = ui::AccessibilityTypes::ROLE_PUSHBUTTON; 42 state->name = accessible_name_; 43} 44 45//////////////////////////////////////////////////////////////////////////////// 46// Button, protected: 47 48Button::Button(ButtonListener* listener) 49 : listener_(listener), 50 tag_(-1) { 51 SetAccessibilityFocusable(true); 52} 53 54void Button::NotifyClick(const ui::Event& event) { 55 // We can be called when there is no listener, in cases like double clicks on 56 // menu buttons etc. 57 if (listener_) 58 listener_->ButtonPressed(this, event); 59} 60 61} // namespace views 62